{-# LINE 1 "src/Data/Number/Flint/NMod/MPoly/FFI.hsc" #-}
module Data.Number.Flint.NMod.MPoly.FFI (
NModMPoly (..)
, CNModMPoly (..)
, newNModMPoly
, withNModMPoly
, NModMPolyCtx (..)
, CNModMPolyCtx (..)
, newNModMPolyCtx
, withNModMPolyCtx
, nmod_mpoly_ctx_init
, nmod_mpoly_ctx_nvars
, nmod_mpoly_ctx_ord
, nmod_mpoly_ctx_modulus
, nmod_mpoly_ctx_clear
, nmod_mpoly_init
, nmod_mpoly_init2
, nmod_mpoly_init3
, nmod_mpoly_fit_length
, nmod_mpoly_realloc
, nmod_mpoly_clear
, nmod_mpoly_get_str_pretty
, nmod_mpoly_fprint_pretty
, nmod_mpoly_print_pretty
, nmod_mpoly_set_str_pretty
, nmod_mpoly_gen
, nmod_mpoly_is_gen
, nmod_mpoly_set
, nmod_mpoly_equal
, nmod_mpoly_swap
, nmod_mpoly_is_ui
, nmod_mpoly_get_ui
, nmod_mpoly_set_ui
, nmod_mpoly_zero
, nmod_mpoly_one
, nmod_mpoly_equal_ui
, nmod_mpoly_is_zero
, nmod_mpoly_is_one
, nmod_mpoly_degrees_fit_si
, nmod_mpoly_degrees_fmpz
, nmod_mpoly_degrees_si
, nmod_mpoly_degree_fmpz
, nmod_mpoly_degree_si
, nmod_mpoly_total_degree_fits_si
, nmod_mpoly_total_degree_fmpz
, nmod_mpoly_total_degree_si
, nmod_mpoly_used_vars
, nmod_mpoly_get_coeff_ui_monomial
, nmod_mpoly_set_coeff_ui_monomial
, nmod_mpoly_get_coeff_ui_fmpz
, nmod_mpoly_get_coeff_ui_ui
, nmod_mpoly_set_coeff_ui_fmpz
, nmod_mpoly_set_coeff_ui_ui
, nmod_mpoly_get_coeff_vars_ui
, nmod_mpoly_cmp
, nmod_mpoly_term_coeff_ref
, nmod_mpoly_is_canonical
, nmod_mpoly_length
, nmod_mpoly_resize
, nmod_mpoly_get_term_coeff_ui
, nmod_mpoly_set_term_coeff_ui
, nmod_mpoly_term_exp_fits_si
, nmod_mpoly_term_exp_fits_ui
, nmod_mpoly_get_term_exp_fmpz
, nmod_mpoly_get_term_exp_ui
, nmod_mpoly_get_term_exp_si
, nmod_mpoly_get_term_var_exp_ui
, nmod_mpoly_get_term_var_exp_si
, nmod_mpoly_set_term_exp_fmpz
, nmod_mpoly_set_term_exp_ui
, nmod_mpoly_get_term
, nmod_mpoly_get_term_monomial
, nmod_mpoly_push_term_ui_fmpz
, nmod_mpoly_push_term_ui_ui
, nmod_mpoly_sort_terms
, nmod_mpoly_combine_like_terms
, nmod_mpoly_reverse
, nmod_mpoly_randtest_bound
, nmod_mpoly_randtest_bounds
, nmod_mpoly_randtest_bits
, nmod_mpoly_add_ui
, nmod_mpoly_sub_ui
, nmod_mpoly_add
, nmod_mpoly_sub
, nmod_mpoly_neg
, nmod_mpoly_scalar_mul_ui
, nmod_mpoly_make_monic
, nmod_mpoly_derivative
, nmod_mpoly_evaluate_all_ui
, nmod_mpoly_evaluate_one_ui
, nmod_mpoly_compose_nmod_poly
, nmod_mpoly_compose_nmod_mpoly_geobucket
, nmod_mpoly_compose_nmod_mpoly_horner
, nmod_mpoly_compose_nmod_mpoly
, nmod_mpoly_compose_nmod_mpoly_gen
, nmod_mpoly_mul
, nmod_mpoly_mul_johnson
, nmod_mpoly_mul_heap_threaded
, nmod_mpoly_mul_array
, nmod_mpoly_mul_array_threaded
, nmod_mpoly_mul_dense
, nmod_mpoly_pow_fmpz
, nmod_mpoly_pow_ui
, nmod_mpoly_divides
, nmod_mpoly_div
, nmod_mpoly_divrem
, nmod_mpoly_divrem_ideal
, nmod_mpoly_divides_dense
, nmod_mpoly_divides_monagan_pearce
, nmod_mpoly_divides_heap_threaded
, nmod_mpoly_term_content
, nmod_mpoly_content_vars
, nmod_mpoly_gcd
, nmod_mpoly_gcd_cofactors
, nmod_mpoly_gcd_brown
, nmod_mpoly_gcd_hensel
, nmod_mpoly_gcd_zippel
, nmod_mpoly_resultant
, nmod_mpoly_discriminant
, nmod_mpoly_sqrt
, nmod_mpoly_is_square
, nmod_mpoly_quadratic_root
, nmod_mpoly_univar_init
, nmod_mpoly_univar_clear
, nmod_mpoly_univar_swap
, nmod_mpoly_to_univar
, nmod_mpoly_from_univar
, nmod_mpoly_univar_degree_fits_si
, nmod_mpoly_univar_length
, nmod_mpoly_univar_get_term_exp_si
, nmod_mpoly_univar_get_term_coeff
, nmod_mpoly_univar_swap_term_coeff
, nmod_mpoly_pow_rmul
, nmod_mpoly_div_monagan_pearce
, nmod_mpoly_divrem_monagan_pearce
, nmod_mpoly_divrem_ideal_monagan_pearce
) where
import Control.Monad
import Foreign.C.String
import Foreign.C.Types
import Foreign.ForeignPtr
import Foreign.Ptr ( Ptr, FunPtr, nullPtr, plusPtr )
import Foreign.Storable
import Foreign.Marshal ( free )
import Foreign.Marshal.Array ( advancePtr )
import Data.Number.Flint.Flint
import Data.Number.Flint.Fmpz
import Data.Number.Flint.MPoly
import Data.Number.Flint.NMod
import Data.Number.Flint.NMod.Types
data NModMPoly = NModMPoly {-# UNPACK #-} !(ForeignPtr CNModMPoly)
data CNModMPoly = CNModMPoly
instance Storable CNModMPoly where
{-# INLINE sizeOf #-}
sizeOf :: CNModMPoly -> Int
sizeOf CNModMPoly
_ = (Int
48)
{-# LINE 197 "src/Data/Number/Flint/NMod/MPoly/FFI.hsc" #-}
{-# INLINE alignment #-}
alignment :: CNModMPoly -> Int
alignment CNModMPoly
_ = Int
8
{-# LINE 199 "src/Data/Number/Flint/NMod/MPoly/FFI.hsc" #-}
peek = error "CNModMPoly.peek: Not defined"
poke :: Ptr CNModMPoly -> CNModMPoly -> IO ()
poke = forall a. HasCallStack => [Char] -> a
error [Char]
"CNModMPoly.poke: Not defined"
newNModMPoly :: NModMPolyCtx -> IO NModMPoly
newNModMPoly ctx :: NModMPolyCtx
ctx@(NModMPolyCtx ForeignPtr CNModMPolyCtx
pctx) = do
ForeignPtr CNModMPoly
p <- forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CNModMPoly
p forall a b. (a -> b) -> a -> b
$ \Ptr CNModMPoly
p ->
forall {a}.
NModMPolyCtx -> (Ptr CNModMPolyCtx -> IO a) -> IO (NModMPolyCtx, a)
withNModMPolyCtx NModMPolyCtx
ctx forall a b. (a -> b) -> a -> b
$ \Ptr CNModMPolyCtx
ctx -> do
Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
nmod_mpoly_init Ptr CNModMPoly
p Ptr CNModMPolyCtx
ctx
forall env a.
FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO ()
addForeignPtrFinalizerEnv FunPtr (Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ())
p_nmod_mpoly_clear Ptr CNModMPoly
p ForeignPtr CNModMPolyCtx
pctx
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ ForeignPtr CNModMPoly -> NModMPoly
NModMPoly ForeignPtr CNModMPoly
p
{-# INLINE withNModMPoly #-}
withNModMPoly :: NModMPoly -> (Ptr CNModMPoly -> IO a) -> IO (NModMPoly, a)
withNModMPoly (NModMPoly ForeignPtr CNModMPoly
p) Ptr CNModMPoly -> IO a
f = do
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CNModMPoly
p forall a b. (a -> b) -> a -> b
$ \Ptr CNModMPoly
fp -> (ForeignPtr CNModMPoly -> NModMPoly
NModMPoly ForeignPtr CNModMPoly
p,) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Ptr CNModMPoly -> IO a
f Ptr CNModMPoly
fp
data NModMPolyUnivar = NModMPolyUnivar {-# UNPACK #-} !(ForeignPtr CNModMPolyUnivar)
data CNModMPolyUnivar = CNModMPolyUnivar
instance Storable CNModMPolyUnivar where
{-# INLINE sizeOf #-}
sizeOf :: CNModMPolyUnivar -> Int
sizeOf CNModMPolyUnivar
_ = (Int
32)
{-# LINE 223 "src/Data/Number/Flint/NMod/MPoly/FFI.hsc" #-}
{-# INLINE alignment #-}
alignment :: CNModMPolyUnivar -> Int
alignment CNModMPolyUnivar
_ = Int
8
{-# LINE 225 "src/Data/Number/Flint/NMod/MPoly/FFI.hsc" #-}
peek = error "CNModMPolyUnivar.peek: Not defined"
poke :: Ptr CNModMPolyUnivar -> CNModMPolyUnivar -> IO ()
poke = forall a. HasCallStack => [Char] -> a
error [Char]
"CNModMPolyUnivar.poke: Not defined"
newNModMPolyUnivar :: NModMPolyCtx -> IO NModMPolyUnivar
newNModMPolyUnivar ctx :: NModMPolyCtx
ctx@(NModMPolyCtx ForeignPtr CNModMPolyCtx
pctx) = do
ForeignPtr CNModMPolyUnivar
p <- forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CNModMPolyUnivar
p forall a b. (a -> b) -> a -> b
$ \Ptr CNModMPolyUnivar
p ->
forall {a}.
NModMPolyCtx -> (Ptr CNModMPolyCtx -> IO a) -> IO (NModMPolyCtx, a)
withNModMPolyCtx NModMPolyCtx
ctx forall a b. (a -> b) -> a -> b
$ \Ptr CNModMPolyCtx
ctx -> do
Ptr CNModMPolyUnivar -> Ptr CNModMPolyCtx -> IO ()
nmod_mpoly_univar_init Ptr CNModMPolyUnivar
p Ptr CNModMPolyCtx
ctx
forall env a.
FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO ()
addForeignPtrFinalizerEnv FunPtr (Ptr CNModMPolyUnivar -> Ptr CNModMPolyCtx -> IO ())
p_nmod_mpoly_univar_clear Ptr CNModMPolyUnivar
p ForeignPtr CNModMPolyCtx
pctx
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ ForeignPtr CNModMPolyUnivar -> NModMPolyUnivar
NModMPolyUnivar ForeignPtr CNModMPolyUnivar
p
{-# INLINE withNModMPolyUnivar #-}
withNModMPolyUnivar :: NModMPolyUnivar
-> (Ptr CNModMPolyUnivar -> IO a) -> IO (NModMPolyUnivar, a)
withNModMPolyUnivar (NModMPolyUnivar ForeignPtr CNModMPolyUnivar
p) Ptr CNModMPolyUnivar -> IO a
f = do
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CNModMPolyUnivar
p forall a b. (a -> b) -> a -> b
$ \Ptr CNModMPolyUnivar
fp -> (ForeignPtr CNModMPolyUnivar -> NModMPolyUnivar
NModMPolyUnivar ForeignPtr CNModMPolyUnivar
p,) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Ptr CNModMPolyUnivar -> IO a
f Ptr CNModMPolyUnivar
fp
data NModMPolyCtx = NModMPolyCtx {-# UNPACK #-} !(ForeignPtr CNModMPolyCtx)
data CNModMPolyCtx
instance Storable CNModMPolyCtx where
{-# INLINE sizeOf #-}
sizeOf :: CNModMPolyCtx -> Int
sizeOf CNModMPolyCtx
_ = (Int
632)
{-# LINE 249 "src/Data/Number/Flint/NMod/MPoly/FFI.hsc" #-}
{-# INLINE alignment #-}
alignment :: CNModMPolyCtx -> Int
alignment CNModMPolyCtx
_ = Int
8
{-# LINE 251 "src/Data/Number/Flint/NMod/MPoly/FFI.hsc" #-}
peek = error "CNModMPolyCtx.peek: Not defined"
poke :: Ptr CNModMPolyCtx -> CNModMPolyCtx -> IO ()
poke = forall a. HasCallStack => [Char] -> a
error [Char]
"CNModMPolyCtx.poke: Not defined"
newNModMPolyCtx :: CLong -> Ptr COrdering -> CMpLimb -> IO NModMPolyCtx
newNModMPolyCtx CLong
nvars Ptr COrdering
ord CMpLimb
n = do
ForeignPtr CNModMPolyCtx
p <- forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CNModMPolyCtx
p forall a b. (a -> b) -> a -> b
$ \Ptr CNModMPolyCtx
p ->
Ptr CNModMPolyCtx -> CLong -> Ptr COrdering -> CMpLimb -> IO ()
nmod_mpoly_ctx_init Ptr CNModMPolyCtx
p CLong
nvars Ptr COrdering
ord CMpLimb
n
forall a. FinalizerPtr a -> ForeignPtr a -> IO ()
addForeignPtrFinalizer FunPtr (Ptr CNModMPolyCtx -> IO ())
p_nmod_mpoly_ctx_clear ForeignPtr CNModMPolyCtx
p
forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ ForeignPtr CNModMPolyCtx -> NModMPolyCtx
NModMPolyCtx ForeignPtr CNModMPolyCtx
p
{-# INLINE withNModMPolyCtx #-}
withNModMPolyCtx :: NModMPolyCtx -> (Ptr CNModMPolyCtx -> IO a) -> IO (NModMPolyCtx, a)
withNModMPolyCtx (NModMPolyCtx ForeignPtr CNModMPolyCtx
p) Ptr CNModMPolyCtx -> IO a
f = do
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CNModMPolyCtx
p forall a b. (a -> b) -> a -> b
$ \Ptr CNModMPolyCtx
fp -> Ptr CNModMPolyCtx -> IO a
f Ptr CNModMPolyCtx
fp 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 CNModMPolyCtx -> NModMPolyCtx
NModMPolyCtx ForeignPtr CNModMPolyCtx
p,)
foreign import ccall "nmod_mpoly.h nmod_mpoly_ctx_init"
nmod_mpoly_ctx_init :: Ptr CNModMPolyCtx -> CLong -> Ptr COrdering -> CMpLimb -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_ctx_nvars"
nmod_mpoly_ctx_nvars :: Ptr CNModMPolyCtx -> IO CLong
foreign import ccall "nmod_mpoly.h nmod_mpoly_ctx_ord"
nmod_mpoly_ctx_ord :: Ptr CNModMPolyCtx -> IO (Ptr COrdering)
foreign import ccall "nmod_mpoly.h nmod_mpoly_ctx_modulus"
nmod_mpoly_ctx_modulus :: Ptr CNModMPolyCtx -> IO CMpLimb
foreign import ccall "nmod_mpoly.h nmod_mpoly_ctx_clear"
nmod_mpoly_ctx_clear :: Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h &nmod_mpoly_ctx_clear"
p_nmod_mpoly_ctx_clear :: FunPtr (Ptr CNModMPolyCtx -> IO ())
foreign import ccall "nmod_mpoly.h nmod_mpoly_init"
nmod_mpoly_init :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_init2"
nmod_mpoly_init2 :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_init3"
nmod_mpoly_init3 :: Ptr CNModMPoly -> CLong -> CFBitCnt -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_fit_length"
nmod_mpoly_fit_length :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_realloc"
nmod_mpoly_realloc :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_clear"
nmod_mpoly_clear :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h &nmod_mpoly_clear"
p_nmod_mpoly_clear :: FunPtr (Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ())
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_str_pretty"
nmod_mpoly_get_str_pretty :: Ptr CNModMPoly -> Ptr (Ptr CChar) -> Ptr CNModMPolyCtx -> IO CString
foreign import ccall "nmod_mpoly.h nmod_mpoly_fprint_pretty"
nmod_mpoly_fprint_pretty :: Ptr CFile -> Ptr CNModMPoly -> Ptr (Ptr CChar) -> Ptr CNModMPolyCtx -> IO CInt
nmod_mpoly_print_pretty :: Ptr CNModMPoly
-> Ptr (Ptr CChar)
-> Ptr CNModMPolyCtx
-> IO CInt
nmod_mpoly_print_pretty :: Ptr CNModMPoly -> Ptr (Ptr CChar) -> Ptr CNModMPolyCtx -> IO CInt
nmod_mpoly_print_pretty Ptr CNModMPoly
a Ptr (Ptr CChar)
x Ptr CNModMPolyCtx
ctx =
forall a. (Ptr a -> IO (Ptr CChar)) -> Ptr a -> IO CInt
printCStr (\Ptr CNModMPoly
a -> Ptr CNModMPoly
-> Ptr (Ptr CChar) -> Ptr CNModMPolyCtx -> IO (Ptr CChar)
nmod_mpoly_get_str_pretty Ptr CNModMPoly
a Ptr (Ptr CChar)
x Ptr CNModMPolyCtx
ctx) Ptr CNModMPoly
a
foreign import ccall "nmod_mpoly.h nmod_mpoly_set_str_pretty"
nmod_mpoly_set_str_pretty :: Ptr CNModMPoly -> CString -> Ptr (Ptr CChar) -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_gen"
nmod_mpoly_gen :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_is_gen"
nmod_mpoly_is_gen :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_set"
nmod_mpoly_set :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_equal"
nmod_mpoly_equal :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_swap"
nmod_mpoly_swap :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_is_ui"
nmod_mpoly_is_ui :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_ui"
nmod_mpoly_get_ui :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CULong
foreign import ccall "nmod_mpoly.h nmod_mpoly_set_ui"
nmod_mpoly_set_ui :: Ptr CNModMPoly -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_zero"
nmod_mpoly_zero :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_one"
nmod_mpoly_one :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_equal_ui"
nmod_mpoly_equal_ui :: Ptr CNModMPoly -> CULong -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_is_zero"
nmod_mpoly_is_zero :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_is_one"
nmod_mpoly_is_one :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_degrees_fit_si"
nmod_mpoly_degrees_fit_si :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_degrees_fmpz"
nmod_mpoly_degrees_fmpz :: Ptr (Ptr CFmpz) -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_degrees_si"
nmod_mpoly_degrees_si :: Ptr CLong -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_degree_fmpz"
nmod_mpoly_degree_fmpz :: Ptr CFmpz -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_degree_si"
nmod_mpoly_degree_si :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO CLong
foreign import ccall "nmod_mpoly.h nmod_mpoly_total_degree_fits_si"
nmod_mpoly_total_degree_fits_si :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_total_degree_fmpz"
nmod_mpoly_total_degree_fmpz :: Ptr CFmpz -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_total_degree_si"
nmod_mpoly_total_degree_si :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CLong
foreign import ccall "nmod_mpoly.h nmod_mpoly_used_vars"
nmod_mpoly_used_vars :: Ptr CInt -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_coeff_ui_monomial"
nmod_mpoly_get_coeff_ui_monomial :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CULong
foreign import ccall "nmod_mpoly.h nmod_mpoly_set_coeff_ui_monomial"
nmod_mpoly_set_coeff_ui_monomial :: Ptr CNModMPoly -> CULong -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_coeff_ui_fmpz"
nmod_mpoly_get_coeff_ui_fmpz :: Ptr CNModMPoly -> Ptr (Ptr CFmpz) -> Ptr CNModMPolyCtx -> IO CULong
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_coeff_ui_ui"
nmod_mpoly_get_coeff_ui_ui :: Ptr CNModMPoly -> Ptr CULong -> Ptr CNModMPolyCtx -> IO CULong
foreign import ccall "nmod_mpoly.h nmod_mpoly_set_coeff_ui_fmpz"
nmod_mpoly_set_coeff_ui_fmpz :: Ptr CNModMPoly -> CULong -> Ptr (Ptr CFmpz) -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_set_coeff_ui_ui"
nmod_mpoly_set_coeff_ui_ui :: Ptr CNModMPoly -> CULong -> Ptr CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_coeff_vars_ui"
nmod_mpoly_get_coeff_vars_ui :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CLong -> Ptr CULong -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_cmp"
nmod_mpoly_cmp :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_term_coeff_ref"
nmod_mpoly_term_coeff_ref :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO (Ptr CMpLimb)
foreign import ccall "nmod_mpoly.h nmod_mpoly_is_canonical"
nmod_mpoly_is_canonical :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_length"
nmod_mpoly_length :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CLong
foreign import ccall "nmod_mpoly.h nmod_mpoly_resize"
nmod_mpoly_resize :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_term_coeff_ui"
nmod_mpoly_get_term_coeff_ui :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO CULong
foreign import ccall "nmod_mpoly.h nmod_mpoly_set_term_coeff_ui"
nmod_mpoly_set_term_coeff_ui :: Ptr CNModMPoly -> CLong -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_term_exp_fits_si"
nmod_mpoly_term_exp_fits_si :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_term_exp_fits_ui"
nmod_mpoly_term_exp_fits_ui :: Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_term_exp_fmpz"
nmod_mpoly_get_term_exp_fmpz :: Ptr (Ptr CFmpz) -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_term_exp_ui"
nmod_mpoly_get_term_exp_ui :: Ptr CULong -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_term_exp_si"
nmod_mpoly_get_term_exp_si :: Ptr CLong -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_term_var_exp_ui"
nmod_mpoly_get_term_var_exp_ui :: Ptr CNModMPoly -> CLong -> CLong -> Ptr CNModMPolyCtx -> IO CULong
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_term_var_exp_si"
nmod_mpoly_get_term_var_exp_si :: Ptr CNModMPoly -> CLong -> CLong -> Ptr CNModMPolyCtx -> IO CLong
foreign import ccall "nmod_mpoly.h nmod_mpoly_set_term_exp_fmpz"
nmod_mpoly_set_term_exp_fmpz :: Ptr CNModMPoly -> CLong -> Ptr (Ptr CFmpz) -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_set_term_exp_ui"
nmod_mpoly_set_term_exp_ui :: Ptr CNModMPoly -> CLong -> Ptr CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_term"
nmod_mpoly_get_term :: Ptr CNModMPoly -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_get_term_monomial"
nmod_mpoly_get_term_monomial :: Ptr CNModMPoly -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_push_term_ui_fmpz"
nmod_mpoly_push_term_ui_fmpz :: Ptr CNModMPoly -> CULong -> Ptr (Ptr CFmpz) -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_push_term_ui_ui"
nmod_mpoly_push_term_ui_ui :: Ptr CNModMPoly -> CULong -> Ptr CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_sort_terms"
nmod_mpoly_sort_terms :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_combine_like_terms"
nmod_mpoly_combine_like_terms :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_reverse"
nmod_mpoly_reverse :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_randtest_bound"
nmod_mpoly_randtest_bound :: Ptr CNModMPoly -> Ptr CFRandState -> CLong -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_randtest_bounds"
nmod_mpoly_randtest_bounds :: Ptr CNModMPoly -> Ptr CFRandState -> CLong -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_randtest_bits"
nmod_mpoly_randtest_bits :: Ptr CNModMPoly -> Ptr CFRandState -> CLong -> CMpLimb -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_add_ui"
nmod_mpoly_add_ui :: Ptr CNModMPoly -> Ptr CNModMPoly -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_sub_ui"
nmod_mpoly_sub_ui :: Ptr CNModMPoly -> Ptr CNModMPoly -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_add"
nmod_mpoly_add :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_sub"
nmod_mpoly_sub :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_neg"
nmod_mpoly_neg :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_scalar_mul_ui"
nmod_mpoly_scalar_mul_ui :: Ptr CNModMPoly -> Ptr CNModMPoly -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_make_monic"
nmod_mpoly_make_monic :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_derivative"
nmod_mpoly_derivative :: Ptr CNModMPoly -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_evaluate_all_ui"
nmod_mpoly_evaluate_all_ui :: Ptr CNModMPoly -> Ptr CULong -> Ptr CNModMPolyCtx -> IO CULong
foreign import ccall "nmod_mpoly.h nmod_mpoly_evaluate_one_ui"
nmod_mpoly_evaluate_one_ui :: Ptr CNModMPoly -> Ptr CNModMPoly -> CULong -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_compose_nmod_poly"
nmod_mpoly_compose_nmod_poly :: Ptr CNModPoly -> Ptr CNModMPoly -> Ptr (Ptr (Ptr CNModPoly)) -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_compose_nmod_mpoly_geobucket"
nmod_mpoly_compose_nmod_mpoly_geobucket :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr (Ptr (Ptr CNModMPoly)) -> Ptr CNModMPolyCtx -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_compose_nmod_mpoly_horner"
nmod_mpoly_compose_nmod_mpoly_horner :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr (Ptr (Ptr CNModMPoly)) -> Ptr CNModMPolyCtx -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_compose_nmod_mpoly"
nmod_mpoly_compose_nmod_mpoly :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr (Ptr (Ptr CNModMPoly)) -> Ptr CNModMPolyCtx -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_compose_nmod_mpoly_gen"
nmod_mpoly_compose_nmod_mpoly_gen :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CLong -> Ptr CNModMPolyCtx -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_mul"
nmod_mpoly_mul :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_mul_johnson"
nmod_mpoly_mul_johnson :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_mul_heap_threaded"
nmod_mpoly_mul_heap_threaded :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_mul_array"
nmod_mpoly_mul_array :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_mul_array_threaded"
nmod_mpoly_mul_array_threaded :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_mul_dense"
nmod_mpoly_mul_dense :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_pow_fmpz"
nmod_mpoly_pow_fmpz :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CFmpz -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_pow_ui"
nmod_mpoly_pow_ui :: Ptr CNModMPoly -> Ptr CNModMPoly -> CULong -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_divides"
nmod_mpoly_divides :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_div"
nmod_mpoly_div :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_divrem"
nmod_mpoly_divrem :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_divrem_ideal"
nmod_mpoly_divrem_ideal :: Ptr (Ptr (Ptr CNModMPoly)) -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr (Ptr (Ptr CNModMPoly)) -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_divides_dense"
nmod_mpoly_divides_dense :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_divides_monagan_pearce"
nmod_mpoly_divides_monagan_pearce :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_divides_heap_threaded"
nmod_mpoly_divides_heap_threaded :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_term_content"
nmod_mpoly_term_content :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_content_vars"
nmod_mpoly_content_vars :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CLong -> CLong -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_gcd"
nmod_mpoly_gcd :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_gcd_cofactors"
nmod_mpoly_gcd_cofactors :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_gcd_brown"
nmod_mpoly_gcd_brown :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_gcd_hensel"
nmod_mpoly_gcd_hensel :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_gcd_zippel"
nmod_mpoly_gcd_zippel :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_resultant"
nmod_mpoly_resultant :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_discriminant"
nmod_mpoly_discriminant :: Ptr CNModMPoly -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_sqrt"
nmod_mpoly_sqrt :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_is_square"
nmod_mpoly_is_square :: Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_quadratic_root"
nmod_mpoly_quadratic_root :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_univar_init"
nmod_mpoly_univar_init :: Ptr CNModMPolyUnivar -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_univar_clear"
nmod_mpoly_univar_clear :: Ptr CNModMPolyUnivar -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h &nmod_mpoly_univar_clear"
p_nmod_mpoly_univar_clear :: FunPtr (Ptr CNModMPolyUnivar -> Ptr CNModMPolyCtx -> IO ())
foreign import ccall "nmod_mpoly.h nmod_mpoly_univar_swap"
nmod_mpoly_univar_swap :: Ptr CNModMPolyUnivar -> Ptr CNModMPolyUnivar -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_to_univar"
nmod_mpoly_to_univar :: Ptr CNModMPolyUnivar -> Ptr CNModMPoly -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_from_univar"
nmod_mpoly_from_univar :: Ptr CNModMPoly -> Ptr CNModMPolyUnivar -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_univar_degree_fits_si"
nmod_mpoly_univar_degree_fits_si :: Ptr CNModMPolyUnivar -> Ptr CNModMPolyCtx -> IO CInt
foreign import ccall "nmod_mpoly.h nmod_mpoly_univar_length"
nmod_mpoly_univar_length :: Ptr CNModMPolyUnivar -> Ptr CNModMPolyCtx -> IO CLong
foreign import ccall "nmod_mpoly.h nmod_mpoly_univar_get_term_exp_si"
nmod_mpoly_univar_get_term_exp_si :: Ptr CNModMPolyUnivar -> CLong -> Ptr CNModMPolyCtx -> IO CLong
foreign import ccall "nmod_mpoly.h nmod_mpoly_univar_get_term_coeff"
nmod_mpoly_univar_get_term_coeff :: Ptr CNModMPoly -> Ptr CNModMPolyUnivar -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_univar_swap_term_coeff"
nmod_mpoly_univar_swap_term_coeff :: Ptr CNModMPoly -> Ptr CNModMPolyUnivar -> CLong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_pow_rmul"
nmod_mpoly_pow_rmul :: Ptr CNModMPoly -> Ptr CNModMPoly -> CULong -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_div_monagan_pearce"
nmod_mpoly_div_monagan_pearce :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_divrem_monagan_pearce"
nmod_mpoly_divrem_monagan_pearce :: Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr CNModMPolyCtx -> IO ()
foreign import ccall "nmod_mpoly.h nmod_mpoly_divrem_ideal_monagan_pearce"
nmod_mpoly_divrem_ideal_monagan_pearce :: Ptr (Ptr (Ptr CNModMPoly)) -> Ptr CNModMPoly -> Ptr CNModMPoly -> Ptr (Ptr (Ptr CNModMPoly)) -> CLong -> Ptr CNModMPolyCtx -> IO ()