Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
straus_scalar_slice.hpp
Go to the documentation of this file.
1
// === AUDIT STATUS ===
2
// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3
// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4
// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5
// =====================
6
7
#pragma once
8
9
#include "
barretenberg/stdlib/primitives/field/field.hpp
"
10
#include <optional>
11
#include <vector>
12
13
namespace
bb::stdlib
{
14
15
// Forward declarations
16
template
<
typename
Builder>
class
cycle_group;
17
template
<
typename
Builder>
class
cycle_scalar;
18
24
template
<
typename
Builder>
class
straus_scalar_slices
{
25
public
:
26
using
field_t
=
stdlib::field_t<Builder>
;
27
28
straus_scalar_slices
(
Builder
*
context
,
const
cycle_scalar<Builder>
& scalars,
size_t
table_bits);
29
field_t
operator[]
(
size_t
index
);
30
size_t
_table_bits
;
31
std::vector<field_t>
slices
;
32
std::vector<uint64_t>
slices_native
;
33
34
private
:
35
static
std::pair<std::vector<field_t>
, std::vector<uint64_t>>
compute_scalar_slices
(
Builder
*
context
,
36
const
field_t
& scalar,
37
size_t
num_bits,
38
size_t
table_bits);
39
};
40
41
}
// namespace bb::stdlib
bb::ECCVMCircuitBuilder
Definition
eccvm_circuit_builder.hpp:24
bb::stdlib::cycle_scalar
Represents a member of the Grumpkin curve scalar field (i.e. BN254 base field).
Definition
cycle_scalar.hpp:31
bb::stdlib::field_t< Builder >
bb::stdlib::straus_scalar_slices
straus_scalar_slices decomposes an input scalar into bit-slices of size table_bits....
Definition
straus_scalar_slice.hpp:24
bb::stdlib::straus_scalar_slices::slices_native
std::vector< uint64_t > slices_native
Definition
straus_scalar_slice.hpp:32
bb::stdlib::straus_scalar_slices::compute_scalar_slices
static std::pair< std::vector< field_t >, std::vector< uint64_t > > compute_scalar_slices(Builder *context, const field_t &scalar, size_t num_bits, size_t table_bits)
Convert an input cycle_scalar field element into a vector of bit-slices.
Definition
straus_scalar_slice.cpp:28
bb::stdlib::straus_scalar_slices::operator[]
field_t operator[](size_t index)
Return a bit-slice associated with round index.
Definition
straus_scalar_slice.cpp:110
bb::stdlib::straus_scalar_slices::_table_bits
size_t _table_bits
Definition
straus_scalar_slice.hpp:30
bb::stdlib::straus_scalar_slices::slices
std::vector< field_t > slices
Definition
straus_scalar_slice.hpp:31
AddressRefMutationOptions::index
@ index
context
StrictMock< MockContext > context
Definition
data_copy.test.cpp:59
bb::stdlib
Definition
graph_description_goblin.test.cpp:13
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
field.hpp
src
barretenberg
stdlib
primitives
group
straus_scalar_slice.hpp
Generated by
1.9.8