block/include/nil/crypto3/detail/reverser.hpp
Go to the documentation of this file.
422 template<typename InputEndianness, typename OutputEndianness, int UnitBits, typename Enable = void>
440 typename std::enable_if<is_same_unit<InputEndianness, OutputEndianness, UnitBits>::value>::type> {
void reverse_bits(UnitType &unit)
The functions listed below deal with bit reversal in a unit.
Definition: block/include/nil/crypto3/detail/reverser.hpp:132
void reverse_byte(byte_type &b)
This function reverses bit order in the byte b depending on the machine word size....
Definition: block/include/nil/crypto3/detail/reverser.hpp:63
T unbounded_shr(T x)
Definition: algebra/include/nil/crypto3/detail/unbounded_shift.hpp:64
T unbounded_shl(T x)
Definition: algebra/include/nil/crypto3/detail/unbounded_shift.hpp:59
boost::uint_t< CHAR_BIT >::exact byte_type
Definition: block/include/nil/crypto3/detail/reverser.hpp:49
typename std::iterator_traits< Iterator >::value_type ValueType
Definition: algebra/include/nil/crypto3/detail/make_array.hpp:50
Definition: pair.hpp:31
static void reverse(typename boost::uint_t< UnitBits >::exact &, typename boost::uint_t< UnitBits >::exact &)
Definition: block/include/nil/crypto3/detail/reverser.hpp:106
bit_in_unit_byte_reverser transforms the sequence of bits in each byte of the input unit into reverse...
Definition: block/include/nil/crypto3/detail/reverser.hpp:87
static void reverse(UnitType &in, UnitType &out)
Definition: block/include/nil/crypto3/detail/reverser.hpp:94
boost::uint_t< UnitBits >::exact UnitType
Definition: block/include/nil/crypto3/detail/reverser.hpp:92
BOOST_STATIC_ASSERT(!(UnitBits % CHAR_BIT))
bit_in_unit_byte_reverser< UnitBits, k+CHAR_BIT > next_type
Definition: block/include/nil/crypto3/detail/reverser.hpp:91
static void reverse(ValueType &, ValueType &)
Definition: block/include/nil/crypto3/detail/reverser.hpp:192
bit_in_unit_reverser transforms the sequence of bits in each unit of the input value into reversed se...
Definition: block/include/nil/crypto3/detail/reverser.hpp:171
static void reverse(ValueType &in, ValueType &out)
Definition: block/include/nil/crypto3/detail/reverser.hpp:179
bit_in_unit_reverser< InputBits, UnitBits, k+UnitBits > next_type
Definition: block/include/nil/crypto3/detail/reverser.hpp:175
boost::uint_t< UnitBits >::exact UnitType
Definition: block/include/nil/crypto3/detail/reverser.hpp:176
BOOST_STATIC_ASSERT(!(InputBits % UnitBits) &&!(UnitBits % CHAR_BIT))
static ValueType reverse(ValueType const &val)
Definition: block/include/nil/crypto3/detail/reverser.hpp:310
static void reverse(ValueType &val)
Definition: block/include/nil/crypto3/detail/reverser.hpp:303
static ValueType reverse(ValueType const &val)
Definition: block/include/nil/crypto3/detail/reverser.hpp:285
static void reverse(ValueType &)
Definition: block/include/nil/crypto3/detail/reverser.hpp:281
bit_reverser reverses the sequence of bits in each unit of the given value, if InputEndianness and Ou...
Definition: block/include/nil/crypto3/detail/reverser.hpp:266
static void reverse(ValueType &, ValueType &)
Definition: block/include/nil/crypto3/detail/reverser.hpp:353
byte_in_unit_reverser transforms the sequence of bytes in each unit of the input value into reversed ...
Definition: block/include/nil/crypto3/detail/reverser.hpp:332
static void reverse(ValueType &in, ValueType &out)
Definition: block/include/nil/crypto3/detail/reverser.hpp:340
boost::uint_t< UnitBits >::exact UnitType
Definition: block/include/nil/crypto3/detail/reverser.hpp:337
BOOST_STATIC_ASSERT(!(InputBits % UnitBits) &&!(UnitBits % CHAR_BIT))
byte_in_unit_reverser< InputBits, UnitBits, k+UnitBits > next_type
Definition: block/include/nil/crypto3/detail/reverser.hpp:336
The group of traits below is used to determine the order of bits defined by the endianness.
Definition: block/include/nil/crypto3/detail/reverser.hpp:211
constexpr static const bool value
Definition: block/include/nil/crypto3/detail/reverser.hpp:212
The group of traits below is used to determine the order of units defined by the endianness.
Definition: block/include/nil/crypto3/detail/reverser.hpp:372
constexpr static const bool value
Definition: block/include/nil/crypto3/detail/reverser.hpp:373
Trait to determine whether the order of bits defined by Endianness endianness is little.
Definition: block/include/nil/crypto3/detail/reverser.hpp:227
constexpr static const bool value
Definition: block/include/nil/crypto3/detail/reverser.hpp:228
Trait to determine whether the order of units defined by Endianness endianness is little.
Definition: block/include/nil/crypto3/detail/reverser.hpp:388
constexpr static const bool value
Definition: block/include/nil/crypto3/detail/reverser.hpp:389
Trait to determine whether the orders of bits defined by Endianness1 endianness and Endianness2 endia...
Definition: block/include/nil/crypto3/detail/reverser.hpp:244
constexpr static const bool value
Definition: block/include/nil/crypto3/detail/reverser.hpp:245
Trait to determine whether the orders of units defined by Endianness1 endianness and Endianness2 endi...
Definition: block/include/nil/crypto3/detail/reverser.hpp:405
constexpr static const bool value
Definition: block/include/nil/crypto3/detail/reverser.hpp:406
static void reverse(ValueType &)
Definition: block/include/nil/crypto3/detail/reverser.hpp:442
static ValueType reverse(ValueType const &val)
Definition: block/include/nil/crypto3/detail/reverser.hpp:446
static ValueType reverse(ValueType const &val)
Definition: block/include/nil/crypto3/detail/reverser.hpp:506
static void reverse(ValueType &val)
Definition: block/include/nil/crypto3/detail/reverser.hpp:498
static void reverse(ValueType &val)
Definition: block/include/nil/crypto3/detail/reverser.hpp:469
static ValueType reverse(ValueType const &val)
Definition: block/include/nil/crypto3/detail/reverser.hpp:474
unit_reverser reverses the sequence of units in the given value, if InputEndianness and OutputEndiann...
Definition: block/include/nil/crypto3/detail/reverser.hpp:423