lol-0.0.1.0: A library for lattice cryptography.

Safe HaskellNone
LanguageHaskell2010

Crypto.Lol.Cyclotomic.Tensor.CTensor

Description

The wrapper for a C implementation of the Tensor interface.

Synopsis

Documentation

data CT m r Source

A wrapper type to seamlessly convert between internal representations This type is an instance of Tensor.

Instances

Tensor CT Source 
Fact m => Functor (CT m) Source 
Fact m => Applicative (CT m) Source 
Fact m => Foldable (CT m) Source 
Fact m => Traversable (CT m) Source 
Eq r => Eq (CT m r) Source 
Show r => Show (CT m r) Source 
(Storable r, Random (CT' m r)) => Random (CT m r) Source 
(Storable r, Arbitrary (CT' m r)) => Arbitrary (CT m r) Source 
NFData r => NFData (CT m r) Source 
(Fact m, Ring r, Storable r, CRNS r) => C (CT m r) Source 
(ZeroTestable r, Storable r, Fact m) => C (CT m r) Source 
(Additive r, Storable r, CRNS r, Fact m) => C (CT m r) Source 
type TElt CT r = (IntegralDomain r, ZeroTestable r, Eq r, Random r, NFData r, Storable r, CRNS r) Source 

class CRNS r Source

Class to dispatch tuples to the C backend. In a different life, the library used product-ring representation at the Cyclotomic level, so FastCyc called Tensor-level functions on each component of the product ring. This class emulates that behavior because making C handle arbitrary product rings seems difficult.

Minimal complete definition

zipWrapper, crtWrapper, lgWrapper, divGWrapper, gaussWrapper

Instances

class Dispatch r Source

Class to safely match Haskell types with the appropriate C function.

Minimal complete definition

dcrt, dcrtinv, dl, dlinv, dmulgpow, dmulgdec, dginvpow, dginvdec, dadd, dmul, dgcrt, dginvcrt, dgaussdec