Credit: This is developed on top of a modified blst library. Check the original library at blst library.
The code is tested on intel Mac OS, on M1 Mac OS, and on intel unbuntu. They can be compiled and run using the same commands as explained below. Note MSM_blst is not compatible with the original blst library since some of the source code in blst has been modified.
In the terminal under
MSM_blst
folder,
one first runs
./build.sh
to build the modified blst library, then runs
g++ -std=c++17 -o main_test -g -O2 main_p1.cpp libblst.a
or
g++ -std=c++17 -o main_test -g -O2 main_p2.cpp libblst.a
to complie the corresponding benchmark over
G_1
or
G_2
respectively.
Type in
./main_test
to run the benchmark.
In
main_p1.cpp
or
main_p2.cpp
there is a
/***----***
Configuration
***----***/
snippet. One can adjust the integer
xx (8<= xx <= 24)
in the line
#include "ches_config_files/config_file_n_exp_xx.h"
to run the code for different number of points
n = 2^{xx}
.
One can decide whether to run the test for a specific algorithm by assigning bool values to
TEST_PIPPENGER_Q_OVER_5_CHES
and
TEST_PIPPENGER_BGMW95
.