Skip to content

Created HexlDCRTPoly for HEXL specific lattice optimizations

Created the new templated class HexlDCRTPoly with template argument VecType to be assumed to be BigVector (however to conform with DCRTPoly all backend's are generated, same as DCRTPolyImpl). The main way this will be used and exposed however is hidden in the scheme layer with the use of the DCRTPoly alias. See the lattice/backend.h for how this is connected.

template<typename VecType>
HexlDCRTPoly : public DCRTPolyImpl<VecType> {...};

For this Hexl specific version of DCRTPoly only the method DropLastElementAndScale(...) is overridden from the base class, DCRTPolyImpl<>, this implementation is intentionally put into the hexldcrtpoly.cpp source file to separate it from the other methods/constructors that are defined in the header file hexldcrtpoly.h required for this inheritance to work.

See hexldcrtpoly-integration-benchmark.xlsx for comparison with the current version of dev. Not noticeable affect can been see, it appears to be more noise than anything else. I may end up committing the bash script to automate the benchmarking.

This work branch from !340 (merged)

Edited by Jonathan Saylor

Merge request reports