.
=item lshift
$r->lshift($a, $n);
Shift $a left by $n bits.
=item lshift1
$r->lshift1($a);
Shift $a left by 1 bit. This form is more efficient than C.
=item rshift
$r->rshift($a, $n);
Shift $a right by $n bits.
=item rshift1
$r->rshift1($a);
Shift $a right by 1 bit. This form is more efficient than C.
=item mod_exp
$r->mod_exp($a, $p, $mod);
Raise $a to the $p power and return the remainder into $r when divided by $m.
=item modmul_recip
modmul_recip($r, $x, $y, $m, $i, $nb);
This function is used to perform an efficient C operation.
If one is going to repeatedly perform C with the same modulus
is worth calculating the reciprocal of the modulus and then using this
function. This operation uses the fact that a/b == a*r where r is the
reciprocal of b. On modern computers multiplication is very fast and
big number division is very slow. $x is multiplied by $y and then
divided by $m and the remainder is returned in $r. $i is the reciprocal
of $m and $nb is the number of bits as returned from C.
This function is used in C.
=item mul_mod
$r->mul_mod($a, $b, $m);
Multiply $a by $b and return the remainder into $r when divided by $m.
=item reciprical
$r->reciprical($m);
Return the reciprocal of $m into $r.
=back
=head2 Miscellaneous Routines
=over 4
=item num_bits
my $size = $bi->numbits();
Return the size (in bits) of the BigInteger.
=item gcd
$r->gcd($a, $b);
$r has the greatest common divisor of $a and $b.
=item inverse_modn
$r->inverse_modn($a, $n);
This function creates a new BigInteger and returns it in $r. This number
is the inverse mod $n of $a. By this it is meant that the returned value
$r satisfies (a*r)%n == 1. This function is used in the generation of RSA keys.
=back
=head1 BUGS
Negative numbers cannot be saved or restored.
To fix this requires modification of Eric Young's library.
The documentation.
=head1 COPYRIGHT
Systemics Ltd ( http://www.systemics.com/ ).
Portions copyright Eric Young (eay@mincom.oz.au).