barretenberg
Loading...
Searching...
No Matches
Classes | Typedefs | Functions
scalar_multiplication.test.cpp File Reference

Tests of our implementation of Pippenger's multi-scalar multiplication algorithm. More...

#include "barretenberg/ecc/scalar_multiplication/scalar_multiplication.hpp"
#include "barretenberg/common/mem.hpp"
#include "barretenberg/common/test.hpp"
#include "barretenberg/ecc/scalar_multiplication/point_table.hpp"
#include "barretenberg/numeric/random/engine.hpp"
#include "barretenberg/srs/factories/file_crs_factory.hpp"
#include "barretenberg/srs/io.hpp"
#include <cstddef>
#include <vector>

Classes

class  ScalarMultiplicationTests< Curve >
 

Typedefs

using Curves = ::testing::Types< curve::BN254, curve::Grumpkin >
 

Functions

 TYPED_TEST_SUITE (ScalarMultiplicationTests, Curves)
 
 TYPED_TEST (ScalarMultiplicationTests, ReduceBucketsSimple)
 
 TYPED_TEST (ScalarMultiplicationTests, ReduceBuckets)
 
 TYPED_TEST (ScalarMultiplicationTests, DISABLED_ReduceBucketsBasic)
 
 TYPED_TEST (ScalarMultiplicationTests, AddAffinePoints)
 
 TYPED_TEST (ScalarMultiplicationTests, ConstructAdditionChains)
 
 TYPED_TEST (ScalarMultiplicationTests, EndomorphismSplit)
 
 TYPED_TEST (ScalarMultiplicationTests, RadixSort)
 
 TYPED_TEST (ScalarMultiplicationTests, OversizedInputs)
 
 TYPED_TEST (ScalarMultiplicationTests, UndersizedInputs)
 
 TYPED_TEST (ScalarMultiplicationTests, PippengerSmall)
 
 TYPED_TEST (ScalarMultiplicationTests, PippengerEdgeCaseDbl)
 
 TYPED_TEST (ScalarMultiplicationTests, PippengerShortInputs)
 
 TYPED_TEST (ScalarMultiplicationTests, PippengerUnsafe)
 
 TYPED_TEST (ScalarMultiplicationTests, PippengerUnsafeShortInputs)
 
 TYPED_TEST (ScalarMultiplicationTests, PippengerOne)
 
 TYPED_TEST (ScalarMultiplicationTests, PippengerZeroPoints)
 
 TYPED_TEST (ScalarMultiplicationTests, PippengerMulByZero)
 

Detailed Description

Tests of our implementation of Pippenger's multi-scalar multiplication algorithm.

This file is here with the SRS code, rather than being next to the Pippenger implementation, to avoid a cyclic dependency between our srs and ecc modules. Namely, srs depends on ecc via the FileProverCrs constructor that constructs a Pippenger point table. It may make sense to create a function in the ecc module that initializes a CRS, but for now a low-impact solution (to a newly-encountered linker error) is to move this test file, as it was the sole reason for for ecc to depend on srs.