barretenberg
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
proof_system::DatabusLookupRelationImpl< FF_ > Class Template Reference

Public Types

using FF = FF_
 

Static Public Member Functions

template<typename AllValues >
static bool operation_exists_at_row (const AllValues &row)
 Determine whether the inverse I needs to be computed at a given row.
 
template<typename AllEntities >
static auto & get_inverse_polynomial (AllEntities &in)
 Get the lookup inverse polynomial.
 
template<typename Accumulator , typename AllEntities >
static Accumulator compute_inverse_exists (const AllEntities &in)
 Compute the Accumulator whose values indicate whether the inverse is computed or not.
 
template<typename Accumulator , size_t index, typename AllEntities >
static Accumulator lookup_read_counts (const AllEntities &in)
 
template<typename Accumulator , size_t read_index, typename AllEntities >
static Accumulator compute_read_term_predicate (const AllEntities &in)
 Compute scalar for read term in log derivative lookup argument.
 
template<typename Accumulator , size_t write_index, typename AllEntities >
static Accumulator compute_write_term_predicate (const AllEntities &)
 Compute scalar for write term in log derivative lookup argument.
 
template<typename Accumulator , size_t write_index, typename AllEntities , typename Parameters >
static Accumulator compute_write_term (const AllEntities &in, const Parameters &params)
 Compute write term denominator in log derivative lookup argument.
 
template<typename Accumulator , size_t read_index, typename AllEntities , typename Parameters >
static Accumulator compute_read_term (const AllEntities &in, const Parameters &params)
 Compute read term denominator in log derivative lookup argument.
 
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void accumulate (ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &params, const FF &scaling_factor)
 Accumulate the contribution from two surelations for the log derivative databus lookup argument.
 

Static Public Attributes

static constexpr size_t READ_TERMS = 1
 
static constexpr size_t WRITE_TERMS = 1
 
static constexpr size_t LENGTH = READ_TERMS + WRITE_TERMS + 3
 
static constexpr std::array< size_t, 2 > SUBRELATION_PARTIAL_LENGTHS
 
static constexpr std::array< bool, 2 > SUBRELATION_LINEARLY_INDEPENDENT = { true, false }
 

Member Function Documentation

◆ accumulate()

template<typename FF_ >
template<typename ContainerOverSubrelations , typename AllEntities , typename Parameters >
static void proof_system::DatabusLookupRelationImpl< FF_ >::accumulate ( ContainerOverSubrelations &  accumulator,
const AllEntities &  in,
const Parameters &  params,
const FF &  scaling_factor 
)
inlinestatic

Accumulate the contribution from two surelations for the log derivative databus lookup argument.

See logderivative_library.hpp for details of the generic log-derivative lookup argument

Parameters
accumulatortransformed to evals + C(in(X)...)*scaling_factor
inan std::array containing the fully extended Accumulator edges.
paramscontains beta, gamma, and public_input_delta, ....
scaling_factoroptional term to scale the evaluation before adding to evals.

◆ compute_inverse_exists()

template<typename FF_ >
template<typename Accumulator , typename AllEntities >
static Accumulator proof_system::DatabusLookupRelationImpl< FF_ >::compute_inverse_exists ( const AllEntities &  in)
inlinestatic

Compute the Accumulator whose values indicate whether the inverse is computed or not.

This is needed for efficiency since we don't need to compute the inverse unless the log derivative lookup relation is active at a given row.

◆ compute_read_term()

template<typename FF_ >
template<typename Accumulator , size_t read_index, typename AllEntities , typename Parameters >
static Accumulator proof_system::DatabusLookupRelationImpl< FF_ >::compute_read_term ( const AllEntities &  in,
const Parameters &  params 
)
inlinestatic

Compute read term denominator in log derivative lookup argument.

◆ compute_read_term_predicate()

template<typename FF_ >
template<typename Accumulator , size_t read_index, typename AllEntities >
static Accumulator proof_system::DatabusLookupRelationImpl< FF_ >::compute_read_term_predicate ( const AllEntities &  in)
inlinestatic

Compute scalar for read term in log derivative lookup argument.

◆ compute_write_term()

template<typename FF_ >
template<typename Accumulator , size_t write_index, typename AllEntities , typename Parameters >
static Accumulator proof_system::DatabusLookupRelationImpl< FF_ >::compute_write_term ( const AllEntities &  in,
const Parameters &  params 
)
inlinestatic

Compute write term denominator in log derivative lookup argument.

◆ compute_write_term_predicate()

template<typename FF_ >
template<typename Accumulator , size_t write_index, typename AllEntities >
static Accumulator proof_system::DatabusLookupRelationImpl< FF_ >::compute_write_term_predicate ( const AllEntities &  )
inlinestatic

Compute scalar for write term in log derivative lookup argument.

◆ get_inverse_polynomial()

template<typename FF_ >
template<typename AllEntities >
static auto & proof_system::DatabusLookupRelationImpl< FF_ >::get_inverse_polynomial ( AllEntities &  in)
inlinestatic

Get the lookup inverse polynomial.

Template Parameters
AllEntities
Parameters
in
Returns
auto&

◆ operation_exists_at_row()

template<typename FF_ >
template<typename AllValues >
static bool proof_system::DatabusLookupRelationImpl< FF_ >::operation_exists_at_row ( const AllValues &  row)
inlinestatic

Determine whether the inverse I needs to be computed at a given row.

The value of the inverse polynomial I(X) only needs to be computed when the databus lookup gate is "active". Otherwise it is set to 0. This method allows for determination of when the inverse should be computed.

Template Parameters
AllValues
Parameters
row
Returns
true
false

Member Data Documentation

◆ SUBRELATION_PARTIAL_LENGTHS

template<typename FF_ >
constexpr std::array<size_t, 2> proof_system::DatabusLookupRelationImpl< FF_ >::SUBRELATION_PARTIAL_LENGTHS
staticconstexpr
Initial value:
{
LENGTH,
LENGTH
}

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