nil::crypto3::zk::snark::detail::element_kc< Type1, Type2 > Struct Template Reference
#include <element_knowledge_commitment.hpp>
Collaboration diagram for nil::crypto3::zk::snark::detail::element_kc< Type1, Type2 >:
Public Member Functions | |
element_kc | doubled () const |
element_kc ()=default | |
element_kc (const element_kc &other)=default | |
element_kc (const typename Type1::value_type &g, const typename Type2::value_type &h) | |
element_kc (element_kc &&other)=default | |
bool | is_special () const |
bool | is_zero () const |
element_kc | mixed_add (const element_kc &other) const |
bool | operator!= (const element_kc &other) const |
element_kc | operator+ (const element_kc &other) const |
element_kc & | operator= (const element_kc &other)=default |
element_kc & | operator= (element_kc &&other) noexcept=default |
bool | operator== (const element_kc &other) const |
element_kc | to_projective () |
Static Public Member Functions | |
static void | batch_to_special_all_non_zeros (std::vector< element_kc > &vec) |
static element_kc | one () |
static element_kc | zero () |
Public Attributes | |
Type1::value_type | g |
Type2::value_type | h |
Detailed Description
template<typename Type1, typename Type2>
struct nil::crypto3::zk::snark::detail::element_kc< Type1, Type2 >
A knowledge commitment element is a pair (g,h) where g is in Type1 and h in Type2, and Type1 and Type2 are groups (written additively).
Such pairs form a group by defining:
- "zero" = (0,0)
- "one" = (1,1)
- a * (g,h) + b * (g',h') := ( a * g + b * g', a * h + b * h').
Constructor & Destructor Documentation
◆ element_kc() [1/4]
template<typename Type1 , typename Type2 >
|
default |
◆ element_kc() [2/4]
template<typename Type1 , typename Type2 >
|
default |
◆ element_kc() [3/4]
template<typename Type1 , typename Type2 >
|
default |
◆ element_kc() [4/4]
template<typename Type1 , typename Type2 >
|
inline |
Member Function Documentation
◆ batch_to_special_all_non_zeros()
template<typename Type1 , typename Type2 >
|
inlinestatic |
◆ doubled()
template<typename Type1 , typename Type2 >
|
inline |
◆ is_special()
template<typename Type1 , typename Type2 >
|
inline |
◆ is_zero()
template<typename Type1 , typename Type2 >
|
inline |
◆ mixed_add()
template<typename Type1 , typename Type2 >
|
inline |
◆ one()
template<typename Type1 , typename Type2 >
|
inlinestatic |
◆ operator!=()
template<typename Type1 , typename Type2 >
|
inline |
◆ operator+()
template<typename Type1 , typename Type2 >
|
inline |
◆ operator=() [1/2]
template<typename Type1 , typename Type2 >
|
default |
◆ operator=() [2/2]
template<typename Type1 , typename Type2 >
|
defaultnoexcept |
◆ operator==()
template<typename Type1 , typename Type2 >
|
inline |
◆ to_projective()
template<typename Type1 , typename Type2 >
|
inline |
◆ zero()
template<typename Type1 , typename Type2 >
|
inlinestatic |
Member Data Documentation
◆ g
template<typename Type1 , typename Type2 >
Type1::value_type nil::crypto3::zk::snark::detail::element_kc< Type1, Type2 >::g |
◆ h
template<typename Type1 , typename Type2 >
Type2::value_type nil::crypto3::zk::snark::detail::element_kc< Type1, Type2 >::h |
The documentation for this struct was generated from the following file: