[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/i586-linux-thread-multi/Math/BigInt/ -> FastCalc.pm (source)

   1  package Math::BigInt::FastCalc;
   2  
   3  use 5.006;
   4  use strict;
   5  # use warnings;    # dont use warnings for older Perls
   6  
   7  use DynaLoader;
   8  use Math::BigInt::Calc;
   9  
  10  use vars qw/@ISA $VERSION $BASE $BASE_LEN/;
  11  
  12  @ISA = qw(DynaLoader);
  13  
  14  $VERSION = '0.16';
  15  
  16  bootstrap Math::BigInt::FastCalc $VERSION;
  17  
  18  ##############################################################################
  19  # global constants, flags and accessory
  20  
  21  # announce that we are compatible with MBI v1.70 and up
  22  sub api_version () { 1; }
  23   
  24  BEGIN
  25    {
  26    # use Calc to override the methods that we do not provide in XS
  27  
  28    for my $method (qw/
  29      str
  30      add sub mul div
  31      rsft lsft
  32      mod modpow modinv
  33      gcd
  34      pow root sqrt log_int fac nok
  35      digit check
  36      from_hex from_bin from_oct as_hex as_bin as_oct
  37      zeros base_len
  38      xor or and
  39      alen 1ex
  40      /)
  41      {
  42      no strict 'refs';
  43      *{'Math::BigInt::FastCalc::_' . $method} = \&{'Math::BigInt::Calc::_' . $method};
  44      }
  45    my ($AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN_SMALL, $MAX_VAL);
  46   
  47    # store BASE_LEN and BASE to later pass it to XS code 
  48    ($BASE_LEN, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN_SMALL, $MAX_VAL, $BASE) =
  49      Math::BigInt::Calc::_base_len();
  50  
  51    }
  52  
  53  sub import
  54    {
  55    _set_XS_BASE($BASE, $BASE_LEN);
  56    }
  57  
  58  ##############################################################################
  59  ##############################################################################
  60  
  61  1;
  62  __END__
  63  
  64  =head1 NAME
  65  
  66  Math::BigInt::FastCalc - Math::BigInt::Calc with some XS for more speed
  67  
  68  =head1 SYNOPSIS
  69  
  70  Provides support for big integer calculations. Not intended to be used by
  71  other modules. Other modules which sport the same functions can also be used
  72  to support Math::BigInt, like L<Math::BigInt::GMP> or L<Math::BigInt::Pari>.
  73  
  74  =head1 DESCRIPTION
  75  
  76  In order to allow for multiple big integer libraries, Math::BigInt was
  77  rewritten to use library modules for core math routines. Any module which
  78  follows the same API as this can be used instead by using the following:
  79  
  80      use Math::BigInt lib => 'libname';
  81  
  82  'libname' is either the long name ('Math::BigInt::Pari'), or only the short
  83  version like 'Pari'. To use this library:
  84  
  85      use Math::BigInt lib => 'FastCalc';
  86  
  87  Note that from L<Math::BigInt> v1.76 onwards, FastCalc will be loaded
  88  automatically, if possible.
  89  
  90  =head1 STORAGE
  91  
  92  FastCalc works exactly like Calc, in stores the numbers in decimal form,
  93  chopped into parts.
  94  
  95  =head1 METHODS
  96  
  97  The following functions are now implemented in FastCalc.xs:
  98  
  99      _is_odd        _is_even    _is_one        _is_zero
 100      _is_two        _is_ten
 101      _zero        _one        _two        _ten
 102      _acmp        _len        _num
 103      _inc        _dec
 104      __strip_zeros    _copy
 105  
 106  =head1 LICENSE
 107   
 108  This program is free software; you may redistribute it and/or modify it under
 109  the same terms as Perl itself. 
 110  
 111  =head1 AUTHORS
 112  
 113  Original math code by Mark Biggar, rewritten by Tels L<http://bloodgate.com/>
 114  in late 2000.
 115  Seperated from BigInt and shaped API with the help of John Peacock.
 116  Fixed, sped-up and enhanced by Tels http://bloodgate.com 2001-2003.
 117  Further streamlining (api_version 1 etc.) by Tels 2004-2007.
 118  
 119  =head1 SEE ALSO
 120  
 121  L<Math::BigInt>, L<Math::BigFloat>,
 122  L<Math::BigInt::GMP>, L<Math::BigInt::FastCalc> and L<Math::BigInt::Pari>.
 123  
 124  =cut


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1