Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Types | Public Member Functions | Public Attributes | List of all members
libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T > Class Template Reference

#include <fp6_2over3_gadgets.hpp>

Inheritance diagram for libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >:
Collaboration graph
[legend]

Public Types

typedef Fp6T::my_Fp FieldT
 
typedef Fp6T::my_Fpe Fp3T
 

Public Member Functions

 Fp6_2over3_mul_by_2345_gadget (protoboard< FieldT > &pb, const Fp6_2over3_variable< Fp6T > &A, const Fp6_2over3_variable< Fp6T > &B, const Fp6_2over3_variable< Fp6T > &result, const std::string &annotation_prefix)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
- Public Member Functions inherited from libsnark::gadget< Fp6T::my_Fp >
 gadget (protoboard< Fp6T::my_Fp > &pb, const std::string &annotation_prefix)
 

Public Attributes

Fp6_2over3_variable< Fp6T > A
 
Fp6_2over3_variable< Fp6T > B
 
Fp6_2over3_variable< Fp6T > result
 
pb_linear_combination< FieldTv0_c0
 
pb_linear_combination< FieldTv0_c1
 
pb_linear_combination< FieldTv0_c2
 
pb_linear_combination< FieldTAc0_plus_Ac1_c0
 
pb_linear_combination< FieldTAc0_plus_Ac1_c1
 
pb_linear_combination< FieldTAc0_plus_Ac1_c2
 
std::shared_ptr< Fp3_variable< Fp3T > > Ac0_plus_Ac1
 
std::shared_ptr< Fp3_variable< Fp3T > > v0
 
std::shared_ptr< Fp3_variable< Fp3T > > v1
 
pb_linear_combination< FieldTBc0_plus_Bc1_c0
 
pb_linear_combination< FieldTBc0_plus_Bc1_c1
 
pb_linear_combination< FieldTBc0_plus_Bc1_c2
 
std::shared_ptr< Fp3_variable< Fp3T > > Bc0_plus_Bc1
 
pb_linear_combination< FieldTresult_c1_plus_v0_plus_v1_c0
 
pb_linear_combination< FieldTresult_c1_plus_v0_plus_v1_c1
 
pb_linear_combination< FieldTresult_c1_plus_v0_plus_v1_c2
 
std::shared_ptr< Fp3_variable< Fp3T > > result_c1_plus_v0_plus_v1
 
std::shared_ptr< Fp3_mul_gadget< Fp3T > > compute_v1
 
std::shared_ptr< Fp3_mul_gadget< Fp3T > > compute_result_c1
 

Additional Inherited Members

- Protected Attributes inherited from libsnark::gadget< Fp6T::my_Fp >
protoboard< Fp6T::my_Fp > & pb
 
const std::string annotation_prefix
 

Detailed Description

template<typename Fp6T>
class libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >

Gadget that creates constraints for Fp6 multiplication by a Fp6 element B for which B.c0.c0 = B.c0.c1 = 0.

Definition at line 111 of file fp6_2over3_gadgets.hpp.

Member Typedef Documentation

◆ FieldT

template<typename Fp6T >
typedef Fp6T::my_Fp libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::FieldT

Definition at line 114 of file fp6_2over3_gadgets.hpp.

◆ Fp3T

template<typename Fp6T >
typedef Fp6T::my_Fpe libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Fp3T

Definition at line 115 of file fp6_2over3_gadgets.hpp.

Constructor & Destructor Documentation

◆ Fp6_2over3_mul_by_2345_gadget()

