One entry in a ciphertext vector. More...
#include <Ctxt.h>
Public Member Functions | |
bool | operator== (const CtxtPart &other) const |
bool | operator!= (const CtxtPart &other) const |
CtxtPart (const FHEcontext &_context) | |
CtxtPart (const FHEcontext &_context, const IndexSet &s) | |
CtxtPart (const FHEcontext &_context, const IndexSet &s, const SKHandle &otherHandle) | |
CtxtPart (const DoubleCRT &other) | |
CtxtPart (const DoubleCRT &other, const SKHandle &otherHandle) | |
![]() | |
DoubleCRT (const ZZX &poly, const FHEcontext &_context, const IndexSet &indexSet) | |
Initializing AltCRT from a ZZX polynomial. More... | |
DoubleCRT (const ZZX &poly, const FHEcontext &_context) | |
DoubleCRT (const ZZX &poly) | |
Context is not specified, use the "active context". | |
DoubleCRT (const FHEcontext &_context) | |
DoubleCRT (const FHEcontext &_context, const IndexSet &indexSet) | |
Also specify the IndexSet explicitly. | |
DoubleCRT & | operator= (const DoubleCRT &other) |
DoubleCRT & | operator= (const SingleCRT &other) |
DoubleCRT & | operator= (const ZZX &poly) |
DoubleCRT & | operator= (const ZZ &num) |
DoubleCRT & | operator= (const long num) |
void | toPoly (ZZX &p, const IndexSet &s, bool positive=false) const |
Recovering the polynomial in coefficient representation. This yields an integer polynomial with coefficients in [-P/2,P/2], unless the positive flag is set to true, in which case we get coefficients in [0,P-1] (P is the product of all moduli used). Using the optional IndexSet param we compute the polynomial reduced modulo the product of only the ptimes in that set. | |
void | toPoly (ZZX &p, bool positive=false) const |
bool | operator== (const DoubleCRT &other) const |
bool | operator!= (const DoubleCRT &other) const |
DoubleCRT & | SetZero () |
DoubleCRT & | SetOne () |
void | breakIntoDigits (vector< DoubleCRT > &dgts, long n) const |
Break into n digits,according to the primeSets in context.digits. See Section 3.1.6 of the design document (re-linearization) | |
void | addPrimes (const IndexSet &s1) |
Expand the index set by s1. It is assumed that s1 is disjoint from the current index set. | |
double | addPrimesAndScale (const IndexSet &s1) |
Expand index set by s1, and multiply by Prod_{q in s1}. s1 is disjoint from the current index set, returns log(product). | |
void | removePrimes (const IndexSet &s1) |
Remove s1 from the index set. | |
const FHEcontext & | getContext () const |
const IndexMap< vec_long > & | getMap () const |
const IndexSet & | getIndexSet () const |
void | randomize (const ZZ *seed=NULL) |
Fills each row i with random ints mod pi, uses NTL's PRG. | |
void | sampleSmall () |
Coefficients are -1/0/1, Prob[0]=1/2. | |
void | sampleHWt (long Hwt) |
Coefficients are -1/0/1 with pre-specified number of nonzeros. | |
void | sampleGaussian (double stdev=0.0) |
Coefficients are Gaussians. | |
void | toSingleCRT (SingleCRT &scrt, const IndexSet &s) const |
Makes a corresponding SingleCRT object. | |
void | toSingleCRT (SingleCRT &scrt) const |
void | scaleDownToSet (const IndexSet &s, long ptxtSpace) |
DoubleCRT & | Negate (const DoubleCRT &other) |
DoubleCRT & | Negate () |
DoubleCRT & | operator+= (const DoubleCRT &other) |
DoubleCRT & | operator+= (const ZZX &poly) |
DoubleCRT & | operator+= (const ZZ &num) |
DoubleCRT & | operator+= (long num) |
DoubleCRT & | operator-= (const DoubleCRT &other) |
DoubleCRT & | operator-= (const ZZX &poly) |
DoubleCRT & | operator-= (const ZZ &num) |
DoubleCRT & | operator-= (long num) |
DoubleCRT & | operator++ () |
DoubleCRT & | operator-- () |
void | operator++ (int) |
void | operator-- (int) |
DoubleCRT & | operator*= (const DoubleCRT &other) |
DoubleCRT & | operator*= (const ZZX &poly) |
DoubleCRT & | operator*= (const ZZ &num) |
DoubleCRT & | operator*= (long num) |
void | Add (const DoubleCRT &other, bool matchIndexSets=true) |
void | Sub (const DoubleCRT &other, bool matchIndexSets=true) |
void | Mul (const DoubleCRT &other, bool matchIndexSets=true) |
DoubleCRT & | operator/= (const ZZ &num) |
DoubleCRT & | operator/= (long num) |
void | Exp (long k) |
Small-exponent polynomial exponentiation. | |
void | automorph (long k) |
DoubleCRT & | operator>>= (long k) |
Public Attributes | |
SKHandle | skHandle |
The handle is a public data member. | |
Additional Inherited Members | |
![]() | |
static bool | setDryRun (bool toWhat=true) |
Used for testing/debugging The dry-run option disables most operations, to save time. This lets us quickly go over the evaluation of a circuit and estimate the resulting noise magnitude, without having to actually compute anything. | |
One entry in a ciphertext vector.
A cipehrtext part consists of a polynomial (element of the ring R_Q) and a handle to the corresponding secret-key polynomial.