cryptix.math
Class BigNum

java.lang.Object
  |
  +--cryptix.math.BigNum
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
BigInteger

public class BigNum
extends java.lang.Object
implements java.lang.Cloneable

This class is public, but the constructor is protected. It is intended that this class be used as a base for the BigInteger wrapper class, and not used directly.

It is an implementation class, and should really be called BigIntegerImpl :-(

Copyright © 1995-1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.5 $

Since:
Cryptix 2.2
Author:
unattributed

Field Summary
(package private) static int BITS
           
(package private) static int LBITS
           
(package private) static int LMASK
           
(package private) static int LRADIX
           
(package private) static int MASK
           
(package private) static int RADIX
           
 
Constructor Summary
protected BigNum()
           
 
Method Summary
(package private) static void ()
           
static void add_unsigned(BigNum r, BigNum a, BigNum b)
           
static void add_unsigned(BigNum r, int a)
           
static void add(BigNum r, BigNum a, BigNum b)
           
static void add(BigNum r, int a)
           
static void assign(BigNum r, int val)
           
 int bignum_hashCode()
           
static boolean bit(BigNum n, int i)
           
static int bitLength(BigNum n)
           
 int byteLength()
           
 void check_state()
           
 java.lang.Object clone()
           
static int cmp(BigNum a, BigNum b)
          Returns 0 if a == b, -1 if a < b, or 1 if a > b.
protected static void copy(BigNum dst, BigNum src)
           
 void copy(java.lang.Object src)
           
static void dec(BigNum a)
           
static void display(java.io.PrintStream out, BigNum x)
           
static void display(java.io.PrintWriter out, BigNum x)
           
static void div(BigNum dv, BigNum m, BigNum d)
           
static void div(BigNum dv, BigNum rem, BigNum m, BigNum d)
           
static void euclid(BigNum r, BigNum x, BigNum y)
           
static boolean even(BigNum a)
           
static void extended_euclid(BigNum u1, BigNum u2, BigNum u3, BigNum a, BigNum b)
           
protected  void finalize()
           
protected  void fromBinary(byte[] buffer)
           
static void gcd(BigNum r, BigNum a, BigNum b)
           
static void grow(BigNum a, int i)
           
static void inc(BigNum a)
           
 int intoBinary(byte[] buffer)
           
static void inverseModN(BigNum r, BigNum a, BigNum n)
           
static boolean isOne(BigNum a)
           
static boolean isZero(BigNum a)
           
static void main(java.lang.String[] args)
           
static void mod(BigNum r, BigNum m, BigNum d)
          r must not be the same object as m.
static void modExp(BigNum r, BigNum a, BigNum power, BigNum modulo)
           
static void modMul(BigNum r, BigNum a, BigNum b, BigNum modulo)
           
static void modMulRecip(BigNum r, BigNum x, BigNum y, BigNum m, BigNum i, short nb)
           
static void mul(BigNum r, BigNum a, BigNum b)
          r must not be the same object as a or b.
static boolean odd(BigNum a)
           
static void one(BigNum a)
           
static int recip(BigNum r, BigNum m)
           
static void self_test(java.io.PrintWriter out)
           
static void shiftLeft(BigNum r, BigNum a, int n)
           
static void shiftLeft(BigNum r, BigNum a, short n)
           
static void shiftLeftOnce(BigNum r, BigNum a)
           
static void shiftRight(BigNum r, BigNum a, int n)
           
static void shiftRight(BigNum r, BigNum a, short n)
           
static void shiftRightOnce(BigNum r, BigNum a)
           
static void sub_unsigned(BigNum r, BigNum a, BigNum b)
           
static void sub_unsigned(BigNum r, int a)
           
static void sub(BigNum r, BigNum a, BigNum b)
           
static void sub(BigNum r, int a)
           
static int ucmp(BigNum a, BigNum b)
           
static void zero(BigNum a)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BITS

static final int BITS

RADIX

static final int RADIX

MASK

static final int MASK

LBITS

static final int LBITS

LRADIX

static final int LRADIX

LMASK

static final int LMASK
Constructor Detail

BigNum

protected BigNum()
Method Detail

static void ()

byteLength

public int byteLength()

check_state

public void check_state()

bitLength

public static int bitLength(BigNum n)

bit

public static boolean bit(BigNum n,
                          int i)

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

copy

public void copy(java.lang.Object src)

copy

protected static void copy(BigNum dst,
                           BigNum src)

grow

public static void grow(BigNum a,
                        int i)

intoBinary

public int intoBinary(byte[] buffer)

fromBinary

protected void fromBinary(byte[] buffer)

assign

public static void assign(BigNum r,
                          int val)

zero

public static void zero(BigNum a)

one

public static void one(BigNum a)

isOne

public static boolean isOne(BigNum a)

even

public static boolean even(BigNum a)

odd

public static boolean odd(BigNum a)

isZero

public static boolean isZero(BigNum a)

inc

public static void inc(BigNum a)

dec

public static void dec(BigNum a)

add

public static void add(BigNum r,
                       int a)

sub

public static void sub(BigNum r,
                       int a)

add

public static void add(BigNum r,
                       BigNum a,
                       BigNum b)

add_unsigned

public static void add_unsigned(BigNum r,
                                int a)

add_unsigned

public static void add_unsigned(BigNum r,
                                BigNum a,
                                BigNum b)

sub

public static void sub(BigNum r,
                       BigNum a,
                       BigNum b)

sub_unsigned

public static void sub_unsigned(BigNum r,
                                int a)

sub_unsigned

public static void sub_unsigned(BigNum r,
                                BigNum a,
                                BigNum b)

cmp

public static int cmp(BigNum a,
                      BigNum b)
Returns 0 if a == b, -1 if a < b, or 1 if a > b.

ucmp

public static int ucmp(BigNum a,
                       BigNum b)

shiftLeft

public static void shiftLeft(BigNum r,
                             BigNum a,
                             int n)

shiftLeft

public static void shiftLeft(BigNum r,
                             BigNum a,
                             short n)

shiftLeftOnce

public static void shiftLeftOnce(BigNum r,
                                 BigNum a)

shiftRight

public static void shiftRight(BigNum r,
                              BigNum a,
                              int n)

shiftRight

public static void shiftRight(BigNum r,
                              BigNum a,
                              short n)

shiftRightOnce

public static void shiftRightOnce(BigNum r,
                                  BigNum a)

mul

public static void mul(BigNum r,
                       BigNum a,
                       BigNum b)
r must not be the same object as a or b.

mod

public static void mod(BigNum r,
                       BigNum m,
                       BigNum d)
r must not be the same object as m.

div

public static void div(BigNum dv,
                       BigNum m,
                       BigNum d)

div

public static void div(BigNum dv,
                       BigNum rem,
                       BigNum m,
                       BigNum d)

modExp

public static void modExp(BigNum r,
                          BigNum a,
                          BigNum power,
                          BigNum modulo)

modMul

public static void modMul(BigNum r,
                          BigNum a,
                          BigNum b,
                          BigNum modulo)

recip

public static int recip(BigNum r,
                        BigNum m)

euclid

public static void euclid(BigNum r,
                          BigNum x,
                          BigNum y)

gcd

public static void gcd(BigNum r,
                       BigNum a,
                       BigNum b)

modMulRecip

public static void modMulRecip(BigNum r,
                               BigNum x,
                               BigNum y,
                               BigNum m,
                               BigNum i,
                               short nb)

extended_euclid

public static void extended_euclid(BigNum u1,
                                   BigNum u2,
                                   BigNum u3,
                                   BigNum a,
                                   BigNum b)

inverseModN

public static void inverseModN(BigNum r,
                               BigNum a,
                               BigNum n)

finalize

protected void finalize()
Overrides:
finalize in class java.lang.Object

display

public static void display(java.io.PrintStream out,
                           BigNum x)

display

public static void display(java.io.PrintWriter out,
                           BigNum x)

bignum_hashCode

public int bignum_hashCode()

main

public static void main(java.lang.String[] args)

self_test

public static void self_test(java.io.PrintWriter out)
                      throws java.lang.Exception