// z1<<_W + z0 = x*y
-func mulWW(x, y Word) (z1, z0 Word)
func mulWW_g(x, y Word) (z1, z0 Word) {
// Split x and y into 2 halfWords each, multiply
// the halfWords separately while avoiding overflow,
// q = (x1<<_W + x0 - r)/y
-func divWW(x1, x0, y Word) (q, r Word)
func divWW_g(x1, x0, y Word) (q, r Word) {
if x1 == 0 {
q, r = x0/y, x0%y
}
-func addVV(z, x, y []Word) (c Word)
func addVV_g(z, x, y []Word) (c Word) {
for i := range z {
c, z[i] = addWW_g(x[i], y[i], c)
}
-func subVV(z, x, y []Word) (c Word)
func subVV_g(z, x, y []Word) (c Word) {
for i := range z {
c, z[i] = subWW_g(x[i], y[i], c)
}
-func addVW(z, x []Word, y Word) (c Word)
func addVW_g(z, x []Word, y Word) (c Word) {
c = y
for i := range z {
}
-func subVW(z, x []Word, y Word) (c Word)
func subVW_g(z, x []Word, y Word) (c Word) {
c = y
for i := range z {
}
-func shlVW(z, x []Word, s Word) (c Word)
func shlVW_g(z, x []Word, s Word) (c Word) {
if n := len(z); n > 0 {
ŝ := _W - s
}
-func shrVW(z, x []Word, s Word) (c Word)
func shrVW_g(z, x []Word, s Word) (c Word) {
if n := len(z); n > 0 {
ŝ := _W - s
}
-func mulAddVWW(z, x []Word, y, r Word) (c Word)
func mulAddVWW_g(z, x []Word, y, r Word) (c Word) {
c = r
for i := range z {
}
-func addMulVVW(z, x []Word, y Word) (c Word)
func addMulVVW_g(z, x []Word, y Word) (c Word) {
for i := range z {
z1, z0 := mulAddWWW_g(x[i], y, z[i])
}
-func divWVW(z []Word, xn Word, x []Word, y Word) (r Word)
func divWVW_g(z []Word, xn Word, x []Word, y Word) (r Word) {
r = xn
for i := len(z) - 1; i >= 0; i-- {
--- /dev/null
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package big
+
+// implemented in arith_$GOARCH.s
+func mulWW(x, y Word) (z1, z0 Word)
+func divWW(x1, x0, y Word) (q, r Word)
+func addVV(z, x, y []Word) (c Word)
+func subVV(z, x, y []Word) (c Word)
+func addVW(z, x []Word, y Word) (c Word)
+func subVW(z, x []Word, y Word) (c Word)
+func shlVW(z, x []Word, s Word) (c Word)
+func shrVW(z, x []Word, s Word) (c Word)
+func mulAddVWW(z, x []Word, y, r Word) (c Word)
+func addMulVVW(z, x []Word, y Word) (c Word)
+func divWVW(z []Word, xn Word, x []Word, y Word) (r Word)