{-# LINE 1 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
module Data.Number.Flint.Fq.NMod.FFI (
FqNMod (..)
, CFqNMod (..)
, newFqNMod
, withFqNMod
, FqNModCtx (..)
, CFqNModCtx (..)
, newFqNModCtx
, newFqNModCtxConway
, newFqNModCtxModulus
, withFqNModCtx
, fq_nmod_ctx_init
, _fq_nmod_ctx_init_conway
, fq_nmod_ctx_init_conway
, fq_nmod_ctx_init_modulus
, fq_nmod_ctx_clear
, fq_nmod_ctx_modulus
, fq_nmod_ctx_degree
, fq_nmod_ctx_order
, fq_nmod_ctx_fprint
, fq_nmod_ctx_print
, fq_nmod_ctx_randtest
, fq_nmod_ctx_randtest_reducible
, fq_nmod_init
, fq_nmod_init2
, fq_nmod_clear
, _fq_nmod_sparse_reduce
, _fq_nmod_dense_reduce
, _fq_nmod_reduce
, fq_nmod_reduce
, fq_nmod_add
, fq_nmod_sub
, fq_nmod_sub_one
, fq_nmod_neg
, fq_nmod_mul
, fq_nmod_mul_fmpz
, fq_nmod_mul_si
, fq_nmod_mul_ui
, fq_nmod_sqr
, _fq_nmod_inv
, fq_nmod_inv
, fq_nmod_gcdinv
, _fq_nmod_pow
, fq_nmod_pow
, fq_nmod_pow_ui
, fq_nmod_sqrt
, fq_nmod_pth_root
, fq_nmod_is_square
, fq_nmod_fprint_pretty
, fq_nmod_print_pretty
, fq_nmod_fprint
, fq_nmod_print
, fq_nmod_get_str
, fq_nmod_get_str_pretty
, fq_nmod_randtest
, fq_nmod_randtest_not_zero
, fq_nmod_randtest_dense
, fq_nmod_rand
, fq_nmod_rand_not_zero
, fq_nmod_set
, fq_nmod_set_si
, fq_nmod_set_ui
, fq_nmod_set_fmpz
, fq_nmod_swap
, fq_nmod_zero
, fq_nmod_one
, fq_nmod_gen
, fq_nmod_get_fmpz
, fq_nmod_get_nmod_poly
, fq_nmod_set_nmod_poly
, fq_nmod_get_nmod_mat
, fq_nmod_set_nmod_mat
, fq_nmod_is_zero
, fq_nmod_is_one
, fq_nmod_equal
, fq_nmod_is_invertible
, fq_nmod_is_invertible_f
, fq_nmod_cmp
, _fq_nmod_trace
, fq_nmod_trace
, _fq_nmod_norm
, fq_nmod_norm
, _fq_nmod_frobenius
, fq_nmod_frobenius
, fq_nmod_multiplicative_order
, fq_nmod_is_primitive
, fq_nmod_bit_pack
, fq_nmod_bit_unpack
) where
import Foreign.C.String
import Foreign.C.Types
import qualified Foreign.Concurrent
import Foreign.ForeignPtr
import Foreign.Ptr
import Foreign.Storable
import Foreign.Marshal
import Data.Number.Flint.Flint
import Data.Number.Flint.Fmpz
import Data.Number.Flint.NMod
import Data.Number.Flint.NMod.Types
import Data.Number.Flint.Fq.NMod.Types
instance Storable CFqNMod where
{-# INLINE sizeOf #-}
sizeOf :: CFqNMod -> Int
sizeOf CFqNMod
_ = (Int
48)
{-# LINE 135 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
{-# INLINE alignment #-}
alignment :: CFqNMod -> Int
alignment CFqNMod
_ = Int
8
{-# LINE 137 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
peek = undefined
poke :: Ptr CFqNMod -> CFqNMod -> IO ()
poke = forall a. HasCallStack => a
undefined
newFqNMod :: FqNModCtx -> IO FqNMod
newFqNMod ctx :: FqNModCtx
ctx@(FqNModCtx ForeignPtr CFqNModCtx
ftx) = do
ForeignPtr CFqNMod
x <- forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFqNMod
xforall a b. (a -> b) -> a -> b
$ \Ptr CFqNMod
x -> do
forall {a}.
FqNModCtx -> (Ptr CFqNModCtx -> IO a) -> IO (FqNModCtx, a)
withFqNModCtx FqNModCtx
ctx forall a b. (a -> b) -> a -> b
$ \Ptr CFqNModCtx
ctx -> do
Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
fq_nmod_init Ptr CFqNMod
x Ptr CFqNModCtx
ctx
forall env a.
FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO ()
addForeignPtrFinalizerEnv FunPtr (Ptr CFqNMod -> Ptr CFqNModCtx -> IO ())
p_fq_nmod_clear Ptr CFqNMod
x ForeignPtr CFqNModCtx
ftx
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ ForeignPtr CFqNMod -> FqNMod
FqNMod ForeignPtr CFqNMod
x
{-# INLINE withFqNMod #-}
withFqNMod :: FqNMod -> (Ptr CFqNMod -> IO a) -> IO (FqNMod, a)
withFqNMod (FqNMod ForeignPtr CFqNMod
x) Ptr CFqNMod -> IO a
f = do
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFqNMod
x forall a b. (a -> b) -> a -> b
$ \Ptr CFqNMod
px -> Ptr CFqNMod -> IO a
f Ptr CFqNMod
px forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ForeignPtr CFqNMod -> FqNMod
FqNMod ForeignPtr CFqNMod
x,)
instance Storable CFqNModCtx where
{-# INLINE sizeOf #-}
sizeOf :: CFqNModCtx -> Int
sizeOf CFqNModCtx
_ = (Int
168)
{-# LINE 157 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
{-# INLINE alignment #-}
alignment :: CFqNModCtx -> Int
alignment CFqNModCtx
_ = Int
8
{-# LINE 159 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
peek ptr = CFqNModCtx
<$> (return $ castPtr ptr)
<*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 162 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 32) ptr
{-# LINE 163 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 36) ptr
{-# LINE 164 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 40) ptr
{-# LINE 165 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 48) ptr
{-# LINE 166 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 56) ptr
{-# LINE 167 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 64) ptr
{-# LINE 168 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 112) ptr
{-# LINE 169 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
<*> (\hsc_ptr -> peekByteOff hsc_ptr 160) ptr
{-# LINE 170 "src/Data/Number/Flint/Fq/NMod/FFI.hsc" #-}
poke = undefined
newFqNModCtx :: Fmpz -> CLong -> String -> IO FqNModCtx
newFqNModCtx Fmpz
p CLong
d String
var = do
ForeignPtr CFqNModCtx
x <- forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFqNModCtx
x forall a b. (a -> b) -> a -> b
$ \Ptr CFqNModCtx
x ->
forall {a}. Fmpz -> (Ptr CFmpz -> IO a) -> IO (Fmpz, a)
withFmpz Fmpz
p forall a b. (a -> b) -> a -> b
$ \Ptr CFmpz
p ->
forall a. String -> (CString -> IO a) -> IO a
withCString String
var forall a b. (a -> b) -> a -> b
$ \CString
var ->
Ptr CFqNModCtx -> Ptr CFmpz -> CLong -> CString -> IO ()
fq_nmod_ctx_init Ptr CFqNModCtx
x Ptr CFmpz
p CLong
d CString
var
forall a. FinalizerPtr a -> ForeignPtr a -> IO ()
addForeignPtrFinalizer FunPtr (Ptr CFqNModCtx -> IO ())
p_fq_nmod_ctx_clear ForeignPtr CFqNModCtx
x
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ ForeignPtr CFqNModCtx -> FqNModCtx
FqNModCtx ForeignPtr CFqNModCtx
x
newFqNModCtxConway :: Fmpz -> CLong -> String -> IO FqNModCtx
newFqNModCtxConway Fmpz
p CLong
d String
var = do
ForeignPtr CFqNModCtx
x <- forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFqNModCtx
x forall a b. (a -> b) -> a -> b
$ \Ptr CFqNModCtx
x ->
forall {a}. Fmpz -> (Ptr CFmpz -> IO a) -> IO (Fmpz, a)
withFmpz Fmpz
p forall a b. (a -> b) -> a -> b
$ \Ptr CFmpz
p ->
forall a. String -> (CString -> IO a) -> IO a
withCString String
var forall a b. (a -> b) -> a -> b
$ \CString
var ->
Ptr CFqNModCtx -> Ptr CFmpz -> CLong -> CString -> IO ()
fq_nmod_ctx_init_conway Ptr CFqNModCtx
x Ptr CFmpz
p CLong
d CString
var
forall a. FinalizerPtr a -> ForeignPtr a -> IO ()
addForeignPtrFinalizer FunPtr (Ptr CFqNModCtx -> IO ())
p_fq_nmod_ctx_clear ForeignPtr CFqNModCtx
x
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ ForeignPtr CFqNModCtx -> FqNModCtx
FqNModCtx ForeignPtr CFqNModCtx
x
newFqNModCtxModulus :: Ptr CNModPoly -> String -> IO FqNModCtx
newFqNModCtxModulus Ptr CNModPoly
modulus String
var = do
ForeignPtr CFqNModCtx
x <- forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFqNModCtx
x forall a b. (a -> b) -> a -> b
$ \Ptr CFqNModCtx
x ->
forall a. String -> (CString -> IO a) -> IO a
withCString String
var forall a b. (a -> b) -> a -> b
$ \CString
var ->
Ptr CFqNModCtx -> Ptr CNModPoly -> CString -> IO ()
fq_nmod_ctx_init_modulus Ptr CFqNModCtx
x Ptr CNModPoly
modulus CString
var
forall a. FinalizerPtr a -> ForeignPtr a -> IO ()
addForeignPtrFinalizer FunPtr (Ptr CFqNModCtx -> IO ())
p_fq_nmod_ctx_clear ForeignPtr CFqNModCtx
x
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ ForeignPtr CFqNModCtx -> FqNModCtx
FqNModCtx ForeignPtr CFqNModCtx
x
{-# INLINE withFqNModCtx #-}
withFqNModCtx :: FqNModCtx -> (Ptr CFqNModCtx -> IO a) -> IO (FqNModCtx, a)
withFqNModCtx (FqNModCtx ForeignPtr CFqNModCtx
x) Ptr CFqNModCtx -> IO a
f = do
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFqNModCtx
x forall a b. (a -> b) -> a -> b
$ \Ptr CFqNModCtx
px -> Ptr CFqNModCtx -> IO a
f Ptr CFqNModCtx
px forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ForeignPtr CFqNModCtx -> FqNModCtx
FqNModCtx ForeignPtr CFqNModCtx
x,)
foreign import ccall "fq_nmod.h fq_nmod_ctx_init"
fq_nmod_ctx_init :: Ptr CFqNModCtx -> Ptr CFmpz -> CLong -> CString -> IO ()
foreign import ccall "fq_nmod.h _fq_nmod_ctx_init_conway"
_fq_nmod_ctx_init_conway :: Ptr CFqNModCtx -> Ptr CFmpz -> CLong -> CString -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_ctx_init_conway"
fq_nmod_ctx_init_conway :: Ptr CFqNModCtx -> Ptr CFmpz -> CLong -> CString -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_ctx_init_modulus"
fq_nmod_ctx_init_modulus :: Ptr CFqNModCtx -> Ptr CNModPoly -> CString -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_ctx_clear"
fq_nmod_ctx_clear :: Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h &fq_nmod_ctx_clear"
p_fq_nmod_ctx_clear :: FunPtr (Ptr CFqNModCtx -> IO ())
foreign import ccall "fq_nmod.h fq_nmod_ctx_modulus"
fq_nmod_ctx_modulus :: Ptr CFqNModCtx -> IO (Ptr (Ptr CNModPoly))
foreign import ccall "fq_nmod.h fq_nmod_ctx_degree"
fq_nmod_ctx_degree :: Ptr CFqNModCtx -> IO CLong
fq_nmod_ctx_prime :: Ptr CFqNModCtx -> IO (Ptr CFmpz)
fq_nmod_ctx_prime :: Ptr CFqNModCtx -> IO (Ptr CFmpz)
fq_nmod_ctx_prime Ptr CFqNModCtx
ctx = do
CFqNModCtx Ptr CFmpz
p Ptr CNMod
_ CInt
_ CInt
_ Ptr CMpLimb
_ Ptr CLong
_ Ptr CLong
_ Ptr CNModPoly
_ Ptr CNModPoly
_ CString
_ <- forall a. Storable a => Ptr a -> IO a
peek Ptr CFqNModCtx
ctx
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CFmpz
p
foreign import ccall "fq_nmod.h fq_nmod_ctx_order"
fq_nmod_ctx_order :: Ptr CFmpz -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_ctx_get_str"
fq_nmod_ctx_get_str :: Ptr CFqNModCtx -> IO CString
foreign import ccall "fq_nmod.h fq_nmod_ctx_fprint"
fq_nmod_ctx_fprint :: Ptr CFile -> Ptr CFqNModCtx -> IO CInt
fq_nmod_ctx_print :: Ptr CFqNModCtx -> IO ()
fq_nmod_ctx_print :: Ptr CFqNModCtx -> IO ()
fq_nmod_ctx_print Ptr CFqNModCtx
ctx = do
forall a. (Ptr a -> IO CString) -> Ptr a -> IO CInt
printCStr Ptr CFqNModCtx -> IO CString
fq_nmod_ctx_get_str Ptr CFqNModCtx
ctx
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "fq_nmod.h fq_nmod_ctx_randtest"
fq_nmod_ctx_randtest :: Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_ctx_randtest_reducible"
fq_nmod_ctx_randtest_reducible :: Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_init"
fq_nmod_init :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_init2"
fq_nmod_init2 :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_clear"
fq_nmod_clear :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h &fq_nmod_clear"
p_fq_nmod_clear :: FunPtr (Ptr CFqNMod -> Ptr CFqNModCtx -> IO ())
foreign import ccall "fq_nmod.h _fq_nmod_sparse_reduce"
_fq_nmod_sparse_reduce :: Ptr CMp -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h _fq_nmod_dense_reduce"
_fq_nmod_dense_reduce :: Ptr CMp -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h _fq_nmod_reduce"
_fq_nmod_reduce :: Ptr CMp -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_reduce"
fq_nmod_reduce :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_add"
fq_nmod_add :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_sub"
fq_nmod_sub :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_sub_one"
fq_nmod_sub_one :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_neg"
fq_nmod_neg :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_mul"
fq_nmod_mul :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_mul_fmpz"
fq_nmod_mul_fmpz :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFmpz -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_mul_si"
fq_nmod_mul_si :: Ptr CFqNMod -> Ptr CFqNMod -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_mul_ui"
fq_nmod_mul_ui :: Ptr CFqNMod -> Ptr CFqNMod -> CULong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_sqr"
fq_nmod_sqr :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h _fq_nmod_inv"
_fq_nmod_inv :: Ptr (Ptr CMp) -> Ptr (Ptr CMp) -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_inv"
fq_nmod_inv :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_gcdinv"
fq_nmod_gcdinv :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h _fq_nmod_pow"
_fq_nmod_pow :: Ptr (Ptr CMp) -> Ptr (Ptr CMp) -> CLong -> Ptr CFmpz -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_pow"
fq_nmod_pow :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFmpz -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_pow_ui"
fq_nmod_pow_ui :: Ptr CFqNMod -> Ptr CFqNMod -> CULong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_sqrt"
fq_nmod_sqrt :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_pth_root"
fq_nmod_pth_root :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_is_square"
fq_nmod_is_square :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_fprint_pretty"
fq_nmod_fprint_pretty :: Ptr CFile -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
fq_nmod_print_pretty :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
fq_nmod_print_pretty :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
fq_nmod_print_pretty Ptr CFqNMod
op Ptr CFqNModCtx
ctx = do
forall a. (Ptr a -> IO CString) -> Ptr a -> IO CInt
printCStr (Ptr CFqNMod -> Ptr CFqNModCtx -> IO CString
`fq_nmod_get_str_pretty` Ptr CFqNModCtx
ctx) Ptr CFqNMod
op
foreign import ccall "fq_nmod.h fq_nmod_fprint"
fq_nmod_fprint :: Ptr CFile -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
fq_nmod_print :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
fq_nmod_print :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
fq_nmod_print Ptr CFqNMod
op Ptr CFqNModCtx
ctx = do
forall a. (Ptr a -> IO CString) -> Ptr a -> IO CInt
printCStr (Ptr CFqNMod -> Ptr CFqNModCtx -> IO CString
`fq_nmod_get_str` Ptr CFqNModCtx
ctx) Ptr CFqNMod
op
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "fq_nmod.h fq_nmod_get_str"
fq_nmod_get_str :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CString
foreign import ccall "fq_nmod.h fq_nmod_get_str_pretty"
fq_nmod_get_str_pretty :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CString
foreign import ccall "fq_nmod.h fq_nmod_randtest"
fq_nmod_randtest :: Ptr CFqNMod -> Ptr CFRandState -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_randtest_not_zero"
fq_nmod_randtest_not_zero :: Ptr CFqNMod -> Ptr CFRandState -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_randtest_dense"
fq_nmod_randtest_dense :: Ptr CFqNMod -> Ptr CFRandState -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_rand"
fq_nmod_rand :: Ptr CFqNMod -> Ptr CFRandState -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_rand_not_zero"
fq_nmod_rand_not_zero :: Ptr CFqNMod -> Ptr CFRandState -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_set"
fq_nmod_set :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_set_si"
fq_nmod_set_si :: Ptr CFqNMod -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_set_ui"
fq_nmod_set_ui :: Ptr CFqNMod -> CULong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_set_fmpz"
fq_nmod_set_fmpz :: Ptr CFqNMod -> Ptr CFmpz -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_swap"
fq_nmod_swap :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_zero"
fq_nmod_zero :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_one"
fq_nmod_one :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_gen"
fq_nmod_gen :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_get_fmpz"
fq_nmod_get_fmpz :: Ptr CFmpz -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_get_nmod_poly"
fq_nmod_get_nmod_poly :: Ptr CNModPoly -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_set_nmod_poly"
fq_nmod_set_nmod_poly :: Ptr CFqNMod -> Ptr CNModPoly -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_get_nmod_mat"
fq_nmod_get_nmod_mat :: Ptr CNModMat -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_set_nmod_mat"
fq_nmod_set_nmod_mat :: Ptr CFqNMod -> Ptr CNModMat -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_is_zero"
fq_nmod_is_zero :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_is_one"
fq_nmod_is_one :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_equal"
fq_nmod_equal :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_is_invertible"
fq_nmod_is_invertible :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_is_invertible_f"
fq_nmod_is_invertible_f :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_cmp"
fq_nmod_cmp :: Ptr CFqNMod -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h _fq_nmod_trace"
_fq_nmod_trace :: Ptr CFmpz -> Ptr (Ptr CMp) -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_trace"
fq_nmod_trace :: Ptr CFmpz -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h _fq_nmod_norm"
_fq_nmod_norm :: Ptr CFmpz -> Ptr (Ptr CMp) -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_norm"
fq_nmod_norm :: Ptr CFmpz -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h _fq_nmod_frobenius"
_fq_nmod_frobenius :: Ptr (Ptr CMp) -> Ptr (Ptr CMp) -> CLong -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_frobenius"
fq_nmod_frobenius :: Ptr CFqNMod -> Ptr CFqNMod -> CLong -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_multiplicative_order"
fq_nmod_multiplicative_order :: Ptr CFmpz -> Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_is_primitive"
fq_nmod_is_primitive :: Ptr CFqNMod -> Ptr CFqNModCtx -> IO CInt
foreign import ccall "fq_nmod.h fq_nmod_bit_pack"
fq_nmod_bit_pack :: Ptr CFmpz -> Ptr CFqNMod -> CFBitCnt -> Ptr CFqNModCtx -> IO ()
foreign import ccall "fq_nmod.h fq_nmod_bit_unpack"
fq_nmod_bit_unpack :: Ptr CFqNMod -> Ptr CFmpz -> CFBitCnt -> Ptr CFqNModCtx -> IO ()