Blame lib/Math/BigInt/FastCalc.pm

Packit dcde0c
package Math::BigInt::FastCalc;
Packit dcde0c
Packit dcde0c
use 5.006;
Packit dcde0c
use strict;
Packit dcde0c
use warnings;
Packit dcde0c
Packit dcde0c
use Math::BigInt::Calc 1.999801;
Packit dcde0c
Packit dcde0c
our @ISA = qw< Math::BigInt::Calc >;
Packit dcde0c
Packit dcde0c
our $VERSION = '0.5006';
Packit dcde0c
Packit dcde0c
##############################################################################
Packit dcde0c
# global constants, flags and accessory
Packit dcde0c
Packit dcde0c
# announce that we are compatible with MBI v1.83 and up
Packit dcde0c
sub api_version () { 2; }
Packit dcde0c
Packit dcde0c
# use Calc to override the methods that we do not provide in XS
Packit dcde0c
Packit dcde0c
require XSLoader;
Packit dcde0c
XSLoader::load(__PACKAGE__, $VERSION, Math::BigInt::Calc->_base_len());
Packit dcde0c
Packit dcde0c
##############################################################################
Packit dcde0c
##############################################################################
Packit dcde0c
Packit dcde0c
1;
Packit dcde0c
Packit dcde0c
__END__
Packit dcde0c
Packit dcde0c
=pod
Packit dcde0c
Packit dcde0c
=head1 NAME
Packit dcde0c
Packit dcde0c
Math::BigInt::FastCalc - Math::BigInt::Calc with some XS for more speed
Packit dcde0c
Packit dcde0c
=head1 SYNOPSIS
Packit dcde0c
Packit dcde0c
    # to use it with Math::BigInt
Packit dcde0c
    use Math::BigInt lib => 'FastCalc';
Packit dcde0c
Packit dcde0c
    # to use it with Math::BigFloat
Packit dcde0c
    use Math::BigFloat lib => 'FastCalc';
Packit dcde0c
Packit dcde0c
    # to use it with Math::BigRat
Packit dcde0c
    use Math::BigRat lib => 'FastCalc';
Packit dcde0c
Packit dcde0c
=head1 DESCRIPTION
Packit dcde0c
Packit dcde0c
Math::BigInt::FastCalc inherits from Math::BigInt::Calc.
Packit dcde0c
Packit dcde0c
Provides support for big integer calculations. Not intended to be used by
Packit dcde0c
other modules. Other modules which sport the same functions can also be used
Packit dcde0c
to support Math::BigInt, like L<Math::BigInt::GMP> or L<Math::BigInt::Pari>.
Packit dcde0c
Packit dcde0c
In order to allow for multiple big integer libraries, Math::BigInt was
Packit dcde0c
rewritten to use library modules for core math routines. Any module which
Packit dcde0c
follows the same API as this can be used instead by using the following:
Packit dcde0c
Packit dcde0c
	use Math::BigInt lib => 'libname';
Packit dcde0c
Packit dcde0c
'libname' is either the long name ('Math::BigInt::Pari'), or only the short
Packit dcde0c
version like 'Pari'. To use this library:
Packit dcde0c
Packit dcde0c
	use Math::BigInt lib => 'FastCalc';
Packit dcde0c
Packit dcde0c
=head1 STORAGE
Packit dcde0c
Packit dcde0c
Math::BigInt::FastCalc works exactly like Math::BigInt::Calc. Numbers are
Packit dcde0c
stored in decimal form chopped into parts.
Packit dcde0c
Packit dcde0c
=head1 METHODS
Packit dcde0c
Packit dcde0c
The following functions are now implemented in FastCalc.xs:
Packit dcde0c
Packit dcde0c
	_is_odd		_is_even	_is_one		_is_zero
Packit dcde0c
	_is_two		_is_ten
Packit dcde0c
	_zero		_one		_two		_ten
Packit dcde0c
	_acmp		_len
Packit dcde0c
	_inc		_dec
Packit dcde0c
	__strip_zeros	_copy
