Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::crypto::Poseidon2QuadBn254Params Struct Reference

#include <poseidon2_quad_params.hpp>

Classes

struct  Tables
 

Public Types

enum  ClosedFormColumn : size_t {
  W_R , W_O , W_4 , U_0 ,
  U_1 , U_2 , U_3
}
 
enum  ClosedFormOutput : size_t { OUT_0 , OUT_1 , OUT_2 , OUT_3 }
 
using FF = Poseidon2Bn254ScalarFieldParams::FF
 
using ClosedFormRow = std::array< FF, CLOSED_FORM_INPUT_COUNT >
 
using ClosedFormTable = std::array< ClosedFormRow, 4 >
 
using ForwardVandermondeTable = std::array< ClosedFormRow, VANDERMONDE_SIZE >
 

Static Public Attributes

static constexpr size_t VANDERMONDE_SIZE = Poseidon2Bn254ScalarFieldParams::t - 1
 
static constexpr FF D1 = FF(1) + Poseidon2Bn254ScalarFieldParams::internal_matrix_diagonal_minus_one[0]
 
static constexpr FF D2 = FF(1) + Poseidon2Bn254ScalarFieldParams::internal_matrix_diagonal_minus_one[1]
 
static constexpr FF D3 = FF(1) + Poseidon2Bn254ScalarFieldParams::internal_matrix_diagonal_minus_one[2]
 
static constexpr FF D4 = FF(1) + Poseidon2Bn254ScalarFieldParams::internal_matrix_diagonal_minus_one[3]
 
static constexpr FF SIGMA = D2 + D3 + D4
 
static constexpr FF alpha_1_1 = D3 * D4 * inv_denom_1
 
static constexpr FF alpha_2_1 = D2 * D4 * inv_denom_2
 
static constexpr FF alpha_3_1 = D2 * D3 * inv_denom_3
 
static constexpr FF alpha_1_2 = -(D3 + D4) * inv_denom_1
 
static constexpr FF alpha_2_2 = -(D2 + D4) * inv_denom_2
 
static constexpr FF alpha_3_2 = -(D2 + D3) * inv_denom_3
 
static constexpr FF alpha_1_3 = inv_denom_1
 
static constexpr FF alpha_2_3 = inv_denom_2
 
static constexpr FF alpha_3_3 = inv_denom_3
 
static constexpr std::array< FF, VANDERMONDE_SIZEA_one = { D2 + FF(2), D3 + FF(2), D4 + FF(2) }
 
static constexpr std::array< FF, VANDERMONDE_SIZEA2_one
 
static constexpr FF sum_A_one = SIGMA + FF(6)
 
static constexpr size_t CLOSED_FORM_INPUT_COUNT = VANDERMONDE_SIZE + Poseidon2Bn254ScalarFieldParams::t
 
static const Tables tables = build_tables()
 

Private Types

using Mat = std::array< std::array< FF, VANDERMONDE_SIZE >, VANDERMONDE_SIZE >
 
using Vec = std::array< FF, VANDERMONDE_SIZE >
 

Static Private Member Functions

static constexpr Mat matrix_multiply (const Mat &a, const Mat &b)
 
static constexpr Vec matrix_vector_multiply (const Mat &a, const Vec &v)
 
static constexpr Vec vector_matrix_multiply (const Vec &v, const Mat &a)
 
static constexpr FF vector_sum (const Vec &v)
 
static constexpr ClosedFormRow weighted_closed_form_sum (const Vec &weights, const ClosedFormTable &table)
 
static Tables build_tables ()
 

Static Private Attributes

static constexpr FF D2_minus_D3 = D2 - D3
 
static constexpr FF D2_minus_D4 = D2 - D4
 
static constexpr FF D3_minus_D4 = D3 - D4
 
static constexpr FF inv_denom_1 = (D2_minus_D3 * D2_minus_D4).invert()
 
static constexpr FF inv_denom_2 = ((-D2_minus_D3) * D3_minus_D4).invert()
 
static constexpr FF inv_denom_3 = ((-D2_minus_D4) * (-D3_minus_D4)).invert()
 

Detailed Description

Definition at line 28 of file poseidon2_quad_params.hpp.

Member Typedef Documentation

◆ ClosedFormRow

