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

#include <fp12_2over3over2_gadgets.hpp>

Inheritance diagram for libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >:
Collaboration graph
[legend]

Public Types

using FieldT = typename Fp12T::my_Fp
 
using Fp6T = typename Fp12T::my_Fp6
 
using Fp2T = typename Fp12T::my_Fp2
 

Public Member Functions

 Fp12_2over3over2_mul_by_024_gadget (protoboard< FieldT > &pb, const Fp12_2over3over2_variable< Fp12T > &A, const Fp2_variable< Fp2T > &B_ell_0, const Fp2_variable< Fp2T > &B_ell_vv, const Fp2_variable< Fp2T > &B_ell_vw, const Fp12_2over3over2_variable< Fp12T > &result, const std::string &annotation_prefix)
 
const Fp12_2over3over2_variable< Fp12T > & result () const
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
- Public Member Functions inherited from libsnark::gadget< Fp12T::my_Fp >
 gadget (protoboard< Fp12T::my_Fp > &pb, const std::string &annotation_prefix)
 

Public Attributes

Fp12_2over3over2_variable< Fp12T > _Z
 
Fp2_variable< Fp2T_X_0
 
Fp2_variable< Fp2T_X_2
 
Fp2_variable< Fp2T_X_4
 
Fp2_mul_gadget< Fp2T_compute_z1_x2
 
Fp2_mul_gadget< Fp2T_compute_z4_x4
 
Fp2_mul_gadget< Fp2T_compute_z0_x0
 
Fp2_mul_gadget< Fp2T_compute_z2_x2
 
Fp2_mul_gadget< Fp2T_compute_z5_x4
 
Fp2_mul_gadget< Fp2T_compute_z1_x0
 
Fp2_mul_gadget< Fp2T_compute_z3_x4
 
Fp2_mul_gadget< Fp2T_compute_z02_x02
 
Fp2_mul_gadget< Fp2T_compute_z3_x0
 
Fp2_mul_gadget< Fp2T_compute_z24_x24
 
Fp2_mul_gadget< Fp2T_compute_z5_x2
 
Fp2_mul_gadget< Fp2T_compute_z04_x04
 
Fp2_variable< Fp2T_S
 
Fp2_mul_gadget< Fp2T_compute_out_z5_plus_S
 
Fp12_2over3over2_variable< Fp12T > _result
 

Additional Inherited Members

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

Detailed Description

template<typename Fp12T>
class libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >

Optimal multiplication in Fp12 of z = ((z0, z1, z2), (z3, z4, z5)), by some sparse x = ((x0, 0, x2), (0, x4, 0)). Follows the structure of libff::Fp12_2over3over2<Fp12T>::mul_by_024 (See libff/algebra/fields/fp12_2over3over2.tcc).

Definition at line 131 of file fp12_2over3over2_gadgets.hpp.

Member Typedef Documentation

◆ FieldT

template<typename Fp12T >
using libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::FieldT = typename Fp12T::my_Fp

Definition at line 134 of file fp12_2over3over2_gadgets.hpp.

◆ Fp2T

template<typename Fp12T >
using libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::Fp2T = typename Fp12T::my_Fp2

Definition at line 136 of file fp12_2over3over2_gadgets.hpp.

◆ Fp6T

template<typename Fp12T >
using libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::Fp6T = typename Fp12T::my_Fp6

Definition at line 135 of file fp12_2over3over2_gadgets.hpp.

Constructor & Destructor Documentation

◆ Fp12_2over3over2_mul_by_024_gadget()

template<typename Fp12T >
libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::Fp12_2over3over2_mul_by_024_gadget ( protoboard< FieldT > &  pb,
const Fp12_2over3over2_variable< Fp12T > &  A,
const Fp2_variable< Fp2T > &  B_ell_0,
const Fp2_variable< Fp2T > &  B_ell_vv,
const Fp2_variable< Fp2T > &  B_ell_vw,
const Fp12_2over3over2_variable< Fp12T > &  result,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename Fp12T >
void libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename Fp12T >
void libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::generate_r1cs_witness ( )

◆ result()

template<typename Fp12T >
const Fp12_2over3over2_variable<Fp12T>& libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::result ( ) const

Member Data Documentation

◆ _compute_out_z5_plus_S

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_out_z5_plus_S

Definition at line 170 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z02_x02

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z02_x02

Definition at line 155 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z04_x04

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z04_x04

Definition at line 163 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z0_x0

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z0_x0

Definition at line 146 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z1_x0

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z1_x0

Definition at line 151 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z1_x2

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z1_x2

Definition at line 144 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z24_x24

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z24_x24

Definition at line 159 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z2_x2

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z2_x2

Definition at line 149 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z3_x0

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z3_x0

Definition at line 158 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z3_x4

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z3_x4

Definition at line 154 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z4_x4

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z4_x4

Definition at line 145 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z5_x2

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z5_x2

Definition at line 162 of file fp12_2over3over2_gadgets.hpp.

◆ _compute_z5_x4

template<typename Fp12T >
Fp2_mul_gadget<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_compute_z5_x4

Definition at line 150 of file fp12_2over3over2_gadgets.hpp.

◆ _result

template<typename Fp12T >
Fp12_2over3over2_variable<Fp12T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_result

Definition at line 172 of file fp12_2over3over2_gadgets.hpp.

◆ _S

template<typename Fp12T >
Fp2_variable<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_S

Definition at line 169 of file fp12_2over3over2_gadgets.hpp.

◆ _X_0

template<typename Fp12T >
Fp2_variable<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_X_0

Definition at line 139 of file fp12_2over3over2_gadgets.hpp.

◆ _X_2

template<typename Fp12T >
Fp2_variable<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_X_2

Definition at line 140 of file fp12_2over3over2_gadgets.hpp.

◆ _X_4

template<typename Fp12T >
Fp2_variable<Fp2T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_X_4

Definition at line 141 of file fp12_2over3over2_gadgets.hpp.

◆ _Z

template<typename Fp12T >
Fp12_2over3over2_variable<Fp12T> libsnark::Fp12_2over3over2_mul_by_024_gadget< Fp12T >::_Z

Definition at line 138 of file fp12_2over3over2_gadgets.hpp.


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