46template<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)
75 return res == bos_coster_heap_conv_robust(data);
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;
static const size_t loop_count
int ge_frombytes_vartime(ge_p3 *, const unsigned char *)
void scalarmultBase(key &aG, const key &a)
std::shared_ptr< pippenger_cached_data > pippenger_init_cache(const std::vector< MultiexpData > &data, size_t start_offset=0, size_t N=0)
void scalarmultKey(key &aP, const key &P, const key &a)
void addKeys(key &AB, const key &A, const key &B)
std::shared_ptr< straus_cached_data > straus_init_cache(const std::vector< MultiexpData > &data, size_t N=0)