github.com/remobjects/goldbaselibrary@v0.0.0-20230924164425-d458680a936b/Source/Gold/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  }