@@ -17,6 +17,7 @@ import (
17
17
// ========================================================
18
18
19
19
// how big the mantissa is going to be. For super extreme
20
+ //
20
21
// precision, you could use a far larger number but this
21
22
// will use much more space / memory.
22
23
const DEFAULT_FLOAT_PREC = 256
@@ -43,7 +44,7 @@ func inew(i int64) *bint { return big.NewInt(i) }
43
44
44
45
func abs (a * bint ) * bint { return zero ().Abs (a ) }
45
46
46
- func add (a , b * bint ) * bint { return zero ().Add (a , b ) }
47
+ func add (a , b * bint ) * bint { return zero ().Add (a , b ) }
47
48
48
49
func and (a , b * bint ) * bint { return zero ().And (a , b ) }
49
50
@@ -110,15 +111,17 @@ func fzero() *bfloat { return big.NewFloat(0) }
110
111
111
112
func fnew (a float64 ) * bfloat { return big .NewFloat (a ) }
112
113
113
- func parseFloat (s string , base int , prec uint , mod big.RoundingMode ) (f * bfloat , b int , err error ) { return big .ParseFloat (s , base , prec , mod ) }
114
+ func parseFloat (s string , base int , prec uint , mod big.RoundingMode ) (f * bfloat , b int , err error ) {
115
+ return big .ParseFloat (s , base , prec , mod )
116
+ }
114
117
115
118
func fabs (a * bfloat ) * bfloat { return fzero ().Abs (a ) }
116
119
117
120
func facc (a * bfloat ) big.Accuracy { return a .Acc () }
118
121
119
122
func fadd (a , b * bfloat ) * bfloat { return fzero ().Add (a , b ) }
120
123
121
- func fappend (a * bfloat , buf []byte , fmt byte , prec int ) []byte {return a .Append (buf , fmt , prec ) }
124
+ func fappend (a * bfloat , buf []byte , fmt byte , prec int ) []byte { return a .Append (buf , fmt , prec ) }
122
125
123
126
func fcmp (a , b * bfloat ) int { return a .Cmp (b ) }
124
127
@@ -146,7 +149,7 @@ func trunc(a *bfloat) (*bint, big.Accuracy) { return a.Int(nil) }
146
149
// BIG RAT WRAPPERS
147
150
// ==============================================
148
151
149
- func rzero () * brat { return big .NewRat (0 , 1 )}
152
+ func rzero () * brat { return big .NewRat (0 , 1 ) }
150
153
151
154
func rnew (a , b int64 ) * brat { return big .NewRat (a , b ) }
152
155
@@ -243,11 +246,11 @@ func gcd(a, b *bint) *bint {
243
246
}
244
247
245
248
/**
246
- * nCr(n, k) -- Compute the binomial of two big ints!
249
+ * nCr(n, k) -- Compute the binomial of two big ints!
247
250
* AKA Binomial(n, k) or C(n, r)
248
251
* Will panic if: n < 0 || k < 0 || n < k
249
252
*/
250
- func nCr (n , k * bint ) * bint {
253
+ func nCr (n , k * bint ) * bint {
251
254
// error checking
252
255
if lt (n , zero ()) || lt (k , zero ()) || lt (n , k ) {
253
256
return zero ()
@@ -256,7 +259,7 @@ func nCr(n, k *bint) *bint {
256
259
// C(n,r) = n!/((n-r)!r!). Instead, do the shortcut. Modify k based on n
257
260
// k > n/2
258
261
if gt (k , div (n , inew (2 ))) {
259
- k = sub (n , k ) // k = n - k
262
+ k = sub (n , k ) // k = n - k
260
263
}
261
264
c := inew (1 )
262
265
for i := inew (1 ); lteq (i , k ); inc (i ) {
@@ -291,7 +294,7 @@ func itof(a *bint) *bfloat {
291
294
func itor (a * bint ) * brat {
292
295
r := new (big.Rat )
293
296
r .SetFrac (a , inew (1 ))
294
- return r
297
+ return r
295
298
}
296
299
297
300
// ### comparisons
@@ -355,15 +358,15 @@ func divall_f(start *bfloat, nums ...*bfloat) *bfloat {
355
358
}
356
359
357
360
// computes a^e, where a is a float!
358
- func fpow (a * bfloat , e int64 ) * bfloat {
361
+ func fpow (a * bfloat , e int64 ) * bfloat {
359
362
if e == 0 {
360
363
return fnew (1 )
361
364
}
362
365
r := fzero ().Copy (a )
363
366
for i := int64 (0 ); i < e - 1 ; i ++ {
364
367
r = fmul (r , a )
365
368
}
366
- if e < 0 { // negative exponents are reciprocals of positives
369
+ if e < 0 { // negative exponents are reciprocals of positives
367
370
return fdiv (fnew (1 ), r )
368
371
}
369
372
return r
@@ -404,7 +407,6 @@ func lteq_f(a, b *bfloat) bool { return lt_f(a, b) || equals_f(a, b) }
404
407
// returns true/false of a >= b
405
408
func gteq_f (a , b * bfloat ) bool { return gt_f (a , b ) || equals_f (a , b ) }
406
409
407
-
408
410
// ==============================================
409
411
// BIG RAT NEW FUNCTIONALITY
410
412
// ==============================================
@@ -475,4 +477,4 @@ func gt_r(a, b *brat) bool { return a.Cmp(b) == 1 }
475
477
func lteq_r (a , b * brat ) bool { return lt_r (a , b ) || equals_r (a , b ) }
476
478
477
479
// returns true/false of a >= b
478
- func gteq_r (a , b * brat ) bool { return gt_r (a , b ) || equals_r (a , b ) }
480
+ func gteq_r (a , b * brat ) bool { return gt_r (a , b ) || equals_r (a , b ) }
0 commit comments