poseidon_constants_operator.hpp
Go to the documentation of this file.
40 constexpr static const std::size_t round_constants_size = (full_rounds + part_rounds) * state_words;
Definition: pair.hpp:31
Definition: poseidon_constants_operator.hpp:24
constants_generator_policy_type round_constants_generator
Definition: poseidon_constants_operator.hpp:196
constexpr static const std::size_t state_words
Definition: poseidon_constants_operator.hpp:33
void arc_mds_part_round_optimized_init(state_vector_type &A, std::size_t round_number) const
Definition: poseidon_constants_operator.hpp:78
void arc_sbox_mds_full_round_optimized_first(state_vector_type &A, std::size_t round_number) const
Definition: poseidon_constants_operator.hpp:52
matrix_policy_type policy_matrix
Definition: poseidon_constants_operator.hpp:195
void generate_equivalent_round_constants()
Definition: poseidon_constants_operator.hpp:151
FieldType field_type
Definition: poseidon_constants_operator.hpp:25
constexpr static const std::size_t round_constants_size
Definition: poseidon_constants_operator.hpp:40
poseidon_policy< field_type, Arity, PartRounds > policy_type
Definition: poseidon_constants_operator.hpp:26
constexpr static const std::size_t full_rounds
Definition: poseidon_constants_operator.hpp:36
poseidon_constants_operator()
Definition: poseidon_constants_operator.hpp:190
equivalent_round_constants_type equivalent_round_constants
Definition: poseidon_constants_operator.hpp:197
poseidon_mds_matrix< field_type, Arity, PartRounds > matrix_policy_type
Definition: poseidon_constants_operator.hpp:27
constexpr static const std::size_t half_full_rounds
Definition: poseidon_constants_operator.hpp:37
constexpr const element_type & get_round_constant(std::size_t constant_number) const
Definition: poseidon_constants_operator.hpp:138
void arc_sbox_mds_full_round_optimized_last(state_vector_type &A, std::size_t round_number) const
Definition: poseidon_constants_operator.hpp:64
const element_type & get_equivalent_round_constant(std::size_t constant_number) const
Definition: poseidon_constants_operator.hpp:183
void sbox_arc_mds_part_round_optimized(state_vector_type &A, std::size_t round_number) const
Definition: poseidon_constants_operator.hpp:89
constexpr static const std::size_t equivalent_round_constants_size
Definition: poseidon_constants_operator.hpp:41
poseidon_lfsr< field_type, Arity, PartRounds > constants_generator_policy_type
Definition: poseidon_constants_operator.hpp:28
constexpr state_vector_type get_round_constants_slice(std::size_t constants_number_base) const
Definition: poseidon_constants_operator.hpp:143
matrix_policy_type::state_vector_type state_vector_type
Definition: poseidon_constants_operator.hpp:31
void sbox_mds_part_round_optimized_last(state_vector_type &A, std::size_t round_number) const
Definition: poseidon_constants_operator.hpp:101
constexpr static const std::size_t part_rounds
Definition: poseidon_constants_operator.hpp:38
void arc_sbox_mds_full_round(state_vector_type &A, std::size_t round_number) const
Definition: poseidon_constants_operator.hpp:115
field_type::value_type element_type
Definition: poseidon_constants_operator.hpp:30
void arc_sbox_mds_part_round(state_vector_type &A, std::size_t round_number) const
Definition: poseidon_constants_operator.hpp:126
algebra::vector< element_type, equivalent_round_constants_size > equivalent_round_constants_type
Definition: poseidon_constants_operator.hpp:44
policy_type::state_type state_type
Definition: poseidon_constants_operator.hpp:34
round_constants_type round_constants
Definition: poseidon_lfsr.hpp:116
void product_with_mds_matrix(state_vector_type &A_vector) const
Definition: poseidon_mds_matrix.hpp:42
void product_with_equivalent_mds_matrix_init(state_vector_type &A_vector, std::size_t round_number) const
Definition: poseidon_mds_matrix.hpp:51
constexpr void product_with_inverse_mds_matrix_noalias(const state_vector_type &A_vector_in, state_vector_type &A_vector_out) const
Definition: poseidon_mds_matrix.hpp:46
void product_with_equivalent_mds_matrix(state_vector_type &A_vector, std::size_t round_number) const
Definition: poseidon_mds_matrix.hpp:58
Definition: poseidon_policy.hpp:65