github.com/c12o16h1/go/src@v0.0.0-20200114212001-5a151c0f00ed/math/big/arith_decl_pure.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build math_big_pure_go 6 7 package big 8 9 func mulWW(x, y Word) (z1, z0 Word) { 10 return mulWW_g(x, y) 11 } 12 13 func divWW(x1, x0, y Word) (q, r Word) { 14 return divWW_g(x1, x0, y) 15 } 16 17 func addVV(z, x, y []Word) (c Word) { 18 return addVV_g(z, x, y) 19 } 20 21 func subVV(z, x, y []Word) (c Word) { 22 return subVV_g(z, x, y) 23 } 24 25 func addVW(z, x []Word, y Word) (c Word) { 26 // TODO: remove indirect function call when golang.org/issue/30548 is fixed 27 fn := addVW_g 28 if len(z) > 32 { 29 fn = addVWlarge 30 } 31 return fn(z, x, y) 32 } 33 34 func subVW(z, x []Word, y Word) (c Word) { 35 // TODO: remove indirect function call when golang.org/issue/30548 is fixed 36 fn := subVW_g 37 if len(z) > 32 { 38 fn = subVWlarge 39 } 40 return fn(z, x, y) 41 } 42 43 func shlVU(z, x []Word, s uint) (c Word) { 44 return shlVU_g(z, x, s) 45 } 46 47 func shrVU(z, x []Word, s uint) (c Word) { 48 return shrVU_g(z, x, s) 49 } 50 51 func mulAddVWW(z, x []Word, y, r Word) (c Word) { 52 return mulAddVWW_g(z, x, y, r) 53 } 54 55 func addMulVVW(z, x []Word, y Word) (c Word) { 56 return addMulVVW_g(z, x, y) 57 } 58 59 func divWVW(z []Word, xn Word, x []Word, y Word) (r Word) { 60 return divWVW_g(z, xn, x, y) 61 }