Class AdvancedSHECKKSRNS
Defined in File ckksrns-advancedshe.h
Page Contents
Inheritance Relationships
Base Type
public lbcrypto::AdvancedSHERNS(Class AdvancedSHERNS)
Class Documentation
-
class lbcrypto::AdvancedSHECKKSRNS : public lbcrypto::AdvancedSHERNS
Inheritence diagram for lbcrypto::AdvancedSHECKKSRNS:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="lbcrypto::AdvancedSHERNS" tooltip="lbcrypto::AdvancedSHERNS"]
"3" [label="lbcrypto::AdvancedSHEBase< DCRTPoly >" tooltip="lbcrypto::AdvancedSHEBase< DCRTPoly >"]
"1" [label="lbcrypto::AdvancedSHECKKSRNS" tooltip="lbcrypto::AdvancedSHECKKSRNS" fillcolor="#BFBFBF"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../_images/graphviz-2300c802e83f60b4779749d3cdfd6806ad08d3df.png)
Collaboration diagram for lbcrypto::AdvancedSHECKKSRNS:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="lbcrypto::AdvancedSHERNS" tooltip="lbcrypto::AdvancedSHERNS"]
"3" [label="lbcrypto::AdvancedSHEBase< DCRTPoly >" tooltip="lbcrypto::AdvancedSHEBase< DCRTPoly >"]
"1" [label="lbcrypto::AdvancedSHECKKSRNS" tooltip="lbcrypto::AdvancedSHECKKSRNS" fillcolor="#BFBFBF"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../_images/graphviz-2300c802e83f60b4779749d3cdfd6806ad08d3df.png)
Public Functions
-
virtual ~AdvancedSHECKKSRNS() = default
-
Ciphertext<DCRTPoly> EvalMultMany(const std::vector<Ciphertext<DCRTPoly>> &ciphertextVec, const std::vector<EvalKey<DCRTPoly>> &evalKeyVec) const override
-
virtual Ciphertext<DCRTPoly> EvalLinearWSum(std::vector<ReadOnlyCiphertext<DCRTPoly>> &ciphertexts, const std::vector<int64_t> &constants) const override
Virtual function for computing the linear weighted sum of a vector of ciphertexts.
- Parameters
ciphertexts – vector of input ciphertexts.
constants – vector containing double weights.
- Returns
A ciphertext containing the linear weighted sum.
-
virtual Ciphertext<DCRTPoly> EvalLinearWSum(std::vector<ReadOnlyCiphertext<DCRTPoly>> &ciphertexts, const std::vector<double> &constants) const override
-
virtual Ciphertext<DCRTPoly> EvalLinearWSum(std::vector<ReadOnlyCiphertext<DCRTPoly>> &ciphertexts, const std::vector<std::complex<double>> &constants) const override
-
virtual Ciphertext<DCRTPoly> EvalLinearWSumMutable(std::vector<Ciphertext<DCRTPoly>> &ciphertexts, const std::vector<int64_t> &constants) const override
Function for computing the linear weighted sum of a vector of ciphertexts. This is a mutable method, meaning that the level/depth of input ciphertexts may change.
- Parameters
ciphertexts – vector of input ciphertexts.
constants – vector containing double weights.
- Returns
A ciphertext containing the linear weighted sum.
-
virtual Ciphertext<DCRTPoly> EvalLinearWSumMutable(std::vector<Ciphertext<DCRTPoly>> &ciphertexts, const std::vector<double> &constants) const override
-
virtual Ciphertext<DCRTPoly> EvalLinearWSumMutable(std::vector<Ciphertext<DCRTPoly>> &ciphertexts, const std::vector<std::complex<double>> &constants) const override
-
virtual std::shared_ptr<seriesPowers<DCRTPoly>> EvalPowers(ConstCiphertext<DCRTPoly> &x, const std::vector<int64_t> &coefficients) const override
Method for computing the powers for polynomials represented in the power series. This uses a binary tree computation of the polynomial powers.
- Parameters
&cipherText – input ciphertext
&coefficients – is the vector of coefficients in the polynomial; the size of the vector is the degree of the polynomial + 1
- Returns
the result of polynomial evaluation.
-
virtual std::shared_ptr<seriesPowers<DCRTPoly>> EvalPowers(ConstCiphertext<DCRTPoly> &x, const std::vector<double> &coefficients) const override
-
virtual std::shared_ptr<seriesPowers<DCRTPoly>> EvalPowers(ConstCiphertext<DCRTPoly> &x, const std::vector<std::complex<double>> &coefficients) const override
-
virtual Ciphertext<DCRTPoly> EvalPoly(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<int64_t> &coefficients) const override
Method for computing the powers of a ciphertext to be used when evaluating a polynomial. Uses EvalPowersLinear() for low polynomial degrees (degree < 5), or EvalPowersPS() for higher degrees.
- Parameters
&cipherText – input ciphertext
&coefficients – is the vector of coefficients in the polynomial; the size of the vector is the degree of the polynomial + 1
- Returns
the resulting data structure of powers.
-
virtual Ciphertext<DCRTPoly> EvalPoly(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<double> &coefficients) const override
-
virtual Ciphertext<DCRTPoly> EvalPoly(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<std::complex<double>> &coefficients) const override
-
virtual Ciphertext<DCRTPoly> EvalPolyLinear(ConstCiphertext<DCRTPoly> &x, const std::vector<int64_t> &coefficients) const override
Method for polynomial evaluation for polynomials represented in the power series. This uses a binary tree computation of the polynomial powers.
- Parameters
&cipherText – input ciphertext
&coefficients – is the vector of coefficients in the polynomial; the size of the vector is the degree of the polynomial + 1
- Returns
the result of polynomial evaluation.
-
virtual Ciphertext<DCRTPoly> EvalPolyLinear(ConstCiphertext<DCRTPoly> &x, const std::vector<double> &coefficients) const override
-
virtual Ciphertext<DCRTPoly> EvalPolyLinear(ConstCiphertext<DCRTPoly> &x, const std::vector<std::complex<double>> &coefficients) const override
-
virtual Ciphertext<DCRTPoly> EvalPolyPS(ConstCiphertext<DCRTPoly> &x, const std::vector<int64_t> &coefficients) const override
Method for polynomial evaluation for polynomials represented in the power series. This uses the Paterson-Stockmeyer algorith,.
- Parameters
&cipherText – input ciphertext
&coefficients – is the vector of coefficients in the polynomial; the size of the vector is the degree of the polynomial + 1
- Returns
the result of polynomial evaluation.
-
virtual Ciphertext<DCRTPoly> EvalPolyPS(ConstCiphertext<DCRTPoly> &x, const std::vector<double> &coefficients) const override
-
virtual Ciphertext<DCRTPoly> EvalPolyPS(ConstCiphertext<DCRTPoly> &x, const std::vector<std::complex<double>> &coefficients) const override
-
virtual std::shared_ptr<seriesPowers<DCRTPoly>> EvalChebyPolys(ConstCiphertext<DCRTPoly> &x, const std::vector<int64_t> &coefficients, double a, double b) const override
Method for computing the Chebyshev polynomials to be used in polynomial interpolation via the Chebyshev series. This uses a binary tree computation of the Chebyshev polynomials.
- Parameters
&cipherText – input ciphertext
&coefficients – is the vector of coefficients in the polynomial; the size of the vector is the degree of the polynomial + 1
a – - lower bound of argument for which the coefficients were found
b – - upper bound of argument for which the coefficients were found
- Returns
the result of polynomial evaluation.
-
virtual std::shared_ptr<seriesPowers<DCRTPoly>> EvalChebyPolys(ConstCiphertext<DCRTPoly> &x, const std::vector<double> &coefficients, double a, double b) const override
-
virtual std::shared_ptr<seriesPowers<DCRTPoly>> EvalChebyPolys(ConstCiphertext<DCRTPoly> &x, const std::vector<std::complex<double>> &coefficients, double a, double b) const override
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeries(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<int64_t> &coefficients, double a, double b) const override
Method for evaluating Chebyshev polynomial interpolation; first the range [a,b] is mapped to [-1,1] using linear transformation 1 + 2 (x-a)/(b-a) If the degree of the polynomial is less than 5, use EvalChebyshevSeriesLinear, otherwise, use EvalChebyshevSeriesPS.
- Parameters
&cipherText – input ciphertext
&coefficients – is the vector of coefficients in Chebyshev expansion
a – - lower bound of argument for which the coefficients were found
b – - upper bound of argument for which the coefficients were found
- Returns
the result of polynomial evaluation.
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeries(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<double> &coefficients, double a, double b) const override
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeries(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<std::complex<double>> &coefficients, double a, double b) const override
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeriesLinear(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<int64_t> &coefficients, double a, double b) const override
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeriesLinear(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<double> &coefficients, double a, double b) const override
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeriesLinear(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<std::complex<double>> &coefficients, double a, double b) const override
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeriesPS(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<int64_t> &coefficients, double a, double b) const override
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeriesPS(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<double> &coefficients, double a, double b) const override
-
virtual Ciphertext<DCRTPoly> EvalChebyshevSeriesPS(ConstCiphertext<DCRTPoly> &ciphertext, const std::vector<std::complex<double>> &coefficients, double a, double b) const override
-
inline std::string SerializedObjectName() const
-
virtual ~AdvancedSHECKKSRNS() = default