BGV key switching [2023/1642]
build.sh: build scriptring.h: polynomial ring interfacering_hexl.cpp: polynomial ring using HEXLswk.c: key switching variantstest.c: testsbench.c: benchmarksparams.py: benchmarking parameter generationparams.c: generated benchmarking parameterslatex.c: benchmarking data to LaTeX conversiondata/: benchmarking data used in the paper
- HEXL (included as submodule)
- C/C++ compiler (defaults to gcc/g++)
- CMake for building HEXL
- ssh/scp for remote building/testing
Make sure you initialize the submodule: git submodule update --init --recursive.
# local
./build.sh build tests
# remote via ssh
./build.sh -r <remote> rcopy build tests
The remote build copies the files to ${HOME}/owl, then builds and runs the tests on the remote.
If building HEXL fails, either run ./build.sh clean or remove build/hexl before trying again.
Running the benchmark build/bench_hexl prints the timings for the HEXL ring implementation.
It also dumps the results to build/bench_hexl.dat; use build/latex to convert these to LaTeX.