Math::BigInt::Calc

Supports big integer calculations. Math::BigInt::Calc allows you to use library modules for core math routines. This module is shipped with the Perl 5.8 source kit.

If you’ve written a module that uses the same API as Math::BigInt, you can use Math::BigInt::Calc as follows:

use Math::BigInt lib => 'yourlibname';
use Math::BigInt lib => 'Math::BigInt::yourlibname';

Math::BigInt exports the following functions, which must be defined in your module so Math::BigInt can support it:

_new( string )

Returns a reference to new object from reference to decimal string.

_zero()

Returns a new object with value 0.

_one()

Returns a new object with value 1.

_str( obj )

Returns a reference to a string representing the object.

_num( obj )

Returns a Perl integer or floating-point number. This may not necessarily be accurate, depending on machine-dependent, floating-point size limitations.

_add( obj , obj )

Allows simple addition of two objects.

_mul( obj , obj )

Allows multiplication of two objects.

_div( obj , obj )

Implements division of the first object by the second. In a list context, div() returns result, remainder.

_sub( obj , obj )

Implements simple subtraction of one object from another. A third, optional parameter indicates that the parameters are swapped.

_dec( obj )

Decrements object by one.

_inc( obj )

Increments object by one.

_acmp( obj , obj )

The <=> operator for objects, which returns -1, 0, or 1.

_len( obj )

Returns count of the decimal digits of the object.

_digit( obj , n )

Returns the nth decimal digit of object.

_is_one( obj )

Returns true if argument is 1.

_is_zero( obj )

Returns true if the argument is 0.

_is_even( obj )

Returns true if argument is even.

_is_odd( obj )

Returns true if argument is odd.

_copy()

Returns a reference to a true copy of the object.

_check( obj )

Checks whether the internal representation is still intact. Returns 0 for OK or an error message as a string.

The following functions are optional and can be defined if the underlying library can do them quickly. If undefined, Math::BigInt will use pure Perl fallback routines to emulate these. Note that falling back to Perl’s routines will cause a performance hit.

_from_hex( string )

Returns a reference to a new object from a reference to a hexadecimal string.

_from_bin( string )

Returns a reference to a new object from a reference to a binary string.

_as_hex( string )

Returns a reference to a scalar string containing the value as an unsigned hex string. _as_hex() prepends the 0x, although you must strip all leading zeros.

_as_bin( string )

Similar to _as_hex(), except that it takes a binary string that contains only zeros and ones.

_rsft( obj , n , b )

Shifts object (right) in base B by n digits. Returns undef on failure.

_lsft( obj , n , b )

Shifts object in base b by n digits. Returns undef on failure.

_xor( obj1 , obj2 )

Does an XOR of object 1 with object 2.

_and( obj1 , obj2 )

Does an AND of object 1 with object 2.

_or( obj1 , obj2 )

Does an OR of object 1 with object 2.

_mod( obj1 , obj2 )

Returns remainder of division of the first object by the second object.

_sqrt( obj )

Returns the square root of the object.

_fac( obj )

Returns. factorial of object.

_pow( obj1 , obj2 )

Returns object 1 to the power of object 2.

_gcd( obj1 , obj2 )

Returns the greatest common divisor of two objects.

_zeros( obj )

Returns the number of trailing decimal zeros.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.225.255.187