Copyright | (c) 2011 Daniel Fischer |
---|---|

License | MIT |

Maintainer | Daniel Fischer <daniel.is.fischer@googlemail.com> |

Stability | Provisional |

Portability | Non-portable (GHC extensions) |

Safe Haskell | None |

Language | Haskell2010 |

Factorisation proving the primality of the found factors.

For large numbers, this will be very slow in general.
Use only if you're paranoid or must be *really* sure.

- certifiedFactorisation :: Integer -> [(Integer, Int)]
- certificateFactorisation :: Integer -> [((Integer, Int), PrimalityProof)]
- provenFactorisation :: Integer -> Integer -> [((Integer, Int), PrimalityProof)]

# Documentation

certifiedFactorisation :: Integer -> [(Integer, Int)] Source

produces the prime factorisation
of `certifiedFactorisation`

n`n`

, proving the primality of the factors, but doesn't report the proofs.

certificateFactorisation :: Integer -> [((Integer, Int), PrimalityProof)] Source

produces a `certificateFactorisation`

n`provenFactorisation`

with a default bound of `100000`

.

provenFactorisation :: Integer -> Integer -> [((Integer, Int), PrimalityProof)] Source

constructs a the prime factorisation of `provenFactorisation`

bound n`n`

(which must be positive) together with proofs of primality of the factors,
using trial division up to `bound`

(which is arbitrarily replaced by `2000`

if the supplied value is smaller) and elliptic curve factorisation for the
remaining factors if necessary.

Construction of primality proofs can take a *very* long time, so this
will usually be slow (but should be faster than using `factorise`

and
proving the primality of the factors from scratch).