{-# LINE 1 "src/Data/Number/Flint/Fmpz/MPoly/FFI.hsc" #-}
module Data.Number.Flint.Fmpz.MPoly.FFI (
FmpzMPoly (..)
, CFmpzMPoly (..)
, newFmpzMPoly
, withFmpzMPoly
, withNewFmpzMPoly
, FmpzMPolyCtx (..)
, CFmpzMPolyCtx (..)
, newFmpzMPolyCtx
, withFmpzMPolyCtx
, withNewFmpzMPolyCtx
, fmpz_mpoly_ctx_init
, fmpz_mpoly_ctx_nvars
, fmpz_mpoly_ctx_ord
, fmpz_mpoly_ctx_clear
, fmpz_mpoly_init
, fmpz_mpoly_init2
, fmpz_mpoly_init3
, fmpz_mpoly_fit_length
, fmpz_mpoly_fit_bits
, fmpz_mpoly_realloc
, fmpz_mpoly_clear
, fmpz_mpoly_get_str_pretty
, fmpz_mpoly_fprint_pretty
, fmpz_mpoly_print_pretty
, fmpz_mpoly_set_str_pretty
, fmpz_mpoly_gen
, fmpz_mpoly_is_gen
, fmpz_mpoly_set
, fmpz_mpoly_equal
, fmpz_mpoly_swap
, _fmpz_mpoly_fits_small
, fmpz_mpoly_max_bits
, fmpz_mpoly_is_fmpz
, fmpz_mpoly_get_fmpz
, fmpz_mpoly_set_fmpz
, fmpz_mpoly_zero
, fmpz_mpoly_one
, fmpz_mpoly_equal_fmpz
, fmpz_mpoly_is_zero
, fmpz_mpoly_is_one
, fmpz_mpoly_degrees_fit_si
, fmpz_mpoly_degrees_fmpz
, fmpz_mpoly_degree_fmpz
, fmpz_mpoly_total_degree_fits_si
, fmpz_mpoly_total_degree_fmpz
, fmpz_mpoly_used_vars
, fmpz_mpoly_get_coeff_fmpz_monomial
, fmpz_mpoly_set_coeff_fmpz_monomial
, fmpz_mpoly_get_coeff_fmpz_fmpz
, fmpz_mpoly_set_coeff_fmpz_fmpz
, fmpz_mpoly_get_coeff_vars_ui
, fmpz_mpoly_cmp
, fmpz_mpoly_is_fmpz_poly
, fmpz_mpoly_get_fmpz_poly
, fmpz_mpoly_set_fmpz_poly
, fmpz_mpoly_term_coeff_ref
, fmpz_mpoly_is_canonical
, fmpz_mpoly_length
, fmpz_mpoly_resize
, fmpz_mpoly_get_term_coeff_fmpz
, fmpz_mpoly_set_term_coeff_fmpz
, fmpz_mpoly_term_exp_fits_si
, fmpz_mpoly_get_term_exp_fmpz
, fmpz_mpoly_get_term_var_exp_ui
, fmpz_mpoly_set_term_exp_fmpz
, fmpz_mpoly_get_term
, fmpz_mpoly_get_term_monomial
, fmpz_mpoly_push_term_fmpz_fmpz
, fmpz_mpoly_sort_terms
, fmpz_mpoly_combine_like_terms
, fmpz_mpoly_reverse
, fmpz_mpoly_randtest_bound
, fmpz_mpoly_randtest_bounds
, fmpz_mpoly_randtest_bits
, fmpz_mpoly_add_fmpz
, fmpz_mpoly_sub_fmpz
, fmpz_mpoly_add
, fmpz_mpoly_sub
, fmpz_mpoly_neg
, fmpz_mpoly_scalar_mul_fmpz
, fmpz_mpoly_scalar_fmma
, fmpz_mpoly_scalar_divexact_fmpz
, fmpz_mpoly_scalar_divides_fmpz
, fmpz_mpoly_derivative
, fmpz_mpoly_integral
, fmpz_mpoly_evaluate_all_fmpz
, fmpz_mpoly_evaluate_one_fmpz
, fmpz_mpoly_compose_fmpz_poly
, fmpz_mpoly_compose_fmpz_mpoly_geobucket
, fmpz_mpoly_compose_fmpz_mpoly_gen
, fmpz_mpoly_mul
, fmpz_mpoly_mul_johnson
, fmpz_mpoly_mul_array
, fmpz_mpoly_mul_dense
, fmpz_mpoly_pow_fmpz
, fmpz_mpoly_pow_ui
, fmpz_mpoly_divides
, fmpz_mpoly_divrem
, fmpz_mpoly_quasidivrem
, fmpz_mpoly_div
, fmpz_mpoly_quasidiv
, fmpz_mpoly_divrem_ideal
, fmpz_mpoly_quasidivrem_ideal
, fmpz_mpoly_term_content
, fmpz_mpoly_content_vars
, fmpz_mpoly_gcd
, fmpz_mpoly_gcd_cofactors
, fmpz_mpoly_gcd_brown
, fmpz_mpoly_resultant
, fmpz_mpoly_discriminant
, fmpz_mpoly_primitive_part
, fmpz_mpoly_sqrt_heap
, fmpz_mpoly_sqrt
, fmpz_mpoly_is_square
, fmpz_mpoly_univar_init
, fmpz_mpoly_univar_clear
, fmpz_mpoly_univar_swap
, fmpz_mpoly_to_univar
, fmpz_mpoly_from_univar
, fmpz_mpoly_univar_degree_fits_si
, fmpz_mpoly_univar_length
, fmpz_mpoly_univar_get_term_exp_si
, fmpz_mpoly_univar_get_term_coeff
, fmpz_mpoly_inflate
, fmpz_mpoly_deflate
, fmpz_mpoly_deflation
, fmpz_mpoly_pow_fps
, _fmpz_mpoly_divides_array
, fmpz_mpoly_divides_array
, _fmpz_mpoly_divides_monagan_pearce
, fmpz_mpoly_divides_monagan_pearce
, fmpz_mpoly_divides_heap_threaded
, _fmpz_mpoly_div_monagan_pearce
, fmpz_mpoly_div_monagan_pearce
, _fmpz_mpoly_divrem_monagan_pearce
, fmpz_mpoly_divrem_monagan_pearce
, _fmpz_mpoly_divrem_array
, fmpz_mpoly_divrem_array
, fmpz_mpoly_quasidivrem_heap
, _fmpz_mpoly_divrem_ideal_monagan_pearce
, fmpz_mpoly_divrem_ideal_monagan_pearce
, fmpz_mpoly_vec_init
, fmpz_mpoly_vec_clear
, fmpz_mpoly_vec_print
, fmpz_mpoly_vec_swap
, fmpz_mpoly_vec_fit_length
, fmpz_mpoly_vec_set
, fmpz_mpoly_vec_append
, fmpz_mpoly_vec_insert_unique
, fmpz_mpoly_vec_set_length
, fmpz_mpoly_vec_randtest_not_zero
, fmpz_mpoly_vec_set_primitive_unique
, fmpz_mpoly_spoly
, fmpz_mpoly_reduction_primitive_part
, fmpz_mpoly_vec_is_groebner
, fmpz_mpoly_vec_is_autoreduced
, fmpz_mpoly_vec_autoreduction
, fmpz_mpoly_vec_autoreduction_groebner
, fmpz_mpoly_buchberger_naive
, fmpz_mpoly_buchberger_naive_with_limits
, fmpz_mpoly_symmetric_gens
, fmpz_mpoly_symmetric
) 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.Fmpz.Poly
import Data.Number.Flint.Fmpq
import Data.Number.Flint.MPoly
data FmpzMPoly = FmpzMPoly {-# UNPACK #-} !(ForeignPtr CFmpzMPoly)
data CFmpzMPoly = CFmpzMPoly
instance Storable CFmpzMPoly where
{-# INLINE sizeOf #-}
sizeOf :: CFmpzMPoly -> Int
sizeOf CFmpzMPoly
_ = (Int
40)
{-# LINE 231 "src/Data/Number/Flint/Fmpz/MPoly/FFI.hsc" #-}
{-# INLINE alignment #-}
alignment :: CFmpzMPoly -> Int
alignment CFmpzMPoly
_ = Int
8
{-# LINE 233 "src/Data/Number/Flint/Fmpz/MPoly/FFI.hsc" #-}
peek = error "CFmpzMPoly.peek: Not defined"
poke :: Ptr CFmpzMPoly -> CFmpzMPoly -> IO ()
poke = [Char] -> Ptr CFmpzMPoly -> CFmpzMPoly -> IO ()
forall a. HasCallStack => [Char] -> a
error [Char]
"CFmpzMPoly.poke: Not defined"
newFmpzMPoly :: FmpzMPolyCtx -> IO FmpzMPoly
newFmpzMPoly ctx :: FmpzMPolyCtx
ctx@(FmpzMPolyCtx ForeignPtr CFmpzMPolyCtx
pctx) = do
ForeignPtr CFmpzMPoly
p <- IO (ForeignPtr CFmpzMPoly)
forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
ForeignPtr CFmpzMPoly
-> (Ptr CFmpzMPoly -> IO (FmpzMPolyCtx, ()))
-> IO (FmpzMPolyCtx, ())
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFmpzMPoly
p ((Ptr CFmpzMPoly -> IO (FmpzMPolyCtx, ()))
-> IO (FmpzMPolyCtx, ()))
-> (Ptr CFmpzMPoly -> IO (FmpzMPolyCtx, ()))
-> IO (FmpzMPolyCtx, ())
forall a b. (a -> b) -> a -> b
$ \Ptr CFmpzMPoly
p ->
FmpzMPolyCtx
-> (Ptr CFmpzMPolyCtx -> IO ()) -> IO (FmpzMPolyCtx, ())
forall {a}.
FmpzMPolyCtx -> (Ptr CFmpzMPolyCtx -> IO a) -> IO (FmpzMPolyCtx, a)
withFmpzMPolyCtx FmpzMPolyCtx
ctx ((Ptr CFmpzMPolyCtx -> IO ()) -> IO (FmpzMPolyCtx, ()))
-> (Ptr CFmpzMPolyCtx -> IO ()) -> IO (FmpzMPolyCtx, ())
forall a b. (a -> b) -> a -> b
$ \Ptr CFmpzMPolyCtx
ctx -> do
Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
fmpz_mpoly_init Ptr CFmpzMPoly
p Ptr CFmpzMPolyCtx
ctx
FinalizerEnvPtr CFmpzMPoly CFmpzMPolyCtx
-> Ptr CFmpzMPoly -> ForeignPtr CFmpzMPolyCtx -> IO ()
forall env a.
FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO ()
addForeignPtrFinalizerEnv FinalizerEnvPtr CFmpzMPoly CFmpzMPolyCtx
p_fmpz_mpoly_clear Ptr CFmpzMPoly
p ForeignPtr CFmpzMPolyCtx
pctx
FmpzMPoly -> IO FmpzMPoly
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (FmpzMPoly -> IO FmpzMPoly) -> FmpzMPoly -> IO FmpzMPoly
forall a b. (a -> b) -> a -> b
$ ForeignPtr CFmpzMPoly -> FmpzMPoly
FmpzMPoly ForeignPtr CFmpzMPoly
p
{-# INLINE withFmpzMPoly #-}
withFmpzMPoly :: FmpzMPoly -> (Ptr CFmpzMPoly -> IO a) -> IO (FmpzMPoly, a)
withFmpzMPoly (FmpzMPoly ForeignPtr CFmpzMPoly
p) Ptr CFmpzMPoly -> IO a
f = do
ForeignPtr CFmpzMPoly
-> (Ptr CFmpzMPoly -> IO (FmpzMPoly, a)) -> IO (FmpzMPoly, a)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFmpzMPoly
p ((Ptr CFmpzMPoly -> IO (FmpzMPoly, a)) -> IO (FmpzMPoly, a))
-> (Ptr CFmpzMPoly -> IO (FmpzMPoly, a)) -> IO (FmpzMPoly, a)
forall a b. (a -> b) -> a -> b
$ \Ptr CFmpzMPoly
fp -> (ForeignPtr CFmpzMPoly -> FmpzMPoly
FmpzMPoly ForeignPtr CFmpzMPoly
p,) (a -> (FmpzMPoly, a)) -> IO a -> IO (FmpzMPoly, a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Ptr CFmpzMPoly -> IO a
f Ptr CFmpzMPoly
fp
{-# INLINE withNewFmpzMPoly #-}
withNewFmpzMPoly :: FmpzMPolyCtx -> (Ptr CFmpzMPoly -> IO a) -> IO (FmpzMPoly, a)
withNewFmpzMPoly FmpzMPolyCtx
ctx Ptr CFmpzMPoly -> IO a
f = do
FmpzMPoly
x <- FmpzMPolyCtx -> IO FmpzMPoly
newFmpzMPoly FmpzMPolyCtx
ctx
FmpzMPoly -> (Ptr CFmpzMPoly -> IO a) -> IO (FmpzMPoly, a)
forall {a}.
FmpzMPoly -> (Ptr CFmpzMPoly -> IO a) -> IO (FmpzMPoly, a)
withFmpzMPoly FmpzMPoly
x Ptr CFmpzMPoly -> IO a
f
data FmpzMPolyUnivar = FmpzMPolyUnivar {-# UNPACK #-} !(ForeignPtr CFmpzMPolyUnivar)
data CFmpzMPolyUnivar = CFmpzMPolyUnivar
instance Storable CFmpzMPolyUnivar where
{-# INLINE sizeOf #-}
sizeOf :: CFmpzMPolyUnivar -> Int
sizeOf CFmpzMPolyUnivar
_ = (Int
32)
{-# LINE 267 "src/Data/Number/Flint/Fmpz/MPoly/FFI.hsc" #-}
{-# INLINE alignment #-}
alignment :: CFmpzMPolyUnivar -> Int
alignment CFmpzMPolyUnivar
_ = Int
8
{-# LINE 269 "src/Data/Number/Flint/Fmpz/MPoly/FFI.hsc" #-}
peek = error "CFmpzMPolyUnivar.peek: Not defined"
poke :: Ptr CFmpzMPolyUnivar -> CFmpzMPolyUnivar -> IO ()
poke = [Char] -> Ptr CFmpzMPolyUnivar -> CFmpzMPolyUnivar -> IO ()
forall a. HasCallStack => [Char] -> a
error [Char]
"CFmpzMPolyUnivar.poke: Not defined"
newFmpzMPolyUnivar :: FmpzMPolyCtx -> IO FmpzMPolyUnivar
newFmpzMPolyUnivar ctx :: FmpzMPolyCtx
ctx@(FmpzMPolyCtx ForeignPtr CFmpzMPolyCtx
pctx) = do
ForeignPtr CFmpzMPolyUnivar
p <- IO (ForeignPtr CFmpzMPolyUnivar)
forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
ForeignPtr CFmpzMPolyUnivar
-> (Ptr CFmpzMPolyUnivar -> IO (FmpzMPolyCtx, ()))
-> IO (FmpzMPolyCtx, ())
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFmpzMPolyUnivar
p ((Ptr CFmpzMPolyUnivar -> IO (FmpzMPolyCtx, ()))
-> IO (FmpzMPolyCtx, ()))
-> (Ptr CFmpzMPolyUnivar -> IO (FmpzMPolyCtx, ()))
-> IO (FmpzMPolyCtx, ())
forall a b. (a -> b) -> a -> b
$ \Ptr CFmpzMPolyUnivar
p ->
FmpzMPolyCtx
-> (Ptr CFmpzMPolyCtx -> IO ()) -> IO (FmpzMPolyCtx, ())
forall {a}.
FmpzMPolyCtx -> (Ptr CFmpzMPolyCtx -> IO a) -> IO (FmpzMPolyCtx, a)
withFmpzMPolyCtx FmpzMPolyCtx
ctx ((Ptr CFmpzMPolyCtx -> IO ()) -> IO (FmpzMPolyCtx, ()))
-> (Ptr CFmpzMPolyCtx -> IO ()) -> IO (FmpzMPolyCtx, ())
forall a b. (a -> b) -> a -> b
$ \Ptr CFmpzMPolyCtx
ctx -> do
Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPolyCtx -> IO ()
fmpz_mpoly_univar_init Ptr CFmpzMPolyUnivar
p Ptr CFmpzMPolyCtx
ctx
FinalizerEnvPtr CFmpzMPolyUnivar CFmpzMPolyCtx
-> Ptr CFmpzMPolyUnivar -> ForeignPtr CFmpzMPolyCtx -> IO ()
forall env a.
FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO ()
addForeignPtrFinalizerEnv FinalizerEnvPtr CFmpzMPolyUnivar CFmpzMPolyCtx
p_fmpz_mpoly_univar_clear Ptr CFmpzMPolyUnivar
p ForeignPtr CFmpzMPolyCtx
pctx
FmpzMPolyUnivar -> IO FmpzMPolyUnivar
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (FmpzMPolyUnivar -> IO FmpzMPolyUnivar)
-> FmpzMPolyUnivar -> IO FmpzMPolyUnivar
forall a b. (a -> b) -> a -> b
$ ForeignPtr CFmpzMPolyUnivar -> FmpzMPolyUnivar
FmpzMPolyUnivar ForeignPtr CFmpzMPolyUnivar
p
{-# INLINE withFmpzMPolyUnivar #-}
withFmpzMPolyUnivar :: FmpzMPolyUnivar
-> (Ptr CFmpzMPolyUnivar -> IO a) -> IO (FmpzMPolyUnivar, a)
withFmpzMPolyUnivar (FmpzMPolyUnivar ForeignPtr CFmpzMPolyUnivar
p) Ptr CFmpzMPolyUnivar -> IO a
f = do
ForeignPtr CFmpzMPolyUnivar
-> (Ptr CFmpzMPolyUnivar -> IO (FmpzMPolyUnivar, a))
-> IO (FmpzMPolyUnivar, a)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFmpzMPolyUnivar
p ((Ptr CFmpzMPolyUnivar -> IO (FmpzMPolyUnivar, a))
-> IO (FmpzMPolyUnivar, a))
-> (Ptr CFmpzMPolyUnivar -> IO (FmpzMPolyUnivar, a))
-> IO (FmpzMPolyUnivar, a)
forall a b. (a -> b) -> a -> b
$ \Ptr CFmpzMPolyUnivar
fp -> (ForeignPtr CFmpzMPolyUnivar -> FmpzMPolyUnivar
FmpzMPolyUnivar ForeignPtr CFmpzMPolyUnivar
p,) (a -> (FmpzMPolyUnivar, a)) -> IO a -> IO (FmpzMPolyUnivar, a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Ptr CFmpzMPolyUnivar -> IO a
f Ptr CFmpzMPolyUnivar
fp
data FmpzMPolyCtx = FmpzMPolyCtx {-# UNPACK #-} !(ForeignPtr CFmpzMPolyCtx)
data CFmpzMPolyCtx
instance Storable CFmpzMPolyCtx where
{-# INLINE sizeOf #-}
sizeOf :: CFmpzMPolyCtx -> Int
sizeOf CFmpzMPolyCtx
_ = (Int
608)
{-# LINE 293 "src/Data/Number/Flint/Fmpz/MPoly/FFI.hsc" #-}
{-# INLINE alignment #-}
alignment :: CFmpzMPolyCtx -> Int
alignment CFmpzMPolyCtx
_ = Int
8
{-# LINE 295 "src/Data/Number/Flint/Fmpz/MPoly/FFI.hsc" #-}
peek = error "CFmpzMPolyCtx.peek: Not defined"
poke :: Ptr CFmpzMPolyCtx -> CFmpzMPolyCtx -> IO ()
poke = [Char] -> Ptr CFmpzMPolyCtx -> CFmpzMPolyCtx -> IO ()
forall a. HasCallStack => [Char] -> a
error [Char]
"CFmpzMPolyCtx.poke: Not defined"
newFmpzMPolyCtx :: CLong -> COrdering -> IO FmpzMPolyCtx
newFmpzMPolyCtx CLong
nvars COrdering
ord = do
ForeignPtr CFmpzMPolyCtx
p <- IO (ForeignPtr CFmpzMPolyCtx)
forall a. Storable a => IO (ForeignPtr a)
mallocForeignPtr
ForeignPtr CFmpzMPolyCtx -> (Ptr CFmpzMPolyCtx -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFmpzMPolyCtx
p ((Ptr CFmpzMPolyCtx -> IO ()) -> IO ())
-> (Ptr CFmpzMPolyCtx -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr CFmpzMPolyCtx
p ->
Ptr CFmpzMPolyCtx -> CLong -> COrdering -> IO ()
fmpz_mpoly_ctx_init Ptr CFmpzMPolyCtx
p CLong
nvars COrdering
ord
FinalizerPtr CFmpzMPolyCtx -> ForeignPtr CFmpzMPolyCtx -> IO ()
forall a. FinalizerPtr a -> ForeignPtr a -> IO ()
addForeignPtrFinalizer FinalizerPtr CFmpzMPolyCtx
p_fmpz_mpoly_ctx_clear ForeignPtr CFmpzMPolyCtx
p
FmpzMPolyCtx -> IO FmpzMPolyCtx
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (FmpzMPolyCtx -> IO FmpzMPolyCtx)
-> FmpzMPolyCtx -> IO FmpzMPolyCtx
forall a b. (a -> b) -> a -> b
$ ForeignPtr CFmpzMPolyCtx -> FmpzMPolyCtx
FmpzMPolyCtx ForeignPtr CFmpzMPolyCtx
p
{-# INLINE withFmpzMPolyCtx #-}
withFmpzMPolyCtx :: FmpzMPolyCtx -> (Ptr CFmpzMPolyCtx -> IO a) -> IO (FmpzMPolyCtx, a)
withFmpzMPolyCtx (FmpzMPolyCtx ForeignPtr CFmpzMPolyCtx
p) Ptr CFmpzMPolyCtx -> IO a
f = do
ForeignPtr CFmpzMPolyCtx
-> (Ptr CFmpzMPolyCtx -> IO (FmpzMPolyCtx, a))
-> IO (FmpzMPolyCtx, a)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr CFmpzMPolyCtx
p ((Ptr CFmpzMPolyCtx -> IO (FmpzMPolyCtx, a))
-> IO (FmpzMPolyCtx, a))
-> (Ptr CFmpzMPolyCtx -> IO (FmpzMPolyCtx, a))
-> IO (FmpzMPolyCtx, a)
forall a b. (a -> b) -> a -> b
$ \Ptr CFmpzMPolyCtx
fp -> Ptr CFmpzMPolyCtx -> IO a
f Ptr CFmpzMPolyCtx
fp IO a -> (a -> IO (FmpzMPolyCtx, a)) -> IO (FmpzMPolyCtx, a)
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (FmpzMPolyCtx, a) -> IO (FmpzMPolyCtx, a)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ((FmpzMPolyCtx, a) -> IO (FmpzMPolyCtx, a))
-> (a -> (FmpzMPolyCtx, a)) -> a -> IO (FmpzMPolyCtx, a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ForeignPtr CFmpzMPolyCtx -> FmpzMPolyCtx
FmpzMPolyCtx ForeignPtr CFmpzMPolyCtx
p,)
withNewFmpzMPolyCtx :: CLong
-> COrdering -> (Ptr CFmpzMPolyCtx -> IO a) -> IO (FmpzMPolyCtx, a)
withNewFmpzMPolyCtx CLong
nvars COrdering
ord Ptr CFmpzMPolyCtx -> IO a
f = do
FmpzMPolyCtx
mctx <- CLong -> COrdering -> IO FmpzMPolyCtx
newFmpzMPolyCtx CLong
nvars COrdering
ord
FmpzMPolyCtx -> (Ptr CFmpzMPolyCtx -> IO a) -> IO (FmpzMPolyCtx, a)
forall {a}.
FmpzMPolyCtx -> (Ptr CFmpzMPolyCtx -> IO a) -> IO (FmpzMPolyCtx, a)
withFmpzMPolyCtx FmpzMPolyCtx
mctx Ptr CFmpzMPolyCtx -> IO a
f
data FmpzMPolyVec = FmpzMPolyVec {-# UNPACK #-} !(ForeignPtr CFmpzMPolyVec)
data CFmpzMPolyVec = CFmpzMPolyVec (Ptr CFmpzMPoly) CLong CLong
data CPair = CPair CLong CLong
data CPairs = CPairs (Ptr CPair) CLong CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_ctx_init"
fmpz_mpoly_ctx_init :: Ptr CFmpzMPolyCtx -> CLong -> COrdering -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_ctx_nvars"
fmpz_mpoly_ctx_nvars :: Ptr CFmpzMPolyCtx -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_ctx_ord"
fmpz_mpoly_ctx_ord :: Ptr CFmpzMPolyCtx -> IO COrdering
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_ctx_clear"
fmpz_mpoly_ctx_clear :: Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h &fmpz_mpoly_ctx_clear"
p_fmpz_mpoly_ctx_clear :: FunPtr (Ptr CFmpzMPolyCtx -> IO ())
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_init"
fmpz_mpoly_init :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_init2"
fmpz_mpoly_init2 :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_init3"
fmpz_mpoly_init3 :: Ptr CFmpzMPoly -> CLong -> CFBitCnt -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_fit_length"
fmpz_mpoly_fit_length :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_fit_bits"
fmpz_mpoly_fit_bits :: Ptr CFmpzMPoly -> CFBitCnt -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_realloc"
fmpz_mpoly_realloc :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_clear"
fmpz_mpoly_clear :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h &fmpz_mpoly_clear"
p_fmpz_mpoly_clear :: FunPtr (Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ())
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_str_pretty"
fmpz_mpoly_get_str_pretty :: Ptr CFmpzMPoly -> Ptr (Ptr CChar) -> Ptr CFmpzMPolyCtx -> IO CString
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_fprint_pretty"
fmpz_mpoly_fprint_pretty :: Ptr CFile -> Ptr CFmpzMPoly -> Ptr (Ptr CChar) -> Ptr CFmpzMPolyCtx -> IO CInt
fmpz_mpoly_print_pretty :: Ptr CFmpzMPoly ->
Ptr (Ptr CChar) ->
Ptr CFmpzMPolyCtx -> IO CInt
fmpz_mpoly_print_pretty :: Ptr CFmpzMPoly -> Ptr (Ptr CChar) -> Ptr CFmpzMPolyCtx -> IO CInt
fmpz_mpoly_print_pretty Ptr CFmpzMPoly
a Ptr (Ptr CChar)
x Ptr CFmpzMPolyCtx
ctx =
(Ptr CFmpzMPoly -> IO (Ptr CChar)) -> Ptr CFmpzMPoly -> IO CInt
forall a. (Ptr a -> IO (Ptr CChar)) -> Ptr a -> IO CInt
printCStr (\Ptr CFmpzMPoly
a -> Ptr CFmpzMPoly
-> Ptr (Ptr CChar) -> Ptr CFmpzMPolyCtx -> IO (Ptr CChar)
fmpz_mpoly_get_str_pretty Ptr CFmpzMPoly
a Ptr (Ptr CChar)
x Ptr CFmpzMPolyCtx
ctx) Ptr CFmpzMPoly
a
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_set_str_pretty"
fmpz_mpoly_set_str_pretty :: Ptr CFmpzMPoly -> CString -> Ptr (Ptr CChar) -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_gen"
fmpz_mpoly_gen :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_is_gen"
fmpz_mpoly_is_gen :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_set"
fmpz_mpoly_set :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_equal"
fmpz_mpoly_equal :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_swap"
fmpz_mpoly_swap :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h _fmpz_mpoly_fits_small"
_fmpz_mpoly_fits_small :: Ptr CFmpz -> CLong -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_max_bits"
fmpz_mpoly_max_bits :: Ptr CFmpzMPoly -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_is_fmpz"
fmpz_mpoly_is_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_fmpz"
fmpz_mpoly_get_fmpz :: Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_set_fmpz"
fmpz_mpoly_set_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_zero"
fmpz_mpoly_zero :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_one"
fmpz_mpoly_one :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_equal_fmpz"
fmpz_mpoly_equal_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_is_zero"
fmpz_mpoly_is_zero :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_is_one"
fmpz_mpoly_is_one :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_degrees_fit_si"
fmpz_mpoly_degrees_fit_si :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_degrees_fmpz"
fmpz_mpoly_degrees_fmpz :: Ptr (Ptr CFmpz) -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_degree_fmpz"
fmpz_mpoly_degree_fmpz :: Ptr CFmpz -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_total_degree_fits_si"
fmpz_mpoly_total_degree_fits_si :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_total_degree_fmpz"
fmpz_mpoly_total_degree_fmpz :: Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_used_vars"
fmpz_mpoly_used_vars :: Ptr CInt -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_coeff_fmpz_monomial"
fmpz_mpoly_get_coeff_fmpz_monomial :: Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_set_coeff_fmpz_monomial"
fmpz_mpoly_set_coeff_fmpz_monomial :: Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_coeff_fmpz_fmpz"
fmpz_mpoly_get_coeff_fmpz_fmpz :: Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr (Ptr CFmpz) -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_set_coeff_fmpz_fmpz"
fmpz_mpoly_set_coeff_fmpz_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr (Ptr CFmpz) -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_coeff_vars_ui"
fmpz_mpoly_get_coeff_vars_ui :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CLong -> Ptr CULong -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_cmp"
fmpz_mpoly_cmp :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_is_fmpz_poly"
fmpz_mpoly_is_fmpz_poly :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_fmpz_poly"
fmpz_mpoly_get_fmpz_poly :: Ptr CFmpzPoly -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_set_fmpz_poly"
fmpz_mpoly_set_fmpz_poly :: Ptr CFmpzMPoly -> Ptr CFmpzPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_term_coeff_ref"
fmpz_mpoly_term_coeff_ref :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO (Ptr CFmpz)
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_is_canonical"
fmpz_mpoly_is_canonical :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_length"
fmpz_mpoly_length :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_resize"
fmpz_mpoly_resize :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_term_coeff_fmpz"
fmpz_mpoly_get_term_coeff_fmpz :: Ptr CFmpz -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_set_term_coeff_fmpz"
fmpz_mpoly_set_term_coeff_fmpz :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_term_exp_fits_si"
fmpz_mpoly_term_exp_fits_si :: Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_term_exp_fmpz"
fmpz_mpoly_get_term_exp_fmpz :: Ptr (Ptr CFmpz) -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_term_var_exp_ui"
fmpz_mpoly_get_term_var_exp_ui :: Ptr CFmpzMPoly -> CLong -> CLong -> Ptr CFmpzMPolyCtx -> IO CULong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_set_term_exp_fmpz"
fmpz_mpoly_set_term_exp_fmpz :: Ptr CFmpzMPoly -> CLong -> Ptr (Ptr CFmpz) -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_term"
fmpz_mpoly_get_term :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_get_term_monomial"
fmpz_mpoly_get_term_monomial :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_push_term_fmpz_fmpz"
fmpz_mpoly_push_term_fmpz_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr (Ptr CFmpz) -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_sort_terms"
fmpz_mpoly_sort_terms :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_combine_like_terms"
fmpz_mpoly_combine_like_terms :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_reverse"
fmpz_mpoly_reverse :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_randtest_bound"
fmpz_mpoly_randtest_bound :: Ptr CFmpzMPoly -> Ptr CFRandState -> CLong -> CMpLimb -> CULong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_randtest_bounds"
fmpz_mpoly_randtest_bounds :: Ptr CFmpzMPoly -> Ptr CFRandState -> CLong -> CMpLimb -> Ptr CULong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_randtest_bits"
fmpz_mpoly_randtest_bits :: Ptr CFmpzMPoly -> Ptr CFRandState -> CLong -> CMpLimb -> CMpLimb -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_add_fmpz"
fmpz_mpoly_add_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_sub_fmpz"
fmpz_mpoly_sub_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_add"
fmpz_mpoly_add :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_sub"
fmpz_mpoly_sub :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_neg"
fmpz_mpoly_neg :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_scalar_mul_fmpz"
fmpz_mpoly_scalar_mul_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_scalar_fmma"
fmpz_mpoly_scalar_fmma :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_scalar_divexact_fmpz"
fmpz_mpoly_scalar_divexact_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_scalar_divides_fmpz"
fmpz_mpoly_scalar_divides_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_derivative"
fmpz_mpoly_derivative :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_integral"
fmpz_mpoly_integral :: Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_evaluate_all_fmpz"
fmpz_mpoly_evaluate_all_fmpz :: Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr (Ptr CFmpz) -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_evaluate_one_fmpz"
fmpz_mpoly_evaluate_one_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_compose_fmpz_poly"
fmpz_mpoly_compose_fmpz_poly :: Ptr CFmpzPoly -> Ptr CFmpzMPoly -> Ptr (Ptr CFmpzPoly) -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_compose_fmpz_mpoly_geobucket"
fmpz_mpoly_compose_fmpz_mpoly_geobucket :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr (Ptr CFmpzMPoly) -> Ptr CFmpzMPolyCtx -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_compose_fmpz_mpoly_gen"
fmpz_mpoly_compose_fmpz_mpoly_gen :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CLong -> Ptr CFmpzMPolyCtx -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_mul"
fmpz_mpoly_mul :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_mul_johnson"
fmpz_mpoly_mul_johnson :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_mul_array"
fmpz_mpoly_mul_array :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_mul_dense"
fmpz_mpoly_mul_dense :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_pow_fmpz"
fmpz_mpoly_pow_fmpz :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_pow_ui"
fmpz_mpoly_pow_ui :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> CULong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divides"
fmpz_mpoly_divides :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divrem"
fmpz_mpoly_divrem :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_quasidivrem"
fmpz_mpoly_quasidivrem :: Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_div"
fmpz_mpoly_div :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_quasidiv"
fmpz_mpoly_quasidiv :: Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divrem_ideal"
fmpz_mpoly_divrem_ideal :: Ptr (Ptr CFmpzMPoly) -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr (Ptr CFmpzMPoly) -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_quasidivrem_ideal"
fmpz_mpoly_quasidivrem_ideal :: Ptr CFmpz -> Ptr (Ptr CFmpzMPoly) -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr (Ptr CFmpzMPoly) -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_term_content"
fmpz_mpoly_term_content :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_content_vars"
fmpz_mpoly_content_vars :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CLong -> CLong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_gcd"
fmpz_mpoly_gcd :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_gcd_cofactors"
fmpz_mpoly_gcd_cofactors :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_gcd_brown"
fmpz_mpoly_gcd_brown :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_resultant"
fmpz_mpoly_resultant :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_discriminant"
fmpz_mpoly_discriminant :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_primitive_part"
fmpz_mpoly_primitive_part :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_sqrt_heap"
fmpz_mpoly_sqrt_heap :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> CInt -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_sqrt"
fmpz_mpoly_sqrt :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_is_square"
fmpz_mpoly_is_square :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_univar_init"
fmpz_mpoly_univar_init :: Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_univar_clear"
fmpz_mpoly_univar_clear :: Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h &fmpz_mpoly_univar_clear"
p_fmpz_mpoly_univar_clear :: FunPtr (Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPolyCtx -> IO ())
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_univar_swap"
fmpz_mpoly_univar_swap :: Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_to_univar"
fmpz_mpoly_to_univar :: Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPoly -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_from_univar"
fmpz_mpoly_from_univar :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyUnivar -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_univar_degree_fits_si"
fmpz_mpoly_univar_degree_fits_si :: Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_univar_length"
fmpz_mpoly_univar_length :: Ptr CFmpzMPolyUnivar -> Ptr CFmpzMPolyCtx -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_univar_get_term_exp_si"
fmpz_mpoly_univar_get_term_exp_si :: Ptr CFmpzMPolyUnivar -> CLong -> Ptr CFmpzMPolyCtx -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_univar_get_term_coeff"
fmpz_mpoly_univar_get_term_coeff :: Ptr CFmpzMPoly -> Ptr CFmpzMPolyUnivar -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_inflate"
fmpz_mpoly_inflate :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_deflate"
fmpz_mpoly_deflate :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpz -> Ptr CFmpz -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_deflation"
fmpz_mpoly_deflation :: Ptr CFmpz -> Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_pow_fps"
fmpz_mpoly_pow_fps :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> CULong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h _fmpz_mpoly_divides_array"
_fmpz_mpoly_divides_array :: Ptr (Ptr CFmpz) -> Ptr (Ptr CULong) -> Ptr CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> Ptr CLong -> CLong -> CLong -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divides_array"
fmpz_mpoly_divides_array :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h _fmpz_mpoly_divides_monagan_pearce"
_fmpz_mpoly_divides_monagan_pearce :: Ptr (Ptr CFmpz) -> Ptr (Ptr CULong) -> Ptr CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> CLong -> CLong -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divides_monagan_pearce"
fmpz_mpoly_divides_monagan_pearce :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divides_heap_threaded"
fmpz_mpoly_divides_heap_threaded :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> CLong -> IO CInt
foreign import ccall "fmpz_mpoly.h _fmpz_mpoly_div_monagan_pearce"
_fmpz_mpoly_div_monagan_pearce :: Ptr (Ptr CFmpz) -> Ptr (Ptr CULong) -> Ptr CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> CLong -> CLong -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_div_monagan_pearce"
fmpz_mpoly_div_monagan_pearce :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h _fmpz_mpoly_divrem_monagan_pearce"
_fmpz_mpoly_divrem_monagan_pearce :: Ptr CLong -> Ptr (Ptr CFmpz) -> Ptr (Ptr CULong) -> Ptr CLong -> Ptr (Ptr CFmpz) -> Ptr (Ptr CULong) -> Ptr CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> CLong -> CLong -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divrem_monagan_pearce"
fmpz_mpoly_divrem_monagan_pearce :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h _fmpz_mpoly_divrem_array"
_fmpz_mpoly_divrem_array :: Ptr CLong -> Ptr (Ptr CFmpz) -> Ptr (Ptr CULong) -> Ptr CLong -> Ptr (Ptr CFmpz) -> Ptr (Ptr CULong) -> Ptr CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> Ptr CLong -> CLong -> CLong -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divrem_array"
fmpz_mpoly_divrem_array :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_quasidivrem_heap"
fmpz_mpoly_quasidivrem_heap :: Ptr CFmpz -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h _fmpz_mpoly_divrem_ideal_monagan_pearce"
_fmpz_mpoly_divrem_ideal_monagan_pearce :: Ptr (Ptr CFmpzMPoly) -> Ptr (Ptr CFmpz) -> Ptr (Ptr CULong) -> Ptr CLong -> Ptr CFmpz -> Ptr CULong -> CLong -> Ptr (Ptr CFmpzMPoly) -> Ptr (Ptr CULong) -> CLong -> CLong -> CLong -> Ptr CFmpzMPolyCtx -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_divrem_ideal_monagan_pearce"
fmpz_mpoly_divrem_ideal_monagan_pearce :: Ptr (Ptr CFmpzMPoly) -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr (Ptr CFmpzMPoly) -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_init"
fmpz_mpoly_vec_init :: Ptr CFmpzMPolyVec -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_clear"
fmpz_mpoly_vec_clear :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_print"
fmpz_mpoly_vec_print :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_swap"
fmpz_mpoly_vec_swap :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_fit_length"
fmpz_mpoly_vec_fit_length :: Ptr CFmpzMPolyVec -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_set"
fmpz_mpoly_vec_set :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_append"
fmpz_mpoly_vec_append :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_insert_unique"
fmpz_mpoly_vec_insert_unique :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO CLong
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_set_length"
fmpz_mpoly_vec_set_length :: Ptr CFmpzMPolyVec -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_randtest_not_zero"
fmpz_mpoly_vec_randtest_not_zero :: Ptr CFmpzMPolyVec -> Ptr CFRandState -> CLong -> CLong -> CLong -> CULong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_set_primitive_unique"
fmpz_mpoly_vec_set_primitive_unique :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_spoly"
fmpz_mpoly_spoly :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_reduction_primitive_part"
fmpz_mpoly_reduction_primitive_part :: Ptr CFmpzMPoly -> Ptr CFmpzMPoly -> Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_is_groebner"
fmpz_mpoly_vec_is_groebner :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_is_autoreduced"
fmpz_mpoly_vec_is_autoreduced :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_autoreduction"
fmpz_mpoly_vec_autoreduction :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_vec_autoreduction_groebner"
fmpz_mpoly_vec_autoreduction_groebner :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_buchberger_naive"
fmpz_mpoly_buchberger_naive :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_buchberger_naive_with_limits"
fmpz_mpoly_buchberger_naive_with_limits :: Ptr CFmpzMPolyVec -> Ptr CFmpzMPolyVec -> CLong -> CLong -> CLong -> Ptr CFmpzMPolyCtx -> IO CInt
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_symmetric_gens"
fmpz_mpoly_symmetric_gens :: Ptr CFmpzMPoly -> CULong -> Ptr CLong -> CLong -> Ptr CFmpzMPolyCtx -> IO ()
foreign import ccall "fmpz_mpoly.h fmpz_mpoly_symmetric"
fmpz_mpoly_symmetric :: Ptr CFmpzMPoly -> CULong -> Ptr CFmpzMPolyCtx -> IO ()