matmul.h
virtual bool get(mat_R &out, long i, long j, long k) const =0
PtxtArray & operator*=(PtxtArray &a, const PtxtArray &b)
Definition: EncryptedArray.h:2446
void mul(const EncryptedArray &ea, PlaintextArray &pa, const PlaintextArray &other)
Definition: EncryptedArray.cpp:1612
virtual std::complex< double > get(long i, long j) const override
Definition: matmul.h:163
BlockMatMulFullExec(const BlockMatMulFull &mat, bool minimal=false)
Definition: matmul.cpp:2470
virtual const EncryptedArray & getEA() const override
Definition: matmul.h:190
virtual bool get(mat_R &out, long i, long j) const =0
virtual long getDim() const =0
Definition: matmul.h:121
void assertTrue(const T &value, const std::string &message)
Definition: assertions.h:61
std::function< std::complex< double >long, long)> get_fun_type
Definition: matmul.h:172
const EncryptedArray & getEA() const override
Definition: matmul.h:463
Definition: matmul.h:258
virtual const EncryptedArray & getEA() const =0
Definition: matmul.h:349
A simple wrapper for a smart pointer to an EncryptedArrayBase. This is the interface that higher-leve...
Definition: EncryptedArray.h:1566
virtual const EncryptedArray & getEA() const =0
virtual void upgrade()=0
MatMul1DExec(const MatMul1D &mat, bool minimal=false)
Definition: matmul.cpp:845
long rec_mul(Ctxt &acc, const Ctxt &ctxt, long dim, long idx) const
Definition: matmul.cpp:2140
Definition: matmul.h:339
const EncryptedArray & getEA() const override
Definition: matmul.h:385
virtual long getDim() const =0
BlockMatMul1DExec(const BlockMatMul1D &mat, bool minimal=false)
Definition: matmul.cpp:1663
MatMul_CKKS(const Context &context, get_fun_type _get_fun)
Definition: matmul.h:157
Definition: EncryptedArray.h:2144
Definition: matmul.h:214
Definition: matmul.h:76
void processDiagonal(RX &poly, long i, const EncryptedArrayDerived< type > &ea) const override
Definition: matmul.cpp:583
Derived concrete implementation of EncryptedArrayBase.
Definition: EncryptedArray.h:402
Definition: matmul.h:60
virtual const EncryptedArray & getEA() const =0
const Context & getContext() const
Definition: EncryptedArray.h:1652
virtual const EncryptedArray & getEA() const =0
virtual const EncryptedArray & getEA() const =0
virtual bool multipleTransforms() const =0
Definition: matmul.h:140
bool processDiagonal(std::vector< RX > &poly, long i, const EncryptedArrayDerived< type > &ea) const override
Definition: matmul.cpp:1494
std::vector< BlockMatMul1DExec > transforms
Definition: matmul.h:438
MatMul_CKKS_Complex(const Context &context, get_fun_type _get_fun)
Definition: matmul.h:186
virtual void processDiagonal(RX &poly, long i, const EncryptedArrayDerived< type > &ea) const =0
MatMul_CKKS(const EncryptedArray &_ea, get_fun_type _get_fun)
Definition: matmul.h:153
virtual void mul(Ctxt &ctxt) const =0
Definition: apiAttributes.h:21
EncodedMatMul_CKKS(const MatMul1D_CKKS &mat)
Definition: matmul.h:342
Definition: matmul.h:34
Definition: matmul.h:102
std::vector< std::shared_ptr< ConstMultiplier > > multiplier
Definition: matmul.h:260
Definition: matmul.h:270
virtual bool processDiagonal(std::vector< RX > &poly, long i, const EncryptedArrayDerived< type > &ea) const =0
MatMulFullExec(const MatMulFull &mat, bool minimal=false)
Definition: matmul.cpp:2132
std::function< double(long, long)> get_fun_type
Definition: matmul.h:143
MatMul_CKKS_Complex(const EncryptedArray &_ea, get_fun_type _get_fun)
Definition: matmul.h:182
Definition: matmul.h:203
Definition: matmul.h:292
Definition: matmul.h:24
Definition: matmul.h:230
virtual std::complex< double > get(long i, long j) const override
Definition: matmul.h:192
long rec_mul(Ctxt &acc, const Ctxt &ctxt, long dim, long idx) const
Definition: matmul.cpp:2483
Definition: matmul.h:432
A different derived class to be used for the approximate-numbers scheme.
Definition: EncryptedArray.h:879
virtual bool get(RX &out, long i, long j, long k) const =0
virtual bool get(RX &out, long i, long j) const =0
Definition: matmul.h:87
virtual const EncryptedArray & getEA() const override
Definition: matmul.h:161
Definition: matmul.h:169
virtual bool multipleTransforms() const =0
Definition: matmul.h:392
Definition: matmul.h:50
Definition: matmul.cpp:317