◆ ClosedFormTable

◆ FF

◆ ForwardVandermondeTable

◆ Mat

Definition at line 163 of file poseidon2_quad_params.hpp.

◆ Vec

Definition at line 164 of file poseidon2_quad_params.hpp.

Member Enumeration Documentation

◆ ClosedFormColumn

Enumerator
W_R 
W_O 
W_4 
U_0 
U_1 
U_2 
U_3 

Definition at line 134 of file poseidon2_quad_params.hpp.

◆ ClosedFormOutput

Enumerator
OUT_0 
OUT_1 
OUT_2 
OUT_3 

Definition at line 143 of file poseidon2_quad_params.hpp.

Member Function Documentation

◆ build_tables()

static Tables bb::crypto::Poseidon2QuadBn254Params::build_tables ( )
inlinestaticprivate

Definition at line 225 of file poseidon2_quad_params.hpp.

◆ matrix_multiply()

static constexpr Mat bb::crypto::Poseidon2QuadBn254Params::matrix_multiply ( const Mat a,
const Mat b 
)
inlinestaticconstexprprivate

Definition at line 166 of file poseidon2_quad_params.hpp.

◆ matrix_vector_multiply()

static constexpr Vec bb::crypto::Poseidon2QuadBn254Params::matrix_vector_multiply ( const Mat a,
const Vec v 
)
inlinestaticconstexprprivate

Definition at line 181 of file poseidon2_quad_params.hpp.

◆ vector_matrix_multiply()

static constexpr Vec bb::crypto::Poseidon2QuadBn254Params::vector_matrix_multiply ( const Vec v,
const Mat a 
)
inlinestaticconstexprprivate

Definition at line 194 of file poseidon2_quad_params.hpp.

◆ vector_sum()

static constexpr FF bb::crypto::Poseidon2QuadBn254Params::vector_sum ( const Vec v)
inlinestaticconstexprprivate

Definition at line 207 of file poseidon2_quad_params.hpp.

◆ weighted_closed_form_sum()

static constexpr ClosedFormRow bb::crypto::Poseidon2QuadBn254Params::weighted_closed_form_sum ( const Vec weights,
const ClosedFormTable table 
)
inlinestaticconstexprprivate

Definition at line 216 of file poseidon2_quad_params.hpp.

Member Data Documentation

◆ A2_one

constexpr std::array<FF, VANDERMONDE_SIZE> bb::crypto::Poseidon2QuadBn254Params::A2_one
staticconstexpr
Initial value:

Definition at line 114 of file poseidon2_quad_params.hpp.

◆ A_one

constexpr std::array<FF, VANDERMONDE_SIZE> bb::crypto::Poseidon2QuadBn254Params::A_one = { D2 + FF(2), D3 + FF(2), D4 + FF(2) }
staticconstexpr

Definition at line 113 of file poseidon2_quad_params.hpp.

◆ alpha_1_1

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_1_1 = D3 * D4 * inv_denom_1
staticconstexpr

Definition at line 75 of file poseidon2_quad_params.hpp.

◆ alpha_1_2

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_1_2 = -(D3 + D4) * inv_denom_1
staticconstexpr

Definition at line 80 of file poseidon2_quad_params.hpp.

◆ alpha_1_3

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_1_3 = inv_denom_1
staticconstexpr

Definition at line 85 of file poseidon2_quad_params.hpp.

◆ alpha_2_1

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_2_1 = D2 * D4 * inv_denom_2
staticconstexpr

Definition at line 76 of file poseidon2_quad_params.hpp.

◆ alpha_2_2

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_2_2 = -(D2 + D4) * inv_denom_2
staticconstexpr

Definition at line 81 of file poseidon2_quad_params.hpp.

◆ alpha_2_3

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_2_3 = inv_denom_2
staticconstexpr

Definition at line 86 of file poseidon2_quad_params.hpp.

◆ alpha_3_1

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_3_1 = D2 * D3 * inv_denom_3
staticconstexpr

Definition at line 77 of file poseidon2_quad_params.hpp.

◆ alpha_3_2

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_3_2 = -(D2 + D3) * inv_denom_3
staticconstexpr

Definition at line 82 of file poseidon2_quad_params.hpp.

◆ alpha_3_3

constexpr FF bb::crypto::Poseidon2QuadBn254Params::alpha_3_3 = inv_denom_3
staticconstexpr

Definition at line 87 of file poseidon2_quad_params.hpp.

◆ CLOSED_FORM_INPUT_COUNT

constexpr size_t bb::crypto::Poseidon2QuadBn254Params::CLOSED_FORM_INPUT_COUNT = VANDERMONDE_SIZE + Poseidon2Bn254ScalarFieldParams::t
staticconstexpr

Definition at line 149 of file poseidon2_quad_params.hpp.

◆ D1

constexpr FF bb::crypto::Poseidon2QuadBn254Params::D1 = FF(1) + Poseidon2Bn254ScalarFieldParams::internal_matrix_diagonal_minus_one[0]
staticconstexpr

Definition at line 33 of file poseidon2_quad_params.hpp.

◆ D2

constexpr FF bb::crypto::Poseidon2QuadBn254Params::D2 = FF(1) + Poseidon2Bn254ScalarFieldParams::internal_matrix_diagonal_minus_one[1]
staticconstexpr

Definition at line 34 of file poseidon2_quad_params.hpp.

◆ D2_minus_D3

constexpr FF bb::crypto::Poseidon2QuadBn254Params::D2_minus_D3 = D2 - D3
staticconstexprprivate

Definition at line 42 of file poseidon2_quad_params.hpp.

◆ D2_minus_D4

constexpr FF bb::crypto::Poseidon2QuadBn254Params::D2_minus_D4 = D2 - D4
staticconstexprprivate

Definition at line 43 of file poseidon2_quad_params.hpp.

◆ D3

constexpr FF bb::crypto::Poseidon2QuadBn254Params::D3 = FF(1) + Poseidon2Bn254ScalarFieldParams::internal_matrix_diagonal_minus_one[2]
staticconstexpr

Definition at line 35 of file poseidon2_quad_params.hpp.

◆ D3_minus_D4

constexpr FF bb::crypto::Poseidon2QuadBn254Params::D3_minus_D4 = D3 - D4
staticconstexprprivate

Definition at line 44 of file poseidon2_quad_params.hpp.

◆ D4

constexpr FF bb::crypto::Poseidon2QuadBn254Params::D4 = FF(1) + Poseidon2Bn254ScalarFieldParams::internal_matrix_diagonal_minus_one[3]
staticconstexpr

Definition at line 36 of file poseidon2_quad_params.hpp.

◆ inv_denom_1

constexpr FF bb::crypto::Poseidon2QuadBn254Params::inv_denom_1 = (D2_minus_D3 * D2_minus_D4).invert()
staticconstexprprivate

Definition at line 47 of file poseidon2_quad_params.hpp.

◆ inv_denom_2

constexpr FF bb::crypto::Poseidon2QuadBn254Params::inv_denom_2 = ((-D2_minus_D3) * D3_minus_D4).invert()
staticconstexprprivate

Definition at line 49 of file poseidon2_quad_params.hpp.

◆ inv_denom_3

constexpr FF bb::crypto::Poseidon2QuadBn254Params::inv_denom_3 = ((-D2_minus_D4) * (-D3_minus_D4)).invert()
staticconstexprprivate

Definition at line 51 of file poseidon2_quad_params.hpp.

◆ SIGMA

constexpr FF bb::crypto::Poseidon2QuadBn254Params::SIGMA = D2 + D3 + D4
staticconstexpr

Definition at line 38 of file poseidon2_quad_params.hpp.

◆ sum_A_one

constexpr FF bb::crypto::Poseidon2QuadBn254Params::sum_A_one = SIGMA + FF(6)
staticconstexpr

Definition at line 119 of file poseidon2_quad_params.hpp.

◆ tables

const Tables bb::crypto::Poseidon2QuadBn254Params::tables = build_tables()
inlinestatic

Definition at line 310 of file poseidon2_quad_params.hpp.

◆ VANDERMONDE_SIZE

constexpr size_t bb::crypto::Poseidon2QuadBn254Params::VANDERMONDE_SIZE = Poseidon2Bn254ScalarFieldParams::t - 1
staticconstexpr

Definition at line 30 of file poseidon2_quad_params.hpp.


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