nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds > Struct Template Reference

#include <poseidon_functions.hpp>

+ Collaboration diagram for nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >:

Public Types

typedef policy_type::block_type block_type
 
typedef poseidon_constants_operator< FieldType, Arity, PartRounds > constants_operator_policy_type
 
typedef field_type::value_type element_type
 
typedef FieldType field_type
 
typedef poseidon_policy< field_type, Arity, PartRounds > policy_type
 
typedef policy_type::state_type state_type
 
typedef constants_operator_policy_type::state_vector_type state_vector_type
 
typedef policy_type::word_type word_type
 

Static Public Member Functions

static constants_operator_policy_type get_policy_constant_operator ()
 
static void permute (state_type &A)
 
static void permute_optimized (state_type &A)
 

Static Public Attributes

constexpr static const std::size_t block_bits = policy_type::block_bits
 
constexpr static const std::size_t block_words = policy_type::block_words
 
constexpr static const std::size_t full_rounds = policy_type::full_rounds
 
constexpr static const std::size_t half_full_rounds = policy_type::half_full_rounds
 
constexpr static const std::size_t part_rounds = policy_type::part_rounds
 
static const constants_operator_policy_type policy_constants_operator
 
constexpr static const std::size_t state_bits = policy_type::state_bits
 
constexpr static const std::size_t state_words = policy_type::state_words
 
constexpr static const std::size_t word_bits = policy_type::word_bits
 

Member Typedef Documentation

◆ block_type

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef policy_type::block_type nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::block_type

◆ constants_operator_policy_type

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef poseidon_constants_operator<FieldType, Arity, PartRounds> nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::constants_operator_policy_type

◆ element_type

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef field_type::value_type nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::element_type

◆ field_type

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef FieldType nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::field_type

◆ policy_type

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef poseidon_policy<field_type, Arity, PartRounds> nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::policy_type

◆ state_type

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef policy_type::state_type nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::state_type

◆ state_vector_type

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef constants_operator_policy_type::state_vector_type nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::state_vector_type

◆ word_type

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef policy_type::word_type nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::word_type

Member Function Documentation

◆ get_policy_constant_operator()

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
static constants_operator_policy_type nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::get_policy_constant_operator ( )
inlinestatic

◆ permute()

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
static void nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::permute ( state_type A)
inlinestatic

◆ permute_optimized()

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
static void nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::permute_optimized ( state_type A)
inlinestatic

Member Data Documentation

◆ block_bits

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
constexpr static const std::size_t nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::block_bits = policy_type::block_bits
staticconstexpr

◆ block_words

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
constexpr static const std::size_t nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::block_words = policy_type::block_words
staticconstexpr

◆ full_rounds

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
constexpr static const std::size_t nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::full_rounds = policy_type::full_rounds
staticconstexpr

◆ half_full_rounds

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
constexpr static const std::size_t nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::half_full_rounds = policy_type::half_full_rounds
staticconstexpr

◆ part_rounds

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
constexpr static const std::size_t nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::part_rounds = policy_type::part_rounds
staticconstexpr

◆ policy_constants_operator

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
const constants_operator_policy_type nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::policy_constants_operator
inlinestatic
Initial value:
=
static constants_operator_policy_type get_policy_constant_operator()
Definition: poseidon_functions.hpp:50

◆ state_bits

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
constexpr static const std::size_t nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::state_bits = policy_type::state_bits
staticconstexpr

◆ state_words

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
constexpr static const std::size_t nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::state_words = policy_type::state_words
staticconstexpr

◆ word_bits

template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
constexpr static const std::size_t nil::crypto3::hashes::detail::poseidon_functions< FieldType, Arity, PartRounds >::word_bits = policy_type::word_bits
staticconstexpr

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