This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
3e772e92a3e81691d303c2c39f6fdda1949382a5
[perl5.git] / cpan / Math-BigInt-FastCalc / lib / Math / BigInt / FastCalc.pm
1 package Math::BigInt::FastCalc;
2
3 use 5.006;
4 use strict;
5 use warnings;
6
7 use Math::BigInt::Calc 1.999801;
8
9 our @ISA = qw< Math::BigInt::Calc >;
10
11 our $VERSION = '0.5008';
12
13 ##############################################################################
14 # global constants, flags and accessory
15
16 # announce that we are compatible with MBI v1.83 and up
17 sub api_version () { 2; }
18
19 # use Calc to override the methods that we do not provide in XS
20
21 require XSLoader;
22 XSLoader::load(__PACKAGE__, $VERSION, Math::BigInt::Calc->_base_len());
23
24 ##############################################################################
25 ##############################################################################
26
27 1;
28
29 __END__
30
31 =pod
32
33 =head1 NAME
34
35 Math::BigInt::FastCalc - Math::BigInt::Calc with some XS for more speed
36
37 =head1 SYNOPSIS
38
39     # to use it with Math::BigInt
40     use Math::BigInt lib => 'FastCalc';
41
42     # to use it with Math::BigFloat
43     use Math::BigFloat lib => 'FastCalc';
44
45     # to use it with Math::BigRat
46     use Math::BigRat lib => 'FastCalc';
47
48 =head1 DESCRIPTION
49
50 Math::BigInt::FastCalc inherits from Math::BigInt::Calc.
51
52 Provides support for big integer calculations. Not intended to be used by
53 other modules. Other modules which sport the same functions can also be used
54 to support Math::BigInt, like L<Math::BigInt::GMP> or L<Math::BigInt::Pari>.
55
56 In order to allow for multiple big integer libraries, Math::BigInt was
57 rewritten to use library modules for core math routines. Any module which
58 follows the same API as this can be used instead by using the following:
59
60         use Math::BigInt lib => 'libname';
61
62 'libname' is either the long name ('Math::BigInt::Pari'), or only the short
63 version like 'Pari'. To use this library:
64
65         use Math::BigInt lib => 'FastCalc';
66
67 =head1 STORAGE
68
69 Math::BigInt::FastCalc works exactly like Math::BigInt::Calc. Numbers are
70 stored in decimal form chopped into parts.
71
72 =head1 METHODS
73
74 The following functions are now implemented in FastCalc.xs:
75
76         _is_odd         _is_even        _is_one         _is_zero
77         _is_two         _is_ten
78         _zero           _one            _two            _ten
79         _acmp           _len
80         _inc            _dec
81         __strip_zeros   _copy
82
83 =head1 BUGS
84
85 Please report any bugs or feature requests to
86 C<bug-math-bigint-fastcalc at rt.cpan.org>, or through the web interface at
87 L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt-FastCalc>
88 (requires login).
89 We will be notified, and then you'll automatically be notified of progress on
90 your bug as I make changes.
91
92 =head1 SUPPORT
93
94 You can find documentation for this module with the perldoc command.
95
96     perldoc Math::BigInt::FastCalc
97
98 You can also look for information at:
99
100 =over 4
101
102 =item * RT: CPAN's request tracker
103
104 L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt-FastCalc>
105
106 =item * AnnoCPAN: Annotated CPAN documentation
107
108 L<http://annocpan.org/dist/Math-BigInt-FastCalc>
109
110 =item * CPAN Ratings
111
112 L<http://cpanratings.perl.org/dist/Math-BigInt-FastCalc>
113
114 =item * Search CPAN
115
116 L<http://search.cpan.org/dist/Math-BigInt-FastCalc/>
117
118 =item * CPAN Testers Matrix
119
120 L<http://matrix.cpantesters.org/?dist=Math-BigInt-FastCalc>
121
122 =item * The Bignum mailing list
123
124 =over 4
125
126 =item * Post to mailing list
127
128 C<bignum at lists.scsys.co.uk>
129
130 =item * View mailing list
131
132 L<http://lists.scsys.co.uk/pipermail/bignum/>
133
134 =item * Subscribe/Unsubscribe
135
136 L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
137
138 =back
139
140 =back
141
142 =head1 LICENSE
143
144 This program is free software; you may redistribute it and/or modify it under
145 the same terms as Perl itself.
146
147 =head1 AUTHORS
148
149 Original math code by Mark Biggar, rewritten by Tels L<http://bloodgate.com/>
150 in late 2000.
151 Separated from BigInt and shaped API with the help of John Peacock.
152
153 Fixed, sped-up and enhanced by Tels http://bloodgate.com 2001-2003.
154 Further streamlining (api_version 1 etc.) by Tels 2004-2007.
155
156 Bug-fixing by Peter John Acklam E<lt>pjacklam@online.noE<gt> 2010-2016.
157
158 =head1 SEE ALSO
159
160 L<Math::BigInt::Lib> for a description of the API.
161
162 Alternative libraries L<Math::BigInt::Calc>, L<Math::BigInt::GMP>, and
163 L<Math::BigInt::Pari>.
164
165 Some of the modules that use these libraries L<Math::BigInt>,
166 L<Math::BigFloat>, and L<Math::BigRat>.
167
168 =cut