Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
kc_multiexp.hpp
Go to the documentation of this file.
1 
8 #ifndef KC_MULTIEXP_HPP_
9 #define KC_MULTIEXP_HPP_
10 
11 /*
12  Split out from multiexp to prevent cyclical
13  dependencies. I.e. previously multiexp dependend on
14  knowledge_commitment, which dependend on sparse_vector, which
15  dependend on multiexp (to do accumulate).
16 
17  Will probably go away in more general exp refactoring.
18 */
19 
20 #include <libff/algebra/scalar_multiplication/multiexp.hpp>
22 
23 namespace libsnark
24 {
25 
26 template<typename T1, typename T2, mp_size_t n>
27 knowledge_commitment<T1, T2> opt_window_wnaf_exp(
28  const knowledge_commitment<T1, T2> &base,
29  const libff::bigint<n> &scalar,
30  const size_t scalar_bits);
31 
32 template<
33  typename T1,
34  typename T2,
35  typename FieldT,
36  libff::multi_exp_method Method,
37  libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_normal>
38 knowledge_commitment<T1, T2> kc_multi_exp_with_mixed_addition(
39  const knowledge_commitment_vector<T1, T2> &vec,
40  const size_t min_idx,
41  const size_t max_idx,
42  typename std::vector<FieldT>::const_iterator scalar_start,
43  typename std::vector<FieldT>::const_iterator scalar_end,
44  const size_t chunks);
45 
46 template<typename T1, typename T2, typename FieldT>
47 knowledge_commitment_vector<T1, T2> kc_batch_exp(
48  const size_t scalar_size,
49  const size_t T1_window,
50  const size_t T2_window,
51  const libff::window_table<T1> &T1_table,
52  const libff::window_table<T2> &T2_table,
53  const FieldT &T1_coeff,
54  const FieldT &T2_coeff,
55  const std::vector<FieldT> &v,
56  const size_t suggested_num_chunks,
57  const bool output_special = false);
58 
59 } // namespace libsnark
60 
62 
63 #endif // KC_MULTIEXP_HPP_
libsnark::kc_multi_exp_with_mixed_addition
knowledge_commitment< T1, T2 > kc_multi_exp_with_mixed_addition(const knowledge_commitment_vector< T1, T2 > &vec, const size_t min_idx, const size_t max_idx, typename std::vector< FieldT >::const_iterator scalar_start, typename std::vector< FieldT >::const_iterator scalar_end, const size_t chunks)
libsnark
Definition: accumulation_vector.hpp:18
libsnark::opt_window_wnaf_exp
knowledge_commitment< T1, T2 > opt_window_wnaf_exp(const knowledge_commitment< T1, T2 > &base, const libff::bigint< n > &scalar, const size_t scalar_bits)
libsnark::kc_batch_exp
knowledge_commitment_vector< T1, T2 > kc_batch_exp(const size_t scalar_size, const size_t T1_window, const size_t T2_window, const libff::window_table< T1 > &T1_table, const libff::window_table< T2 > &T2_table, const FieldT &T1_coeff, const FieldT &T2_coeff, const std::vector< FieldT > &v, const size_t suggested_num_chunks, const bool output_special=false)
kc_multiexp.tcc
knowledge_commitment.hpp