template<typename Fp6T >
libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Fp6_2over3_mul_by_2345_gadget ( protoboard< FieldT > &  pb,
const Fp6_2over3_variable< Fp6T > &  A,
const Fp6_2over3_variable< Fp6T > &  B,
const Fp6_2over3_variable< Fp6T > &  result,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename Fp6T >
void libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename Fp6T >
void libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::generate_r1cs_witness ( )

Member Data Documentation

◆ A

template<typename Fp6T >
Fp6_2over3_variable<Fp6T> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::A

Definition at line 117 of file fp6_2over3_gadgets.hpp.

◆ Ac0_plus_Ac1

template<typename Fp6T >
std::shared_ptr<Fp3_variable<Fp3T> > libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Ac0_plus_Ac1

Definition at line 128 of file fp6_2over3_gadgets.hpp.

◆ Ac0_plus_Ac1_c0

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Ac0_plus_Ac1_c0

Definition at line 125 of file fp6_2over3_gadgets.hpp.

◆ Ac0_plus_Ac1_c1

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Ac0_plus_Ac1_c1

Definition at line 126 of file fp6_2over3_gadgets.hpp.

◆ Ac0_plus_Ac1_c2

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Ac0_plus_Ac1_c2

Definition at line 127 of file fp6_2over3_gadgets.hpp.

◆ B

template<typename Fp6T >
Fp6_2over3_variable<Fp6T> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::B

Definition at line 118 of file fp6_2over3_gadgets.hpp.

◆ Bc0_plus_Bc1

template<typename Fp6T >
std::shared_ptr<Fp3_variable<Fp3T> > libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Bc0_plus_Bc1

Definition at line 136 of file fp6_2over3_gadgets.hpp.

◆ Bc0_plus_Bc1_c0

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Bc0_plus_Bc1_c0

Definition at line 133 of file fp6_2over3_gadgets.hpp.

◆ Bc0_plus_Bc1_c1

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Bc0_plus_Bc1_c1

Definition at line 134 of file fp6_2over3_gadgets.hpp.

◆ Bc0_plus_Bc1_c2

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::Bc0_plus_Bc1_c2

Definition at line 135 of file fp6_2over3_gadgets.hpp.

◆ compute_result_c1

template<typename Fp6T >
std::shared_ptr<Fp3_mul_gadget<Fp3T> > libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::compute_result_c1

Definition at line 144 of file fp6_2over3_gadgets.hpp.

◆ compute_v1

template<typename Fp6T >
std::shared_ptr<Fp3_mul_gadget<Fp3T> > libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::compute_v1

Definition at line 143 of file fp6_2over3_gadgets.hpp.

◆ result

template<typename Fp6T >
Fp6_2over3_variable<Fp6T> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::result

Definition at line 119 of file fp6_2over3_gadgets.hpp.

◆ result_c1_plus_v0_plus_v1

template<typename Fp6T >
std::shared_ptr<Fp3_variable<Fp3T> > libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::result_c1_plus_v0_plus_v1

Definition at line 141 of file fp6_2over3_gadgets.hpp.

◆ result_c1_plus_v0_plus_v1_c0

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::result_c1_plus_v0_plus_v1_c0

Definition at line 138 of file fp6_2over3_gadgets.hpp.

◆ result_c1_plus_v0_plus_v1_c1

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::result_c1_plus_v0_plus_v1_c1

Definition at line 139 of file fp6_2over3_gadgets.hpp.

◆ result_c1_plus_v0_plus_v1_c2

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::result_c1_plus_v0_plus_v1_c2

Definition at line 140 of file fp6_2over3_gadgets.hpp.

◆ v0

template<typename Fp6T >
std::shared_ptr<Fp3_variable<Fp3T> > libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::v0

Definition at line 130 of file fp6_2over3_gadgets.hpp.

◆ v0_c0

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::v0_c0

Definition at line 121 of file fp6_2over3_gadgets.hpp.

◆ v0_c1

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::v0_c1

Definition at line 122 of file fp6_2over3_gadgets.hpp.

◆ v0_c2

template<typename Fp6T >
pb_linear_combination<FieldT> libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::v0_c2

Definition at line 123 of file fp6_2over3_gadgets.hpp.

◆ v1

template<typename Fp6T >
std::shared_ptr<Fp3_variable<Fp3T> > libsnark::Fp6_2over3_mul_by_2345_gadget< Fp6T >::v1

Definition at line 131 of file fp6_2over3_gadgets.hpp.


The documentation for this class was generated from the following file: