#include <poseidon2_internal_relation.hpp>
|
template<typename AllEntities > |
static bool | skip (const AllEntities &in) |
| Returns true if the contribution from all subrelations for the provided inputs is identically zero.
|
|
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters > |
static void | accumulate (ContainerOverSubrelations &evals, const AllEntities &in, const Parameters &, const FF &scaling_factor) |
| Expression for the poseidon2 internal round relation, based on I_i in Section 6 of https://eprint.iacr.org/2023/323.pdf.
|
|
template<typename FF_>
class bb::Poseidon2InternalRelationImpl< FF_ >
Definition at line 13 of file poseidon2_internal_relation.hpp.
◆ FF
◆ accumulate()
template<typename FF_ >
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
Expression for the poseidon2 internal round relation, based on I_i in Section 6 of https://eprint.iacr.org/2023/323.pdf.
This relation is defined as C(in(X)...) := q_poseidon2_internal * ( (v1 - w_1_shift) + \alpha * (v2 - w_2_shift) + \alpha^2 * (v3 - w_3_shift) + \alpha^3 * (v4 - w_4_shift) ) = 0 where: u1 := (w_1 + q_1)^5 sum := u1 + w_2 + w_3 + w_4 v1 := u1 * D1 + sum v2 := w_2 * D2 + sum v3 := w_3 * D3 + sum v4 := w_4 * D4 + sum Di is the ith internal diagonal value - 1 of the internal matrix M_I
- Parameters
-
evals | transformed to evals + C(in(X)...)*scaling_factor |
in | an std::array containing the fully extended Univariate edges. |
parameters | contains beta, gamma, and public_input_delta, .... |
scaling_factor | optional term to scale the evaluation before adding to evals. |
Definition at line 53 of file poseidon2_internal_relation.hpp.
◆ skip()
template<typename FF_ >
template<typename AllEntities >
◆ SUBRELATION_PARTIAL_LENGTHS
The documentation for this class was generated from the following file: