diff options
| author | Robert Griesemer <gri@golang.org> | 2008-11-12 11:00:11 -0800 |
|---|---|---|
| committer | Robert Griesemer <gri@golang.org> | 2008-11-12 11:00:11 -0800 |
| commit | 2727abe4fc0e169c5414e5cb0c1cc7d5d33bf69d (patch) | |
| tree | 2e28033a8d8080b33d9fa6ef6b729bf976c1a83d /src | |
| parent | 9c9cc2c9d8bd2303e1f0c3619c1451ac469fc086 (diff) | |
| download | go-2727abe4fc0e169c5414e5cb0c1cc7d5d33bf69d.tar.xz | |
- lowercased package name (Bignum -> bignum)
- implemented some missing functionality (and, or, xor of positive ints)
R=r
OCL=19087
CL=19087
Diffstat (limited to 'src')
| -rwxr-xr-x | src/lib/bignum.go | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/src/lib/bignum.go b/src/lib/bignum.go index 6c3da2638b..9499a433f9 100755 --- a/src/lib/bignum.go +++ b/src/lib/bignum.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -package Bignum +package bignum // A package for arbitrary precision arithmethic. // It implements the following numeric types: @@ -1076,27 +1076,42 @@ func (x *Integer) Shl(s uint) *Integer { func (x *Integer) Shr(s uint) *Integer { z := MakeInt(x.sign, x.mant.Shr(s)); if x.IsNeg() { - panic("UNIMPLEMENTED"); + panic("UNIMPLEMENTED Integer.Shr() of negative values"); } return z; } func (x *Integer) And(y *Integer) *Integer { - panic("UNIMPLEMENTED"); - return nil; + var z *Integer; + if !x.sign && !y.sign { + z = MakeInt(false, x.mant.And(y.mant)); + } else { + panic("UNIMPLEMENTED Integer.And() of negative values"); + } + return z; } func (x *Integer) Or(y *Integer) *Integer { - panic("UNIMPLEMENTED"); - return nil; + var z *Integer; + if !x.sign && !y.sign { + z = MakeInt(false, x.mant.Or(y.mant)); + } else { + panic("UNIMPLEMENTED Integer.Or() of negative values"); + } + return z; } func (x *Integer) Xor(y *Integer) *Integer { - panic("UNIMPLEMENTED"); - return nil; + var z *Integer; + if !x.sign && !y.sign { + z = MakeInt(false, x.mant.Xor(y.mant)); + } else { + panic("UNIMPLEMENTED Integer.Xor() of negative values"); + } + return z; } |
