Versions in this module Expand all Collapse all v5 v5.0.5 May 3, 2024 Changes in this version + const GaloisGen + const NTTFlag + const PREC128 + const PREC64 + var ExampleParameters128BitLogN14LogQP438 = ParametersLiteral + func BigFloatToFixedPointCRT(r *ring.Ring, values []*big.Float, scale *big.Float, coeffs [][]uint64) + func Complex128ToFixedPointCRT(r *ring.Ring, values []complex128, scale float64, coeffs [][]uint64) + func ComplexArbitraryToFixedPointCRT(r *ring.Ring, values []*bignum.Complex, scale *big.Float, coeffs [][]uint64) + func Float64ToFixedPointCRT(r *ring.Ring, values []float64, scale float64, coeffs [][]uint64) + func GetRootsBigComplex(NthRoot int, prec uint) (roots []*bignum.Complex) + func GetRootsComplex128(NthRoot int) (roots []complex128) + func NewCiphertext(params Parameters, degree, level int) (ct *rlwe.Ciphertext) + func NewDecryptor(params Parameters, key *rlwe.SecretKey) *rlwe.Decryptor + func NewEncryptor(params Parameters, key rlwe.EncryptionKey) *rlwe.Encryptor + func NewKeyGenerator(params Parameters) *rlwe.KeyGenerator + func NewPlaintext(params Parameters, level int) (pt *rlwe.Plaintext) + func SingleFloat64ToFixedPointCRT(r *ring.Ring, i int, value float64, scale float64, coeffs [][]uint64) + func SpecialFFTArbitrary(values []*bignum.Complex, N, M int, rotGroup []int, roots []*bignum.Complex) + func SpecialFFTDouble(values []complex128, N, M int, rotGroup []int, roots []complex128) + func SpecialFFTDoubleUL8(values []complex128, N, M int, rotGroup []int, roots []complex128) + func SpecialIFFTArbitrary(values []*bignum.Complex, N, M int, rotGroup []int, roots []*bignum.Complex) + func SpecialIFFTDouble(values []complex128, N, M int, rotGroup []int, roots []complex128) + func SpecialiFFTDoubleUnrolled8(values []complex128, N, M int, rotGroup []int, roots []complex128) + func StandardDeviation(vec interface{}, scale rlwe.Scale) (std float64) + func VerifyTestVectors(params Parameters, encoder *Encoder, decryptor *rlwe.Decryptor, ...) + type DomainSwitcher struct + func NewDomainSwitcher(params Parameters, comlexToRealEvk, realToComplexEvk *rlwe.EvaluationKey) (DomainSwitcher, error) + func (switcher DomainSwitcher) ComplexToReal(eval *Evaluator, ctIn, opOut *rlwe.Ciphertext) (err error) + func (switcher DomainSwitcher) RealToComplex(eval *Evaluator, ctIn, opOut *rlwe.Ciphertext) (err error) + type Encoder struct + func NewEncoder(parameters Parameters, precision ...uint) (ecd *Encoder) + func (ecd Encoder) Decode(pt *rlwe.Plaintext, values FloatSlice) (err error) + func (ecd Encoder) DecodePublic(pt *rlwe.Plaintext, values FloatSlice, logprec float64) (err error) + func (ecd Encoder) Embed(values FloatSlice, metadata *rlwe.MetaData, polyOut interface{}) (err error) + func (ecd Encoder) Encode(values FloatSlice, pt *rlwe.Plaintext) (err error) + func (ecd Encoder) FFT(values FloatSlice, logN int) (err error) + func (ecd Encoder) GetRLWEParameters() rlwe.Parameters + func (ecd Encoder) IFFT(values FloatSlice, logN int) (err error) + func (ecd Encoder) Prec() uint + func (ecd Encoder) ShallowCopy() *Encoder + type Evaluator struct + func NewEvaluator(parameters Parameters, evk rlwe.EvaluationKeySet) *Evaluator + func (eval Evaluator) Add(op0 *rlwe.Ciphertext, op1 rlwe.Operand, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) AddNew(op0 *rlwe.Ciphertext, op1 rlwe.Operand) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) ApplyEvaluationKeyNew(op0 *rlwe.Ciphertext, evk *rlwe.EvaluationKey) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) Average(ctIn *rlwe.Ciphertext, logBatchSize int, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) BuffQ() [3]ring.Poly + func (eval Evaluator) Conjugate(op0 *rlwe.Ciphertext, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) ConjugateNew(op0 *rlwe.Ciphertext) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) DropLevel(op0 *rlwe.Ciphertext, levels int) + func (eval Evaluator) DropLevelNew(op0 *rlwe.Ciphertext, levels int) (opOut *rlwe.Ciphertext) + func (eval Evaluator) GetParameters() *Parameters + func (eval Evaluator) GetRLWEParameters() *rlwe.Parameters + func (eval Evaluator) Mul(op0 *rlwe.Ciphertext, op1 rlwe.Operand, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) MulNew(op0 *rlwe.Ciphertext, op1 rlwe.Operand) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) MulRelin(op0 *rlwe.Ciphertext, op1 rlwe.Operand, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) MulRelinNew(op0 *rlwe.Ciphertext, op1 rlwe.Operand) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) MulRelinThenAdd(op0 *rlwe.Ciphertext, op1 rlwe.Operand, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) MulThenAdd(op0 *rlwe.Ciphertext, op1 rlwe.Operand, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) RelinearizeNew(op0 *rlwe.Ciphertext) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) Rescale(op0, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) RescaleTo(op0 *rlwe.Ciphertext, minScale rlwe.Scale, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) Rotate(op0 *rlwe.Ciphertext, k int, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) RotateHoisted(ctIn *rlwe.Ciphertext, rotations []int, opOut map[int]*rlwe.Ciphertext) (err error) + func (eval Evaluator) RotateHoistedLazyNew(level int, rotations []int, ct *rlwe.Ciphertext, c2DecompQP []ringqp.Poly) (cOut map[int]*rlwe.Element[ringqp.Poly], err error) + func (eval Evaluator) RotateHoistedNew(ctIn *rlwe.Ciphertext, rotations []int) (opOut map[int]*rlwe.Ciphertext, err error) + func (eval Evaluator) RotateNew(op0 *rlwe.Ciphertext, k int) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) ScaleUp(op0 *rlwe.Ciphertext, scale rlwe.Scale, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) ScaleUpNew(op0 *rlwe.Ciphertext, scale rlwe.Scale) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) SetScale(ct *rlwe.Ciphertext, scale rlwe.Scale) (err error) + func (eval Evaluator) ShallowCopy() *Evaluator + func (eval Evaluator) Sub(op0 *rlwe.Ciphertext, op1 rlwe.Operand, opOut *rlwe.Ciphertext) (err error) + func (eval Evaluator) SubNew(op0 *rlwe.Ciphertext, op1 rlwe.Operand) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) TraceNew(ctIn *rlwe.Ciphertext, logSlots int) (opOut *rlwe.Ciphertext, err error) + func (eval Evaluator) WithKey(evk rlwe.EvaluationKeySet) *Evaluator + type Float interface + type FloatSlice interface + type Parameters struct + func NewParametersFromLiteral(pl ParametersLiteral) (Parameters, error) + func (p *Parameters) UnmarshalBinary(data []byte) (err error) + func (p *Parameters) UnmarshalJSON(data []byte) (err error) + func (p Parameters) EncodingPrecision() (prec uint) + func (p Parameters) Equal(other *Parameters) bool + func (p Parameters) GaloisElementForComplexConjugation() uint64 + func (p Parameters) GaloisElementForRotation(k int) uint64 + func (p Parameters) GaloisElementsForExpand(logN int) []uint64 + func (p Parameters) GaloisElementsForInnerSum(batch, n int) []uint64 + func (p Parameters) GaloisElementsForPack(logN int) []uint64 + func (p Parameters) GaloisElementsForReplicate(batch, n int) []uint64 + func (p Parameters) GaloisElementsForTrace(logN int) []uint64 + func (p Parameters) GetRLWEParameters() *rlwe.Parameters + func (p Parameters) LevelsConsumedPerRescaling() int + func (p Parameters) LogDefaultScale() int + func (p Parameters) LogMaxDimensions() ring.Dimensions + func (p Parameters) LogMaxSlots() int + func (p Parameters) LogQLvl(level int) int + func (p Parameters) MarshalBinary() ([]byte, error) + func (p Parameters) MarshalJSON() ([]byte, error) + func (p Parameters) MaxDepth() int + func (p Parameters) MaxDimensions() ring.Dimensions + func (p Parameters) MaxLevel() int + func (p Parameters) MaxSlots() int + func (p Parameters) ParametersLiteral() (pLit ParametersLiteral) + func (p Parameters) PrecisionMode() PrecisionMode + func (p Parameters) QLvl(level int) *big.Int + func (p Parameters) StandardParameters() (pckks Parameters, err error) + type ParametersLiteral struct + LogDefaultScale int + LogN int + LogNthRoot int + LogP []int + LogQ []int + P []uint64 + Q []uint64 + RingType ring.Type + Xe ring.DistributionParameters + Xs ring.DistributionParameters + func (p *ParametersLiteral) UnmarshalJSON(b []byte) (err error) + func (p ParametersLiteral) GetRLWEParametersLiteral() rlwe.ParametersLiteral + type PrecisionMode int + type PrecisionStats struct + ImagDist []struct{ ... } + L2Dist []struct{ ... } + MaxDelta Stats + MaxPrecision Stats + MeanDelta Stats + MeanPrecision Stats + MedianDelta Stats + MedianPrecision Stats + MinDelta Stats + MinPrecision Stats + RealDist []struct{ ... } + func GetPrecisionStats(params Parameters, encoder *Encoder, decryptor *rlwe.Decryptor, ...) (prec PrecisionStats) + func (prec PrecisionStats) String() string + type Stats struct + Imag *big.Float + L2 *big.Float + Real *big.Float