Flint2-0.1.0.0: src/Data/Number/Flint/Fmpz.hs
{-|
module : Data.Number.Flint.Fmpz
copyright : (c) 2022 Hartmut Monien
license : GNU GPL, version 2 or above (see LICENSE)
maintainer : hmonien@uni-bonn.de
An `Fmpz` represents an integer.
This module implements operations on integers.
== Example
__Warning__: Instances like `Show` and `Num` are only
avaible for some types without context.
@
import Data.Number.Flint
main = do
let x, y :: Fmpz
x = 7
y = 8
z = x * y
print z
print $ factor z
@
Running main yields:
>>> main
56
[(2,3),(7,1)]
== Using the @Flint@ library directly
@
import Data.Number.Flint
main = do
x <- newFmpz
y <- newFmpz
z <- newFmpz
withFmpz x $ \\x -> do
withFmpz y $ \\y -> do
withFmpz z $ \\z -> do
fmpz_set_ui x 7
fmpz_set_ui y 8
fmpz_mul z x y
fmpz_print z
fac <- newFmpzFactor
putStr "\\n"
withFmpzFactor fac $ \\fac -> do
fmpz_factor fac z
fmpz_factor_print fac
putStr "\\n"
@
Running main yields:
>>> main
56
2^3 * 7
-}
module Data.Number.Flint.Fmpz (
module Data.Number.Flint.Fmpz.FFI
) where
import Data.Number.Flint.Fmpz.FFI