aboutsummaryrefslogtreecommitdiff
path: root/src/ringct/multiexp.h
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2023-04-25 11:10:27 -0400
committerluigi1111 <luigi1111w@gmail.com>2023-04-25 11:10:27 -0400
commitecf0d01aa2a8e8b5ae21f9bc4c4088e1a2c5a164 (patch)
tree9edd6b2ea3c135a7a97df2910e04ff947be65fe5 /src/ringct/multiexp.h
parentMerge pull request #8810 (diff)
parentadjust multiexp pippenger_cached_data for better reusability (diff)
downloadmonero-ecf0d01aa2a8e8b5ae21f9bc4c4088e1a2c5a164.tar.xz
Merge pull request #8679
b986421 adjust multiexp pippenger_cached_data for better reusability (koe)
Diffstat (limited to 'src/ringct/multiexp.h')
-rw-r--r--src/ringct/multiexp.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ringct/multiexp.h b/src/ringct/multiexp.h
index 788516c0b..d9a240637 100644
--- a/src/ringct/multiexp.h
+++ b/src/ringct/multiexp.h
@@ -35,10 +35,16 @@
#define MULTIEXP_H
#include <vector>
+extern "C"
+{
+#include "crypto/crypto-ops.h"
+}
#include "crypto/crypto.h"
#include "rctTypes.h"
#include "misc_log_ex.h"
+#include <boost/align/aligned_allocator.hpp>
+
namespace rct
{
@@ -55,17 +61,19 @@ struct MultiexpData {
};
struct straus_cached_data;
-struct pippenger_cached_data;
+using pippenger_cached_data = std::vector<ge_cached, boost::alignment::aligned_allocator<ge_cached, 4096>>;
rct::key bos_coster_heap_conv(std::vector<MultiexpData> data);
rct::key bos_coster_heap_conv_robust(std::vector<MultiexpData> data);
std::shared_ptr<straus_cached_data> straus_init_cache(const std::vector<MultiexpData> &data, size_t N =0);
size_t straus_get_cache_size(const std::shared_ptr<straus_cached_data> &cache);
+ge_p3 straus_p3(const std::vector<MultiexpData> &data, const std::shared_ptr<straus_cached_data> &cache = NULL, size_t STEP = 0);
rct::key straus(const std::vector<MultiexpData> &data, const std::shared_ptr<straus_cached_data> &cache = NULL, size_t STEP = 0);
std::shared_ptr<pippenger_cached_data> pippenger_init_cache(const std::vector<MultiexpData> &data, size_t start_offset = 0, size_t N =0);
size_t pippenger_get_cache_size(const std::shared_ptr<pippenger_cached_data> &cache);
size_t get_pippenger_c(size_t N);
-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);
+ge_p3 pippenger_p3(const std::vector<MultiexpData> &data, const std::shared_ptr<pippenger_cached_data> &cache = NULL, size_t cache_size = 0, size_t c = 0);
+rct::key pippenger(const std::vector<MultiexpData> &data, const std::shared_ptr<pippenger_cached_data> &cache = NULL, const size_t cache_size = 0, const size_t c = 0);
}