Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages
Math::BigInt::Lite(3) User Contributed Perl Documentation Math::BigInt::Lite(3)

Math::BigInt::Lite - What Math::BigInts are before they become big

    use Math::BigInt::Lite;
    my $x = Math::BigInt::Lite->new(1);
    print $x->bstr(), "\n";                     # 1
    $x = Math::BigInt::Lite->new('1e1234');
    print $x->bsstr(), "\n";                    # 1e1234 (silently upgrades to
                                                # Math::BigInt)

Math::BigInt is not very good suited to work with small (read: typical less than 10 digits) numbers, since it has a quite high per-operation overhead and is thus much slower than normal Perl for operations like:
    my $x = 1 + 2;                          # fast and correct
    my $x = 2 ** 256;                       # fast, but wrong
    my $x = Math::BigInt->new(1) + 2;       # slow, but correct
    my $x = Math::BigInt->new(2) ** 256;    # slow, and still correct
But for some applications, you want fast speed for small numbers without the risk of overflowing.
This is were "Math::BigInt::Lite" comes into play.
Math::BigInt::Lite objects should behave in every way like Math::BigInt objects, that is apart from the different label, you should not be able to tell the difference. Since Math::BigInt::Lite is designed with speed in mind, there are certain limitations build-in. In praxis, however, you will not feel them, because everytime something gets to big to pass as Lite (literally), it will upgrade the objects and operation in question to Math::BigInt.

Math with the numbers is done (by default) by a module called Math::BigInt::Calc. This is equivalent to saying:
    use Math::BigInt::Lite lib => 'Calc';
You can change this by using:
    use Math::BigInt::Lite lib => 'GMP';
The following would first try to find Math::BigInt::Foo, then Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
    use Math::BigInt::Lite lib => 'Foo,Math::BigInt::Bar';
See the respective low-level math library documentation for further details.
Please note that Math::BigInt::Lite does not use the denoted library itself, but it merely passes the lib argument to Math::BigInt. So, instead of the need to do:
    use Math::BigInt lib => 'GMP';
    use Math::BigInt::Lite;
you can roll it all into one line:
    use Math::BigInt::Lite lib => 'GMP';
Use the lib, Luke!

The pragmas bigrat, bignum and bigint will automatically use Math::BigInt::Lite whenever possible.

    $x = Math::BigInt::Lite->new('1');
Create a new Math::BigInt:Lite object. When the input is not of an suitable simple and small form, an object of the class of $upgrade (typically Math::BigInt) will be returned.
All other methods from BigInt and BigFloat should work as expected.

Please report any bugs or feature requests to "bug-math-bigint at", or through the web interface at <> (requires login). We will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

You can find documentation for this module with the perldoc command.
    perldoc Math::BigInt::Lite
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
CPAN Testers Matrix

This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.

Math::BigFloat and Math::Big as well as Math::BigInt::Pari and Math::BigInt::GMP.
The bignum module.

Copyright 2002-2007 Tels, <>.
Copyright 2010 Florian Ragwitz
Copyright 2016- Peter John Acklam
2018-04-13 perl v5.28.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.