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 Changes in this version + var DefaultParamsJ = []ParametersLiteral + var PN13Q218 = ParametersLiteral + var PN14Q438 = ParametersLiteral + var PN15Q880 = ParametersLiteral v0.1.6 Mar 14, 2023 v0.1.5 Mar 8, 2023 Changes in this version + var PN12Q109 = ParametersLiteral 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 PN11QP54 = 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 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 NewLPEncryptor(params Parameters, key *rlwe.PublicKey) rlwe.Encryptor + func NewPRNGEncryptor(params Parameters, key *rlwe.SecretKey) rlwe.PRNGEncryptor + func NewPlaintext(params Parameters, level int) (pt *rlwe.Plaintext) + func Noise(params Parameters, ct *rlwe.Ciphertext, dec rlwe.Decryptor) (std, min, max float64) + func ScaleUpTCoprimeWithQVecLvl(level int, ringQ, ringT *ring.Ring, tInvModQi, buffN []uint64, ...) + func ScaleUpTIsQ0VecLvl(level int, ringQ *ring.Ring, pIn, pOut *ring.Poly) + type Encoder interface + Decode func(pt interface{}, coeffs interface{}) + DecodeIntNew func(pt interface{}) (coeffs []int64) + DecodeUintNew func(pt interface{}) (coeffs []uint64) + Encode func(coeffs interface{}, pt *rlwe.Plaintext) + EncodeMul func(coeffs interface{}, pt *PlaintextMul) + EncodeMulNew func(coeffs interface{}, level int) (pt *PlaintextMul) + EncodeNew func(coeffs interface{}, level int) (pt *rlwe.Plaintext) + EncodeRingT func(coeffs interface{}, pt *PlaintextRingT) + EncodeRingTNew func(coeffs interface{}) (pt *PlaintextRingT) + MulToRingT func(pt *PlaintextMul, ptRt *PlaintextRingT) + RingTToMul func(ptRt *PlaintextRingT, ptmul *PlaintextMul) + ScaleDown func(pt *rlwe.Plaintext, ptRt *PlaintextRingT) + ScaleUp func(ptRt *PlaintextRingT, pt *rlwe.Plaintext) + ShallowCopy func() Encoder + SwitchToRingT func(pt interface{}, ptRt *PlaintextRingT) + 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) + AddNoMod func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand, ctOut *rlwe.Ciphertext) + AddNoModNew func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand) (ctOut *rlwe.Ciphertext) + AddScalar func(ctIn *rlwe.Ciphertext, scalar uint64, ctOut *rlwe.Ciphertext) + BuffPt func() *rlwe.Plaintext + BuffQ func() [][]*ring.Poly + BuffQMul func() [][]*ring.Poly + EvaluatePoly func(input interface{}, pol *Polynomial) (opOut *rlwe.Ciphertext, err error) + EvaluatePolyVector func(input interface{}, pols []*Polynomial, encoder Encoder, ...) (opOut *rlwe.Ciphertext, err error) + InnerSum func(ctIn *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) + 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) + Neg func(ctIn *rlwe.Ciphertext, ctOut *rlwe.Ciphertext) + NegNew func(ctIn *rlwe.Ciphertext) (ctOut *rlwe.Ciphertext) + Reduce func(ctIn *rlwe.Ciphertext, ctOut *rlwe.Ciphertext) + ReduceNew func(ctIn *rlwe.Ciphertext) (ctOut *rlwe.Ciphertext) + Relinearize func(ctIn *rlwe.Ciphertext, ctOut *rlwe.Ciphertext) + RelinearizeNew func(ctIn *rlwe.Ciphertext) (ctOut *rlwe.Ciphertext) + Rescale func(ctIn, ctOut *rlwe.Ciphertext) + RescaleTo func(level int, ctIn, ctOut *rlwe.Ciphertext) + RotateColumns func(ctIn *rlwe.Ciphertext, k int, ctOut *rlwe.Ciphertext) + RotateColumnsNew func(ctIn *rlwe.Ciphertext, k int) (ctOut *rlwe.Ciphertext) + 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) + SubNoMod func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand, ctOut *rlwe.Ciphertext) + SubNoModNew func(ctIn *rlwe.Ciphertext, op1 rlwe.Operand) (ctOut *rlwe.Ciphertext) + SwitchKeys func(ctIn *rlwe.Ciphertext, switchKey *rlwe.SwitchingKey, ctOut *rlwe.Ciphertext) + SwitchKeysNew func(ctIn *rlwe.Ciphertext, switchkey *rlwe.SwitchingKey) (ctOut *rlwe.Ciphertext) + WithKey func(rlwe.EvaluationKey) Evaluator + func NewEvaluator(params Parameters, evaluationKey rlwe.EvaluationKey) Evaluator + func NewEvaluators(params Parameters, evaluationKey rlwe.EvaluationKey, n int) []Evaluator + 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) RingQMul() *ring.Ring + 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 PlaintextMul struct + func NewPlaintextMul(params Parameters, level int) *PlaintextMul + type PlaintextRingT struct + func NewPlaintextRingT(params Parameters) *PlaintextRingT + 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, eval Evaluator) + func (p *PowerBasis) MarshalBinary() (data []byte, err error) + func (p *PowerBasis) UnmarshalBinary(data []byte) (err error) + type RNSScaler struct + func NewRNSScaler(ringQ *ring.Ring, T uint64) (rnss *RNSScaler) + func (rnss *RNSScaler) DivByQOverTRoundedLvl(level int, p1Q, p2T *ring.Poly) + func (rnss *RNSScaler) ScaleUpByQOverTLvl(level int, pIn, pOut *ring.Poly) + type Scaler interface + DivByQOverTRoundedLvl func(level int, p1, p2 *ring.Poly) + ScaleUpByQOverTLvl func(level int, p1, p2 *ring.Poly)