Skip to content

Latest commit

 

History

1,077 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Math::Prime::Util::GMP version 0.55

A module for number theory in Perl using GMP.  This includes primality tests,
getting primes in a range, factoring, and more.

These use GMP directly, so should be quite fast for bignums.  This module is
mainly intended to be used within Math::Prime::Util, but most functions can
be easily used in independent C programs.  Some, like factoring and primality
proving, have explicit ways of compiling as standalone programs.


SYNOPSIS

  use feature say;
  use bigint;
  use Math::Prime::Util::GMP qw/is_prime/;

  # Max size of a number is 250 assigned to a scalar as a number
  # is_prime accepts a bigint as a string

  my $bignum = "27188762623694447842124996538064039444034480940561898523069471141322552613142248049662205275973369340310432664971214620312500867999795559094898390220747143052478910604268911012707898393728029267456459638286456542290811906119936040794792836567800517712998324001798156031927248728220625109007338679765933511619979774789836912923556217410691909195918721300495567162524824116421834972571058278049256235507898646245768556946276949788343519575161621940362646866507884693948582445313246609982609803440514973664475699712739781845803535392293307648102481184237357244142946254918813030632212409545324607906367812717102049454943";

  say "$bignum is ", is_prime($bignum) ? "prime" : "not prime";

See the POD module documentation for examples and more information on all the
methods included.


INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

You will need a C compiler compatible with the compiler used to build Perl,
and the GMP development system installed.  If you can install or have installed
Math::BigInt::GMP or Math::GMPz then this module should have no issues.

  Fedora:     sudo yum install gmp gmp-devel
  Ubuntu:     sudo apt-get install libgmp3 libgmp3-dev
  Cygwin:     install gmp, libgmp-devel, libgmp3


If you would like to make a standalone executable for ECPP, the easiest method
is to run the xt/create-standalone.sh script, which will create a standalone/
directory with Makefile and README.  You should make sure you have the large
discrimiment set (https://github.com/danaj/Math-Prime-Util-GMP/tree/master/xt/).

To build the standalone SIQS executable after running "perl Makefile.PL":

   make siqs
   ./mpu-siqs 22095311209999409685885162322219

With no integer arguments, mpu-siqs reads whitespace-separated decimal
integers from standard input.  It supports positive inputs through 366 bits.
It retries any composite cofactors it splits off; an unsplit composite is
marked [incomplete] on the result line, reported on stderr, and makes the
program exit unsuccessfully.  Use -v for progress or -vv for relation updates;
the final factorization is printed as one line after progress output.

For a local optimized build, use:

   make siqs SIQS_CFLAGS='-O3 -march=native'

It can also be compiled directly without Perl or a generated Makefile:

   cc -O3 -DSTANDALONE -o mpu-siqs \
      mpu-siqs.c siqs.c lanczos.c prime_iterator.c squfof126.c pbrent63.c \
      -lgmp -lm


DEPENDENCIES

Perl 5.6.2 or later.  No modules outside of Core have been used.


COPYRIGHT AND LICENCE

Copyright (C) 2011-2026 by Dana Jacobsen <dana@acm.org>

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

About

Perl prime number module using XS/GMP

Resources

Stars

19 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages