nil::crypto3::zk::components::element_g1_add< CurveType > Class Template Reference

#include <element_g1.hpp>

+ Inheritance diagram for nil::crypto3::zk::components::element_g1_add< CurveType >:
+ Collaboration diagram for nil::crypto3::zk::components::element_g1_add< CurveType >:

Public Member Functions

 element_g1_add (blueprint< scalar_field_type > &bp, blueprint_variable< scalar_field_type > a, blueprint_variable< scalar_field_type > d, const element_g1< CurveType > &P1, const element_g1< CurveType > &P2, const element_g1< CurveType > &P1pP2)
 
 element_g1_add (blueprint< underlying_field_type > &bp, const element_g1< CurveType > &A, const element_g1< CurveType > &B, const element_g1< CurveType > &C)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
void generate_r1cs_witness ()
 

Public Attributes

blueprint_variable< scalar_field_type > a
 
element_g1< CurveType > A
 
blueprint_variable< scalar_field_type > aX1X2
 
element_g1< CurveType > B
 
element_g1< CurveType > C
 
blueprint_variable< scalar_field_type > d
 
blueprint_variable< scalar_field_type > dX1X2Y1Y2
 
blueprint_variable< underlying_field_type > inv
 
blueprint_variable< underlying_field_type > lambda
 
element_g1< CurveType > P1
 
element_g1< CurveType > P1pP2
 
element_g1< CurveType > P2
 
blueprint_variable< scalar_field_type > X1X2
 
blueprint_variable< scalar_field_type > X1X2Y1Y2
 
blueprint_variable< scalar_field_type > X1Y2
 
blueprint_variable< scalar_field_type > Y1X2
 
blueprint_variable< scalar_field_type > Y1Y2
 

Protected Attributes

blueprint< CurveType::scalar_field_type > & bp
 

Detailed Description

template<typename CurveType>
class nil::crypto3::zk::components::element_g1_add< CurveType >

Component that creates constraints for the validity of a G1 element. (if element from group G1 lies on the elliptic curve)

Component that creates constraints for G1 addition.

Constructor & Destructor Documentation

◆ element_g1_add() [1/2]

template<typename CurveType >
nil::crypto3::zk::components::element_g1_add< CurveType >::element_g1_add ( blueprint< scalar_field_type > &  bp,
blueprint_variable< scalar_field_type >  a,
blueprint_variable< scalar_field_type >  d,
const element_g1< CurveType > &  P1,
const element_g1< CurveType > &  P2,
const element_g1< CurveType > &  P1pP2 
)
inline

◆ element_g1_add() [2/2]

template<typename CurveType >
nil::crypto3::zk::components::element_g1_add< CurveType >::element_g1_add ( blueprint< underlying_field_type > &  bp,
const element_g1< CurveType > &  A,
const element_g1< CurveType > &  B,
const element_g1< CurveType > &  C 
)
inline

Member Function Documentation

◆ generate_r1cs_constraints() [1/2]

template<typename CurveType >
void nil::crypto3::zk::components::element_g1_add< CurveType >::generate_r1cs_constraints ( )
inline

◆ generate_r1cs_constraints() [2/2]

template<typename CurveType >
void nil::crypto3::zk::components::element_g1_add< CurveType >::generate_r1cs_constraints ( )
inline

◆ generate_r1cs_witness() [1/2]

template<typename CurveType >
void nil::crypto3::zk::components::element_g1_add< CurveType >::generate_r1cs_witness ( )
inline

◆ generate_r1cs_witness() [2/2]

template<typename CurveType >
void nil::crypto3::zk::components::element_g1_add< CurveType >::generate_r1cs_witness ( )
inline

Member Data Documentation

◆ a

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::a

◆ A

template<typename CurveType >
element_g1<CurveType> nil::crypto3::zk::components::element_g1_add< CurveType >::A

◆ aX1X2

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::aX1X2

◆ B

template<typename CurveType >
element_g1<CurveType> nil::crypto3::zk::components::element_g1_add< CurveType >::B

◆ bp

blueprint<CurveType::scalar_field_type >& nil::crypto3::zk::components::component< CurveType::scalar_field_type >::bp
protectedinherited

◆ C

template<typename CurveType >
element_g1<CurveType> nil::crypto3::zk::components::element_g1_add< CurveType >::C

◆ d

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::d

◆ dX1X2Y1Y2

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::dX1X2Y1Y2

◆ inv

template<typename CurveType >
blueprint_variable<underlying_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::inv

◆ lambda

template<typename CurveType >
blueprint_variable<underlying_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::lambda

◆ P1

template<typename CurveType >
element_g1<CurveType> nil::crypto3::zk::components::element_g1_add< CurveType >::P1

◆ P1pP2

template<typename CurveType >
element_g1<CurveType> nil::crypto3::zk::components::element_g1_add< CurveType >::P1pP2

◆ P2

template<typename CurveType >
element_g1<CurveType> nil::crypto3::zk::components::element_g1_add< CurveType >::P2

◆ X1X2

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::X1X2

◆ X1X2Y1Y2

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::X1X2Y1Y2

◆ X1Y2

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::X1Y2

◆ Y1X2

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::Y1X2

◆ Y1Y2

template<typename CurveType >
blueprint_variable<scalar_field_type> nil::crypto3::zk::components::element_g1_add< CurveType >::Y1Y2

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