lol-0.3.0.0: A library for lattice cryptography.

Safe HaskellNone
LanguageHaskell2010

Crypto.Lol.Types.ZqBasic

Description

An implementation of the quotient ring Zq = Z/qZ.

Synopsis

Documentation

data ZqBasic q z Source

The ring Z_q of integers modulo q, using underlying integer type z.

Instances

(Reflects k q z, ToInteger z, Ring z) => Correct * TrivGad (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Ring z) => Decompose * TrivGad (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Additive z) => Gadget * TrivGad (ZqBasic k q z) Source 
(Reflects k1 q z, ToInteger z, Ring z, Reflects k b z) => Correct * (BaseBGad k b) (ZqBasic k q z) Source 
(Reflects k1 q z, ToInteger z, Ring z, ZeroTestable z, Reflects k b z) => Decompose * (BaseBGad k b) (ZqBasic k q z) Source 
(Reflects k1 q z, ToInteger z, RealIntegral z, Reflects k b z) => Gadget * (BaseBGad k b) (ZqBasic k q z) Source 
Unbox z => Vector Vector (ZqBasic k q z) Source 
Unbox z => MVector MVector (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Additive (ZqBasic k q z)) => Reduce Integer (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z) => Reduce z (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, PID z, Enumerable (ZqBasic k q z)) => CRTrans Maybe (ZqBasic k q z) Source 
(Fact m, Reflects k q Int64) => Protoable (CT m (ZqBasic k q Int64)) Source 
(Fact m, Reflects k q Int64) => Protoable (RT m (ZqBasic k q Int64)) Source 
Eq z => Eq (ZqBasic k q z) Source 
Ord z => Ord (ZqBasic k q z) Source 
Show z => Show (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Random z) => Random (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Random z) => Arbitrary (ZqBasic k q z) Source 
Storable z => Storable (ZqBasic k q z) Source 
NFData z => NFData (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, PID z, Show z) => C (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Field (ZqBasic k q z)) => C (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Ring z) => C (ZqBasic k q z) Source 
C z => C (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Additive z) => C (ZqBasic k q z) Source 
Elt z => Elt (ZqBasic k q z) Source 
Unbox z => Unbox (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z) => Lift' (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z) => Mod (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Enum z) => Enumerable (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Ring (ZqBasic k q z)) => CRTEmbed (ZqBasic k q z) Source

Embeds into complex numbers

(PPow pp, (~) * zq (ZqBasic PrimePower pp z), PrimeField (ZpOf zq), Ring zq, Ring (ZpOf zq)) => ZPP (ZqBasic PrimePower pp z) Source 
(Reflects k p z, Reflects k1 q z, ToInteger z, Field (ZqBasic k1 q z), Field (ZqBasic k p z)) => Encode (ZqBasic k p z) (ZqBasic k q z) Source 
(Reflects k q z, ToInteger z, Reflects k1 q' z, Ring z) => Rescale (ZqBasic k q z) (ZqBasic k q' z) Source 
(ToInteger i, RealField r, Reflects k q i, Reflects k q r) => Subgroup (ZqBasic k q i) (RRq k q r) Source 
data MVector s (ZqBasic k q z) = MV_ZqBasic (MVector s z) Source 
type CharOf k (ZqBasic k p z) = p Source 
type ProtoType (CT m (ZqBasic k q Int64)) = Rq Source 
type ProtoType (RT m (ZqBasic k q Int64)) = Rq Source 
data Vector (ZqBasic k q z) = V_ZqBasic (Vector z) Source 
type LiftOf (ZqBasic k q z) = z Source 
type ModRep (ZqBasic k q z) = z Source 
type CRTExt (ZqBasic k q z) = Complex Double Source 
type ZpOf (ZqBasic PrimePower pp z) = ZqBasic PrimeBin (PrimePP pp) z Source 
type DecompOf (ZqBasic k q z) = z Source 
type DecompOf (ZqBasic k q z) = z Source