Versions in this module Expand all Collapse all v0 v0.2.0 May 16, 2023 v0.1.10 Aug 3, 2023 v0.1.9 Aug 2, 2023 v0.1.8 Aug 2, 2023 v0.1.7 Jul 30, 2023 v0.1.6 Mar 14, 2023 v0.1.5 Mar 8, 2023 v0.1.3 Dec 16, 2022 v0.1.2 Dec 15, 2022 v0.1.1 Dec 15, 2022 v0.1.0 Dec 14, 2022 Changes in this version + const DefaultNTTFlag + const GaloisGen + var DefaultParams = []ParametersLiteral + var DefaultPostQuantumParams = []ParametersLiteral + var PN12QP101pq = ParametersLiteral + var PN12QP109 = ParametersLiteral + var PN13QP202pq = ParametersLiteral + var PN13QP218 = ParametersLiteral + var PN14QP411pq = ParametersLiteral + var PN14QP438 = ParametersLiteral + var PN15QP827pq = ParametersLiteral + var PN15QP880 = ParametersLiteral + func BsgsIndex(el interface{}, slots, N1 int) (index map[int][]int, rotN1, rotN2 []int) + func FindBestBSGSSplit(diagMatrix interface{}, maxN int, maxRatio float64) (minN int) + func NewCiphertext(params Parameters, degree, level int) (ct *rlwe.Ciphertext) + func NewDecryptor(params Parameters, key *rlwe.SecretKey) rlwe.Decryptor + func NewEncryptor(params Parameters, key interface{}) rlwe.Encryptor + func NewKeyGenerator(params Parameters) rlwe.KeyGenerator + func NewPRNGEncryptor(params Parameters, key *rlwe.SecretKey) rlwe.PRNGEncryptor + func NewPlaintext(params Parameters, level int) (pt *rlwe.Plaintext) + type Encoder interface + DecodeCoeffs func(pt *rlwe.Plaintext, values []uint64) + DecodeCoeffsNew func(pt *rlwe.Plaintext) (values []uint64) + DecodeInt func(pt *rlwe.Plaintext, values []int64) + DecodeIntNew func(pt *rlwe.Plaintext) (values []int64) + DecodeRingT func(pT *ring.Poly, scale rlwe.Scale, values interface{}) + DecodeUint func(pt *rlwe.Plaintext, values []uint64) + DecodeUintNew func(pt *rlwe.Plaintext) (values []uint64) + Encode func(values interface{}, pt *rlwe.Plaintext) + EncodeCoeffs func(values []uint64, pt *rlwe.Plaintext) + EncodeCoeffsNew func(values []uint64, level int, scale rlwe.Scale) (pt *rlwe.Plaintext) + EncodeNew func(values interface{}, level int, scale rlwe.Scale) (pt *rlwe.Plaintext) + EncodeRingT func(values interface{}, scale rlwe.Scale, pT *ring.Poly) + RingQ2T func(level int, pQ, pT *ring.Poly) + RingT2Q func(level int, pT, pQ *ring.Poly) + ScaleDown func(level int, pIn, pOut *ring.Poly) + ScaleUp func(level int, pIn, pOut *ring.Poly) + ShallowCopy func() Encoder + func NewEncoder(params Parameters) Encoder + type Evaluator interface + Add func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand, ctOut *rlwe.Ciphertext) + AddNew func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand) (ctOut *rlwe.Ciphertext) + AddScalar func(ctIn *rlwe.Ciphertext, scalar uint64, ctOut *rlwe.Ciphertext) + AddScalarNew func(ctIn *rlwe.Ciphertext, scalar uint64) (ctOut *rlwe.Ciphertext) + Automorphism func(ctIn *rlwe.Ciphertext, galEl uint64, ctOut *rlwe.Ciphertext) + AutomorphismHoisted func(level int, ctIn *rlwe.Ciphertext, c1DecompQP []ringqp.Poly, galEl uint64, ...) + BuffQ func() [3]*ring.Poly + DropLevel func(ctIn *rlwe.Ciphertext, levels int) + DropLevelNew func(ctIn *rlwe.Ciphertext, levels int) (ctOut *rlwe.Ciphertext) + EvaluatePoly func(input interface{}, pol *Polynomial, targetScale rlwe.Scale) (ctOut *rlwe.Ciphertext, err error) + EvaluatePolyVector func(input interface{}, pols []*Polynomial, encoder Encoder, ...) (ctOut *rlwe.Ciphertext, err error) + GetRLWEEvaluator func() *rlwe.Evaluator + InnerSum func(ctIn *rlwe.Ciphertext, batch, n int, ctOut *rlwe.Ciphertext) + LinearTransform func(ctIn *rlwe.Ciphertext, linearTransform interface{}, ctOut []*rlwe.Ciphertext) + LinearTransformNew func(ctIn *rlwe.Ciphertext, linearTransform interface{}) (ctOut []*rlwe.Ciphertext) + Merge func(ctIn map[int]*rlwe.Ciphertext) (ctOut *rlwe.Ciphertext) + Mul func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand, ctOut *rlwe.Ciphertext) + MulAndAdd func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand, ctOut *rlwe.Ciphertext) + MulNew func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand) (ctOut *rlwe.Ciphertext) + MulRelin func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand, ctOut *rlwe.Ciphertext) + MulRelinAndAdd func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand, ctOut *rlwe.Ciphertext) + MulRelinNew func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand) (ctOut *rlwe.Ciphertext) + MulScalar func(ctIn *rlwe.Ciphertext, scalar uint64, ctOut *rlwe.Ciphertext) + MulScalarAndAdd func(ctIn *rlwe.Ciphertext, scalar uint64, ctOut *rlwe.Ciphertext) + MulScalarNew func(ctIn *rlwe.Ciphertext, scalar uint64) (ctOut *rlwe.Ciphertext) + MultiplyByDiagMatrix func(ctIn *rlwe.Ciphertext, matrix LinearTransform, c2DecompQP []ringqp.Poly, ...) + MultiplyByDiagMatrixBSGS func(ctIn *rlwe.Ciphertext, matrix LinearTransform, c2DecompQP []ringqp.Poly, ...) + Neg func(ctIn *rlwe.Ciphertext, ctOut *rlwe.Ciphertext) + NegNew func(ctIn *rlwe.Ciphertext) (ctOut *rlwe.Ciphertext) + Relinearize func(ctIn *rlwe.Ciphertext, ctOut *rlwe.Ciphertext) + RelinearizeNew func(ctIn *rlwe.Ciphertext) (ctOut *rlwe.Ciphertext) + Replicate func(ctIn *rlwe.Ciphertext, batch, n int, ctOut *rlwe.Ciphertext) + Rescale func(ctIn, ctOut *rlwe.Ciphertext) (err error) + RotateColumns func(ctIn *rlwe.Ciphertext, k int, ctOut *rlwe.Ciphertext) + RotateColumnsNew func(ctIn *rlwe.Ciphertext, k int) (ctOut *rlwe.Ciphertext) + RotateHoistedNoModDownNew func(level int, rotations []int, c0 *ring.Poly, c2DecompQP []ringqp.Poly) (cOut map[int]rlwe.CiphertextQP) + RotateRows func(ctIn *rlwe.Ciphertext, ctOut *rlwe.Ciphertext) + RotateRowsNew func(ctIn *rlwe.Ciphertext) (ctOut *rlwe.Ciphertext) + ShallowCopy func() Evaluator + Sub func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand, ctOut *rlwe.Ciphertext) + SubNew func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand) (ctOut *rlwe.Ciphertext) + SwitchKeys func(ctIn *rlwe.Ciphertext, swk *rlwe.SwitchingKey, ctOut *rlwe.Ciphertext) + SwitchKeysNew func(ctIn *rlwe.Ciphertext, swk *rlwe.SwitchingKey) (ctOut *rlwe.Ciphertext) + WithKey func(rlwe.EvaluationKey) Evaluator + func NewEvaluator(params Parameters, evaluationKey rlwe.EvaluationKey) Evaluator + type LinearTransform struct + Level int + LogSlots int + N1 int + Scale rlwe.Scale + Vec map[int]ringqp.Poly + func GenLinearTransform(ecd Encoder, dMat map[int][]uint64, level int, scale rlwe.Scale) LinearTransform + func GenLinearTransformBSGS(ecd Encoder, dMat map[int][]uint64, level int, scale rlwe.Scale, ...) (LT LinearTransform) + func NewLinearTransform(params Parameters, nonZeroDiags []int, level int, BSGSRatio float64) LinearTransform + func (LT *LinearTransform) Encode(ecd Encoder, dMat map[int][]uint64, scale rlwe.Scale) + func (LT *LinearTransform) Rotations() (rotations []int) + type Parameters struct + func NewParameters(rlweParams rlwe.Parameters, t uint64) (p Parameters, err error) + 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) CopyNew() Parameters + func (p Parameters) Equals(other Parameters) bool + func (p Parameters) LogT() int + func (p Parameters) MarshalBinary() ([]byte, error) + func (p Parameters) MarshalBinarySize() int + func (p Parameters) MarshalJSON() ([]byte, error) + func (p Parameters) ParametersLiteral() ParametersLiteral + func (p Parameters) RingT() *ring.Ring + func (p Parameters) T() uint64 + type ParametersLiteral struct + H int + LogN int + LogP []int + LogQ []int + P []uint64 + Pow2Base int + Q []uint64 + Sigma float64 + T uint64 + func (p ParametersLiteral) RLWEParameters() rlwe.ParametersLiteral + type Polynomial struct + Coeffs []uint64 + Lead bool + MaxDeg int + func NewPoly(coeffs []uint64) (p *Polynomial) + func (p *Polynomial) Degree() int + func (p *Polynomial) Depth() int + type PowerBasis struct + Value map[int]*rlwe.Ciphertext + func NewPowerBasis(ct *rlwe.Ciphertext) (p *PowerBasis) + func (p *PowerBasis) GenPower(n int, lazy bool, eval Evaluator) (err error) + func (p *PowerBasis) MarshalBinary() (data []byte, err error) + func (p *PowerBasis) UnmarshalBinary(data []byte) (err error)