Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
2#include <chrono>
3
4using namespace bb;
5
6int main(int, char**)
7{
8
9 constexpr size_t num_points = 1024;
10
12 for (size_t i = 0; i < num_points; ++i) {
13 points.emplace_back(grumpkin::g1::element::random_element());
14 }
15 grumpkin::g1::element::batch_normalize(&points[0], num_points);
16
18 for (size_t i = 0; i < num_points; ++i) {
19 affine_points.emplace_back(points[i]);
20 }
22
23 std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
24
26 for (const auto& point : points) {
27 expected.emplace_back((point * exponent).normalize());
28 }
29
30 std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
31 std::chrono::milliseconds diff = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
32 std::cout << "regular mul operations: " << diff.count() << "ms" << std::endl;
33
34 start = std::chrono::steady_clock::now();
35
36 const auto result = grumpkin::g1::element::batch_mul_with_endomorphism(affine_points, exponent);
37 end = std::chrono::steady_clock::now();
38 diff = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
39 std::cout << "batched mul operations: " << diff.count() << "ms" << std::endl;
40}
int main(int, char **)
Definition main.cpp:6
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
static field random_element(numeric::RNG *engine=nullptr) noexcept