46 template<test_multiexp_algorithm algorithm,
size_t npo
ints,
size_t c=0>
50 static const size_t loop_count = npoints >= 1024 ? 10 : npoints < 256 ? 1000 : 100;
56 for (
size_t n = 0; n < npoints; ++n)
77 return res ==
straus(data);
79 return res ==
straus(data, straus_cache);
81 return res ==
pippenger(data, NULL, 0, c);
83 return res ==
pippenger(data, pippenger_cache, 0, c);
90 std::vector<rct::MultiexpData> data;
91 std::shared_ptr<rct::straus_cached_data> straus_cache;
92 std::shared_ptr<rct::pippenger_cached_data> pippenger_cache;
std::shared_ptr< straus_cached_data > straus_init_cache(const std::vector< MultiexpData > &data, size_t N=0)
rct::key straus(const std::vector< MultiexpData > &data, const std::shared_ptr< straus_cached_data > &cache=NULL, size_t STEP=0)
void scalarmultKey(key &aP, const key &P, const key &a)
rct::key pippenger(const std::vector< MultiexpData > &data, const std::shared_ptr< pippenger_cached_data > &cache=NULL, size_t cache_size=0, size_t c=0)
std::shared_ptr< pippenger_cached_data > pippenger_init_cache(const std::vector< MultiexpData > &data, size_t start_offset=0, size_t N=0)
void scalarmultBase(key &aG, const key &a)
rct::key bos_coster_heap_conv_robust(std::vector< MultiexpData > data)
static const size_t loop_count
int ge_frombytes_vartime(ge_p3 *, const unsigned char *)
void addKeys(key &AB, const key &A, const key &B)