helayers::AbstractCiphertext Class Referenceabstract

Internal abstract implementation of a ciphertext, do not use directly. More...

#include <AbstractCiphertext.h>

Inheritance diagram for helayers::AbstractCiphertext:
helayers::HelibCiphertext helayers::HelibBgvCiphertext helayers::HelibCkksCiphertext

Public Member Functions

 AbstractCiphertext (HeContext &he)
 
AbstractCiphertextoperator= (const AbstractCiphertext &src)=delete
 
std::shared_ptr< AbstractCiphertextclone () const
 
HeContextgetContext ()
 
const HeContextgetContext () const
 
virtual std::streamoff save (std::ostream &stream) const =0
 
virtual std::streamoff load (std::istream &stream)=0
 
virtual void add (const AbstractCiphertext &other)=0
 
virtual void addRaw (const AbstractCiphertext &other)=0
 
virtual void sub (const AbstractCiphertext &other)=0
 
virtual void subRaw (const AbstractCiphertext &other)=0
 
virtual void multiply (const AbstractCiphertext &other)=0
 
virtual void multiplyRaw (const AbstractCiphertext &other)=0
 
virtual void addPlain (const AbstractPlaintext &plain)=0
 
virtual void addPlainRaw (const AbstractPlaintext &plain)=0
 
virtual void subPlain (const AbstractPlaintext &plain)=0
 
virtual void subPlainRaw (const AbstractPlaintext &plain)=0
 
virtual void multiplyPlain (const AbstractPlaintext &plain)=0
 
virtual void multiplyPlainRaw (const AbstractPlaintext &plain)=0
 
virtual void square ()=0
 
virtual void squareRaw ()=0
 
virtual void addScalar (int scalar)
 
virtual void addScalar (double scalar)
 
virtual void multiplyScalar (int scalar)
 
virtual void multiplyScalar (double scalar)
 
virtual void relinearize ()=0
 
virtual void rescale ()=0
 
virtual void rescaleRaw ()=0
 
virtual void setScale (double scale)=0
 
virtual double getScale () const =0
 
virtual void conjugate ()=0
 
virtual void conjugateRaw ()=0
 
virtual void negate ()=0
 
virtual void rotate (int n)=0
 
virtual void innerSum (int n)
 
virtual void innerSum (int rot1, int rot2, bool reverse=false)
 
virtual void reduceChainIndex ()=0
 
virtual void setChainIndex (const AbstractCiphertext &other)=0
 
virtual void setChainIndex (int chainIndex)=0
 
virtual int getChainIndex () const =0
 
virtual int slotCount () const =0
 
virtual void debugPrint (const std::string &title="", int maxElements=-1, int verbose=0, std::ostream &out=std::cout) const
 
virtual void sumExpBySquaringLeftToRight (int n)
 
virtual void sumExpBySquaringRightToLeft (int n)
 
virtual void multiplyByChangingScale (double factor)
 
virtual bool isEmpty () const =0
 

Protected Member Functions

 AbstractCiphertext (const AbstractCiphertext &src)=default
 

Detailed Description

Internal abstract implementation of a ciphertext, do not use directly.

Used as parent class for concrete classes implementing ciphertexts in various schemes. Do not use directly, use a CTile class instead.


The documentation for this class was generated from the following files:
  • /opt/IBM/FHE-distro/ML-HElib/src/helayers/hebase/impl/AbstractCiphertext.h
  • /opt/IBM/FHE-distro/ML-HElib/src/helayers/hebase/impl/AbstractCiphertext.cpp