Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::Poseidon2QuadInternalTerminalRelationImpl< FF_ > Class Template Reference

Terminal variant of the K=4 compressed internal-round relation. More...

#include <poseidon2_quad_internal_terminal_relation.hpp>

Public Types

using FF = FF_
 
using QuadParams = crypto::Poseidon2QuadBn254Params
 

Static Public Member Functions

template<typename AllEntities >
static bool skip (const AllEntities &in)
 
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void accumulate (ContainerOverSubrelations &evals, const AllEntities &in, const Parameters &, const FF &scaling_factor)
 

Static Public Attributes

static constexpr std::array< size_t, 4 > SUBRELATION_PARTIAL_LENGTHS { 7, 7, 7, 7 }
 

Detailed Description

template<typename FF_>
class bb::Poseidon2QuadInternalTerminalRelationImpl< FF_ >

Terminal variant of the K=4 compressed internal-round relation.

Same four-round closed-form computation as Poseidon2QuadInternalRelationImpl, but the successor is the standard-encoded bridge row rather than another compressed row. The four subrelations directly match (out_0, out_1, out_2, out_3) against (w_l_shift, w_r_shift, w_o_shift, w_4_shift).

This ties the compressed chain's output state (state[0..3] after 56 internal rounds) to witnesses that the first final-external gate consumes via shared witness indices.

Selector layout on the terminal row: q_l = c_{4i}, q_r = c_{4i+1}, q_o = c_{4i+2}, q_4 = c_{4i+3} // this final quad q_m, q_c, q_5 = 0 (unused — no next quad)

Definition at line 23 of file poseidon2_quad_internal_terminal_relation.hpp.

Member Typedef Documentation

◆ FF

template<typename FF_ >
using bb::Poseidon2QuadInternalTerminalRelationImpl< FF_ >::FF = FF_

◆ QuadParams

template<typename FF_ >
using bb::Poseidon2QuadInternalTerminalRelationImpl< FF_ >::QuadParams = crypto::Poseidon2QuadBn254Params

Member Function Documentation

◆ accumulate()

template<typename FF_ >
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void bb::Poseidon2QuadInternalTerminalRelationImpl< FF_ >::accumulate ( ContainerOverSubrelations &  evals,
const AllEntities &  in,
const Parameters &  ,
const FF scaling_factor 
)
inlinestatic

◆ skip()

template<typename FF_ >
template<typename AllEntities >
static bool bb::Poseidon2QuadInternalTerminalRelationImpl< FF_ >::skip ( const AllEntities &  in)
inlinestatic

Member Data Documentation

◆ SUBRELATION_PARTIAL_LENGTHS

template<typename FF_ >
constexpr std::array<size_t, 4> bb::Poseidon2QuadInternalTerminalRelationImpl< FF_ >::SUBRELATION_PARTIAL_LENGTHS { 7, 7, 7, 7 }
staticconstexpr

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