Math::BigInt(3perPerl Programmers Reference GuMath::BigInt(t) NAME Math::BigInt - Arbitrary size integer math package SYNOPSIS use Math::BigInt; $i = Math::BigInt->new($string); $i->bneg return BINT negation $i->babs return BINT absolute value $i->bcmp(p) return CODE compare numbers (undef,<0,=0,>0) $i->badd(d) return BINT addition $i->bsub(b) return BINT subtraction $i->bmul(l) return BINT multiplication $i->bdiv(v) return (BINT,BINT) division (quo,rem) just quo if scalar $i->bmod(d) return BINT modulus $i->bgcd(d) return BINT greatest common divisor $i->bnorm return BINT normalization $i->blsft(t) return BINT left shift $i->brsft(t) return (BINT,BINT) right shift (quo,rem) just quo if scalar $i->band(d) return BINT bit-wise and $i->bior(r) return BINT bit-wise inclusive or $i->bxor(r) return BINT bit-wise exclusive or $i->bnot return BINT bit-wise not DESCRIPTION All basic math operations are overloaded if you declare your big integers as $i = new Math::BigInt '123 456 789 123 456 789'; Canonical notation Big integer value are strings of the form "/^[+-]\d+$/" with leading zeros suppressed. Input Input values to these routines may be strings of the form "/^\s*[+-]?[\d\s]+$/". Output Output values always always in canonical form Actual math is done in an internal format consisting of an array whose first element is the sign (/^[+-]$/) and whose remaining elements are base 100000 digits with the least significant digit first. The string 'NaN' is used to rep- resent the result when input arguments are not numbers, as well as the result of dividing by zero. EXAMPLES '+0' canonical zero value ' -123 123 123' canonical value '-123123123' '1 23 456 7890' canonical value '+1234567890' Autocreating constants After "use Math::BigInt ':constant'" all the integer deci- mal constants in the given scope are converted to "Math::BigInt". This conversion happens at compile time. In particular perl -MMath::BigInt=:constant -e 'print 2**100' print the integer value of "2**100". Note that without conversion of constants the expression 2**100 will be cal- culated as floating point number. BUGS The current version of this module is a preliminary ver- sion of the real thing that is currently (as of perl5.002) under development. AUTHOR Mark Biggar, overloaded interface by Ilya Zakharevich. perl v5.6.1 2001-02-23 Math::BigInt(t)