$ sudo apt-get install libgtest-dev
Compile:
g++ tests/tests.cpp src/* -lgtest -lgmp -lomp -o test -g -Wall -pthread -fopenmp -mavx2 -L$(find /usr/lib/llvm-* -name "libomp.so" | sed 's/libomp.so//')
g++ benchs/bench.cpp src/* -lbenchmark -lomp -lpthread -lgmp -std=c++17 -Wall -pthread -fopenmp -mavx2 -L$(find /usr/lib/llvm-* -name "libomp.so" | sed 's/libomp.so//') -O3 -o bench
Example:
#include <iostream>
#include "src/goldilocks_base_field.hpp"
int main(int argc, char **argv)
{
Goldilocks::Element a = Goldilocks::fromU64(0xFFFFFFFF00000005ULL);
uint64_t b = Goldilocks::toU64(a);
Goldilocks::Element c = Goldilocks::fromString("627710173100
5ACA
2175852863927769280199145829365870197997568000");
std::cout << Goldilocks::toString(a) << " " << b << " " << Goldilocks::toString(c) << "\n";
return 0;
}
Polygon goldilocks
was developed by Polygon. While we plan to adopt an open source license, we haven’t selected one yet, so all rights are reserved for the time being. Please reach out to us if you have thoughts on licensing.
This code has not yet been audited, and should not be used in any production systems.ode has not yet been audited, and should not be used in any production systems.