The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Math::ModInt::Perl - modular integer arithmetic, powered by native Perl

VERSION

This documentation refers to version 0.013 of Math::ModInt::Perl.

SYNOPSIS

  use Math::ModInt::Perl;

  $a = Math::ModInt::Perl->new(3, 7);             # 3 [mod 7]
  $b = $a->new(4);                                # 4 [mod 7]
  $c = $a + $b;                                   # 0 [mod 7]
  $d = $a**2 - $b/$a;                             # 3 [mod 7]

  $m = $b->modulus;                               # 7
  $r = $b->residue;                               # 4
  $r = $b->signed_residue;                        # -3
  $t = "$b";                                      # 'mod(4, 7)'

  $bool = $c == $d;                               # false

  $a->optimize_time;                  # aim for less cpu cycles
  $a->optimize_space;                 # aim for less memory space
  $a->optimize_default;               # reset optimization choice

DESCRIPTION

Math::ModInt::Perl is a generic implementation of Math::ModInt for small moduli, using native Perl integer arithmetic. Like all Math::ModInt implementations, it is loaded behind the scenes when there is demand for it, without applications needing to worry about it.

This implementation is capable of different optimization strategies per modulus. See optimize_time, optimize_space, optimize_default in Math::ModInt.

SEE ALSO

AUTHOR

Martin Becker, <becker-cpan-mp at cozap.com>

LICENSE AND COPYRIGHT

Copyright (c) 2009-2021 Martin Becker, Blaubeuren.

This library is free software; you can distribute it and/or modify it under the terms of the Artistic License 2.0 (see LICENSE file).

DISCLAIMER OF WARRANTY

This library is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.