packing.hpp
Go to the documentation of this file.
257 dual_variable_component(blueprint<FieldType> &bp, std::size_t width) : component<FieldType>(bp) {
Definition: packing.hpp:187
const std::size_t chunk_size
Definition: packing.hpp:200
bit_vector_copy_component(blueprint< FieldType > &bp, const blueprint_variable_vector< FieldType > &source_bits, const blueprint_variable_vector< FieldType > &target_bits, const blueprint_linear_combination< FieldType > &do_copy, std::size_t chunk_size)
Definition: packing.hpp:203
blueprint_variable_vector< FieldType > packed_source
Definition: packing.hpp:193
std::shared_ptr< multipacking_component< FieldType > > pack_target
Definition: packing.hpp:197
const blueprint_linear_combination< FieldType > do_copy
Definition: packing.hpp:191
void generate_r1cs_constraints(bool enforce_source_bitness, bool enforce_target_bitness)
Definition: packing.hpp:226
const std::size_t num_chunks
Definition: packing.hpp:201
blueprint_variable_vector< FieldType > packed_target
Definition: packing.hpp:194
std::shared_ptr< multipacking_component< FieldType > > pack_source
Definition: packing.hpp:196
const blueprint_variable_vector< FieldType > target_bits
Definition: packing.hpp:190
void generate_r1cs_witness()
Definition: packing.hpp:233
std::shared_ptr< field_vector_copy_component< FieldType > > copier
Definition: packing.hpp:198
const blueprint_variable_vector< FieldType > source_bits
Definition: packing.hpp:189
Definition: blueprint_linear_combination.hpp:115
Definition: blueprint_linear_combination.hpp:47
Definition: blueprint_variable.hpp:57
Definition: blueprint_variable.hpp:46
Definition: blueprint.hpp:46
FieldType::value_type & val(const blueprint_variable< FieldType > &var)
Definition: blueprint.hpp:70
void add_r1cs_constraint(const snark::r1cs_constraint< FieldType > &constr)
Definition: blueprint.hpp:98
Definition: component.hpp:37
Definition: packing.hpp:249
void generate_r1cs_constraints(bool enforce_bitness)
Definition: packing.hpp:279
dual_variable_component(blueprint< FieldType > &bp, const blueprint_variable< FieldType > &packed, std::size_t width)
Definition: packing.hpp:271
void generate_r1cs_witness_from_bits()
Definition: packing.hpp:286
blueprint_variable< FieldType > packed
Definition: packing.hpp:254
void generate_r1cs_witness_from_packed()
Definition: packing.hpp:283
dual_variable_component(blueprint< FieldType > &bp, std::size_t width)
Definition: packing.hpp:257
blueprint_variable_vector< FieldType > bits
Definition: packing.hpp:255
dual_variable_component(blueprint< FieldType > &bp, const blueprint_variable_vector< FieldType > &bits)
Definition: packing.hpp:263
Definition: packing.hpp:152
const blueprint_linear_combination< FieldType > do_copy
Definition: packing.hpp:156
const blueprint_variable_vector< FieldType > source
Definition: packing.hpp:154
const blueprint_variable_vector< FieldType > target
Definition: packing.hpp:155
field_vector_copy_component(blueprint< FieldType > &bp, const blueprint_variable_vector< FieldType > &source, const blueprint_variable_vector< FieldType > &target, const blueprint_linear_combination< FieldType > &do_copy)
Definition: packing.hpp:158
void generate_r1cs_witness()
Definition: packing.hpp:174
void generate_r1cs_constraints()
Definition: packing.hpp:167
Definition: packing.hpp:100
multipacking_component(blueprint< FieldType > &bp, const blueprint_linear_combination_vector< FieldType > &bits, const blueprint_linear_combination_vector< FieldType > &packed_vars, std::size_t chunk_size)
Definition: packing.hpp:113
void generate_r1cs_constraints(bool enforce_bitness)
Definition: packing.hpp:132
const std::size_t num_chunks
Definition: packing.hpp:109
const blueprint_linear_combination_vector< FieldType > packed_vars
Definition: packing.hpp:106
void generate_r1cs_witness_from_bits()
Definition: packing.hpp:144
const blueprint_linear_combination_vector< FieldType > bits
Definition: packing.hpp:105
void generate_r1cs_witness_from_packed()
Definition: packing.hpp:138
const std::size_t chunk_size
Definition: packing.hpp:108
Definition: packing.hpp:57
const blueprint_linear_combination< FieldType > packed
Definition: packing.hpp:62
void generate_r1cs_witness_from_bits()
Definition: packing.hpp:93
const blueprint_linear_combination_vector< FieldType > bits
Definition: packing.hpp:61
packing_component(blueprint< FieldType > &bp, const blueprint_linear_combination_vector< FieldType > &bits, const blueprint_linear_combination< FieldType > &packed)
Definition: packing.hpp:64
void generate_r1cs_constraints(bool enforce_bitness)
Definition: packing.hpp:72
void generate_r1cs_witness_from_packed()
Definition: packing.hpp:83
constexpr T min(const vector< T, N > &v)
computes the minimum valued element
Definition: algebra/include/nil/crypto3/algebra/vector/math.hpp:135
vector(T, U...) -> vector< std::enable_if_t<(std::is_same_v< T, U > &&...), T >, 1+sizeof...(U)>
deduction guide for uniform initialization
void generate_r1cs_equals_const_constraint(blueprint< FieldType > &bp, const blueprint_linear_combination< FieldType > &lc, const typename FieldType::value_type &c)
Definition: packing.hpp:50
void create_linear_combination_constraints(blueprint< FieldType > &bp, const std::vector< typename FieldType::value_type > &base, const std::vector< std::pair< VarT, typename FieldType::value_type >> &v, const VarT &target)
Definition: packing.hpp:292
std::size_t multipacking_num_chunks(const std::size_t num_bits)
Definition: packing.hpp:330
void create_linear_combination_witness(blueprint< FieldType > &bp, const std::vector< typename FieldType::value_type > &base, const std::vector< std::pair< VarT, typename FieldType::value_type >> &v, const VarT &target)
Definition: packing.hpp:315
void generate_boolean_r1cs_constraint(blueprint< FieldType > &bp, const blueprint_linear_combination< FieldType > &lc)
Definition: packing.hpp:44
Definition: pair.hpp:31
void add_term(const variable< FieldType > &var)
Definition: variable.hpp:277
Definition: r1cs.hpp:60