Flint2-0.1.0.5: Haskell bindings for the flint library for number theory
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Number.Flint.Fmpz.Mod.Vec

Synopsis

Vectors over integers mod n

Conversions

_fmpz_mod_vec_set_fmpz_vec :: Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_set_fmpz_vec A B len ctx

Set the \(fmpz_mod_vec\) \((A, len)\) to the \(fmpz_vec\) \((B, len)\) after reduction of each entry modulo the modulus..

Arithmetic

_fmpz_mod_vec_neg :: Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_neg A B len ctx

Set \((A, len)\) to \(-(B, len)\).

_fmpz_mod_vec_add :: Ptr CFmpz -> Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_add a b c n ctx

Set (A, len) to :math:(B, len) + (C, len)`.

_fmpz_mod_vec_sub :: Ptr CFmpz -> Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_sub a b c n ctx

Set (A, len) to :math:(B, len) - (C, len)`.

Scalar Multiplication

_fmpz_mod_vec_scalar_mul_fmpz_mod :: Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpz -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_scalar_mul_fmpz_mod A B len c ctx

Set \((A, len)\) to \((B, len)*c\).

_fmpz_mod_vec_scalar_addmul_fmpz_mod :: Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpz -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_scalar_addmul_fmpz_mod A B len c ctx

Set \((A, len)\) to \((A, len) + (B, len)*c\).

_fmpz_mod_vec_scalar_div_fmpz_mod :: Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpz -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_scalar_div_fmpz_mod A B len c ctx

Set \((A, len)\) to \((B, len)/c\) assuming \(c\) is nonzero.

Dot Product

_fmpz_mod_vec_dot :: Ptr CFmpz -> Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_dot d A B len ctx

Set \(d\) to the dot product of \((A, len)\) with \((B, len)\).

_fmpz_mod_vec_dot_rev :: Ptr CFmpz -> Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_dot_rev d A B len ctx

Set \(d\) to the dot product of \((A, len)\) with the reverse of the vector \((B, len)\).

Multiplication

_fmpz_mod_vec_mul :: Ptr CFmpz -> Ptr CFmpz -> Ptr CFmpz -> CLong -> Ptr CFmpzModCtx -> IO () Source #

_fmpz_mod_vec_mul A B C len ctx

Set \((A, len)\) the pointwise multiplication of \((B, len)\) and \((C, len)\).