Packit dcde0c
Packit dcde0c
=head1 BUGS
Packit dcde0c
Packit dcde0c
Please report any bugs or feature requests to
Packit dcde0c
C<bug-math-bigint-fastcalc at rt.cpan.org>, or through the web interface at
Packit dcde0c
L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt-FastCalc>
Packit dcde0c
(requires login).
Packit dcde0c
We will be notified, and then you'll automatically be notified of progress on
Packit dcde0c
your bug as I make changes.
Packit dcde0c
Packit dcde0c
=head1 SUPPORT
Packit dcde0c
Packit dcde0c
You can find documentation for this module with the perldoc command.
Packit dcde0c
Packit dcde0c
    perldoc Math::BigInt::FastCalc
Packit dcde0c
Packit dcde0c
You can also look for information at:
Packit dcde0c
Packit dcde0c
=over 4
Packit dcde0c
Packit dcde0c
=item * RT: CPAN's request tracker
Packit dcde0c
Packit dcde0c
L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt-FastCalc>
Packit dcde0c
Packit dcde0c
=item * AnnoCPAN: Annotated CPAN documentation
Packit dcde0c
Packit dcde0c
L<http://annocpan.org/dist/Math-BigInt-FastCalc>
Packit dcde0c
Packit dcde0c
=item * CPAN Ratings
Packit dcde0c
Packit dcde0c
L<http://cpanratings.perl.org/dist/Math-BigInt-FastCalc>
Packit dcde0c
Packit dcde0c
=item * Search CPAN
Packit dcde0c
Packit dcde0c
L<http://search.cpan.org/dist/Math-BigInt-FastCalc/>
Packit dcde0c
Packit dcde0c
=item * CPAN Testers Matrix
Packit dcde0c
Packit dcde0c
L<http://matrix.cpantesters.org/?dist=Math-BigInt-FastCalc>
Packit dcde0c
Packit dcde0c
=item * The Bignum mailing list
Packit dcde0c
Packit dcde0c
=over 4
Packit dcde0c
Packit dcde0c
=item * Post to mailing list
Packit dcde0c
Packit dcde0c
C<bignum at lists.scsys.co.uk>
Packit dcde0c
Packit dcde0c
=item * View mailing list
Packit dcde0c
Packit dcde0c
L<http://lists.scsys.co.uk/pipermail/bignum/>
Packit dcde0c
Packit dcde0c
=item * Subscribe/Unsubscribe
Packit dcde0c
Packit dcde0c
L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
Packit dcde0c
Packit dcde0c
=back
Packit dcde0c
Packit dcde0c
=back
Packit dcde0c
Packit dcde0c
=head1 LICENSE
Packit dcde0c
Packit dcde0c
This program is free software; you may redistribute it and/or modify it under
Packit dcde0c
the same terms as Perl itself.
Packit dcde0c
Packit dcde0c
=head1 AUTHORS
Packit dcde0c
Packit dcde0c
Original math code by Mark Biggar, rewritten by Tels L<http://bloodgate.com/>
Packit dcde0c
in late 2000.
Packit dcde0c
Separated from BigInt and shaped API with the help of John Peacock.
Packit dcde0c
Packit dcde0c
Fixed, sped-up and enhanced by Tels http://bloodgate.com 2001-2003.
Packit dcde0c
Further streamlining (api_version 1 etc.) by Tels 2004-2007.
Packit dcde0c
Packit dcde0c
Bug-fixing by Peter John Acklam E<lt>pjacklam@online.noE<gt> 2010-2016.
Packit dcde0c
Packit dcde0c
=head1 SEE ALSO
Packit dcde0c
Packit dcde0c
L<Math::BigInt::Lib> for a description of the API.
Packit dcde0c
Packit dcde0c
Alternative libraries L<Math::BigInt::Calc>, L<Math::BigInt::GMP>, and
Packit dcde0c
L<Math::BigInt::Pari>.
Packit dcde0c
Packit dcde0c
Some of the modules that use these libraries L<Math::BigInt>,
Packit dcde0c
L<Math::BigFloat>, and L<Math::BigRat>.
Packit dcde0c
Packit dcde0c
=cut