diff options
Diffstat (limited to 'test/bench/pidigits.go')
| -rw-r--r-- | test/bench/pidigits.go | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/test/bench/pidigits.go b/test/bench/pidigits.go index d0dfc966b..430c11828 100644 --- a/test/bench/pidigits.go +++ b/test/bench/pidigits.go @@ -38,20 +38,20 @@ POSSIBILITY OF SUCH DAMAGE. package main import ( - "bignum"; - "flag"; - "fmt"; + "bignum" + "flag" + "fmt" ) var n = flag.Int("n", 27, "number of digits") var silent = flag.Bool("s", false, "don't print result") var ( - tmp1 *bignum.Integer; - tmp2 *bignum.Integer; - numer = bignum.Int(1); - accum = bignum.Int(0); - denom = bignum.Int(1); + tmp1 *bignum.Integer + tmp2 *bignum.Integer + numer = bignum.Int(1) + accum = bignum.Int(0) + denom = bignum.Int(1) ) func extract_digit() int64 { @@ -60,36 +60,36 @@ func extract_digit() int64 { } // Compute (numer * 3 + accum) / denom - tmp1 = numer.Shl(1); - bignum.Iadd(tmp1, tmp1, numer); - bignum.Iadd(tmp1, tmp1, accum); - tmp1, tmp2 := tmp1.QuoRem(denom); + tmp1 = numer.Shl(1) + bignum.Iadd(tmp1, tmp1, numer) + bignum.Iadd(tmp1, tmp1, accum) + tmp1, tmp2 := tmp1.QuoRem(denom) // Now, if (numer * 4 + accum) % denom... - bignum.Iadd(tmp2, tmp2, numer); + bignum.Iadd(tmp2, tmp2, numer) // ... is normalized, then the two divisions have the same result. if tmp2.Cmp(denom) >= 0 { return -1 } - return tmp1.Value(); + return tmp1.Value() } func next_term(k int64) { - y2 := k*2 + 1; + y2 := k*2 + 1 - tmp1 = numer.Shl(1); - bignum.Iadd(accum, accum, tmp1); - bignum.Iscale(accum, y2); - bignum.Iscale(numer, k); - bignum.Iscale(denom, y2); + tmp1 = numer.Shl(1) + bignum.Iadd(accum, accum, tmp1) + bignum.Iscale(accum, y2) + bignum.Iscale(numer, k) + bignum.Iscale(denom, y2) } func eliminate_digit(d int64) { - bignum.Isub(accum, accum, denom.Mul1(d)); - bignum.Iscale(accum, 10); - bignum.Iscale(numer, 10); + bignum.Isub(accum, accum, denom.Mul1(d)) + bignum.Iscale(accum, 10) + bignum.Iscale(numer, 10) } func printf(s string, arg ...) { @@ -99,28 +99,28 @@ func printf(s string, arg ...) { } func main() { - flag.Parse(); + flag.Parse() - var m int; // 0 <= m < 10 + var m int // 0 <= m < 10 for i, k := 0, int64(0); ; { - d := int64(-1); + d := int64(-1) for d < 0 { - k++; - next_term(k); - d = extract_digit(); + k++ + next_term(k) + d = extract_digit() } - printf("%c", d+'0'); + printf("%c", d+'0') - i++; - m = i % 10; + i++ + m = i % 10 if m == 0 { printf("\t:%d\n", i) } if i >= *n { break } - eliminate_digit(d); + eliminate_digit(d) } if m > 0 { |
