lol-0.6.0.0: A library for lattice cryptography.

Copyright(c) Eric Crockett 2011-2017
Chris Peikert 2011-2017
LicenseGPL-2
Maintainerecrockett0@email.com
Stabilityexperimental
PortabilityPOSIX \( \def\Z{\mathbb{Z}} \) \( \def\R{\mathbb{R}} \)
Safe HaskellNone
LanguageHaskell2010

Crypto.Lol.Types.Unsafe.RRq

Description

An implementation of the additive quotient group \(\R/(q\Z)\). This module is "unsafe" because it exports the RRq constructor. This module should only be used to make tensor-specific instances for RRq. The safe way to use this type is to import Crypto.Lol.Types.

Synopsis

Documentation

newtype RRq q r Source #

The ring \(\R/(q\Z)\) of reals modulo q, using underlying floating type r.

Constructors

RRq' r 

Instances

(Reflects k q r, RealField r, Additive (RRq k q r)) => Reduce r (RRq k q r) Source # 

Methods

reduce :: r -> RRq k q r Source #

(Protoable (IZipVector m (RRq k q Double)), (~) * (ProtoType (IZipVector m (RRq k q Double))) KqProduct, Protoable (IZipVector m b), (~) * (ProtoType (IZipVector m b)) KqProduct) => Protoable (IZipVector m (RRq k q Double, b)) Source # 

Associated Types

type ProtoType (IZipVector m (RRq k q Double, b)) :: * Source #

Methods

toProto :: IZipVector m (RRq k q Double, b) -> ProtoType (IZipVector m (RRq k q Double, b)) Source #

fromProto :: MonadError String m => ProtoType (IZipVector m (RRq k q Double, b)) -> m (IZipVector m (RRq k q Double, b)) Source #

(Fact m, Reflects k q Double) => Protoable (IZipVector m (RRq k q Double)) Source # 

Associated Types

type ProtoType (IZipVector m (RRq k q Double)) :: * Source #

Eq r => Eq (RRq k q r) Source # 

Methods

(==) :: RRq k q r -> RRq k q r -> Bool #

(/=) :: RRq k q r -> RRq k q r -> Bool #

Ord r => Ord (RRq k q r) Source # 

Methods

compare :: RRq k q r -> RRq k q r -> Ordering #

(<) :: RRq k q r -> RRq k q r -> Bool #

(<=) :: RRq k q r -> RRq k q r -> Bool #

(>) :: RRq k q r -> RRq k q r -> Bool #

(>=) :: RRq k q r -> RRq k q r -> Bool #

max :: RRq k q r -> RRq k q r -> RRq k q r #

min :: RRq k q r -> RRq k q r -> RRq k q r #

Show r => Show (RRq k q r) Source # 

Methods

showsPrec :: Int -> RRq k q r -> ShowS #

show :: RRq k q r -> String #

showList :: [RRq k q r] -> ShowS #

NFData r => NFData (RRq k q r) Source # 

Methods

rnf :: RRq k q r -> () #

C r => C (RRq k q r) Source # 

Methods

isZero :: RRq k q r -> Bool #

(Reflects k q r, RealField r, Ord r) => C (RRq k q r) Source # 

Methods

zero :: RRq k q r #

(+) :: RRq k q r -> RRq k q r -> RRq k q r #

(-) :: RRq k q r -> RRq k q r -> RRq k q r #

negate :: RRq k q r -> RRq k q r #

(Reflects k q r, Reduce r (RRq k q r), Ord r, Ring r) => Lift' (RRq k q r) Source # 

Methods

lift :: RRq k q r -> LiftOf (RRq k q r) Source #

(ToInteger i, RealField r, Reflects k q i, Reflects k q r) => Subgroup (ZqBasic k q i) (RRq k q r) Source # 

Methods

fromSubgroup :: ZqBasic k q i -> RRq k q r Source #

type ProtoType (IZipVector m (RRq k q Double, b)) Source # 
type ProtoType (IZipVector m (RRq k q Double)) Source # 
type LiftOf (RRq k q r) Source # 
type LiftOf (RRq k q r) = r