56 struct straus_cached_data;
57 struct pippenger_cached_data;
61 std::shared_ptr<straus_cached_data>
straus_init_cache(
const std::vector<MultiexpData> &data,
size_t N =0);
63 rct::key straus(
const std::vector<MultiexpData> &data,
const std::shared_ptr<straus_cached_data> &cache = NULL,
size_t STEP = 0);
64 std::shared_ptr<pippenger_cached_data>
pippenger_init_cache(
const std::vector<MultiexpData> &data,
size_t start_offset = 0,
size_t N =0);
67 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< straus_cached_data > straus_init_cache(const std::vector< MultiexpData > &data, size_t N=0)
#define CHECK_AND_ASSERT_THROW_MES(expr, message)
rct::key straus(const std::vector< MultiexpData > &data, const std::shared_ptr< straus_cached_data > &cache=NULL, size_t STEP=0)
rct::key bos_coster_heap_conv(std::vector< MultiexpData > data)
size_t pippenger_get_cache_size(const std::shared_ptr< pippenger_cached_data > &cache)
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)
size_t straus_get_cache_size(const std::shared_ptr< straus_cached_data > &cache)
std::shared_ptr< pippenger_cached_data > pippenger_init_cache(const std::vector< MultiexpData > &data, size_t start_offset=0, size_t N=0)
MultiexpData(const rct::key &s, const ge_p3 &p)
MultiexpData(const rct::key &s, const rct::key &p)
rct::key bos_coster_heap_conv_robust(std::vector< MultiexpData > data)
int ge_frombytes_vartime(ge_p3 *, const unsigned char *)
size_t get_pippenger_c(size_t N)