DUNE-ACFEM (unstable)

Bit-mask and strictly monotone sequences and conversion utilities. More...

Namespaces

namespace  Dune::ACFem
 A namespace encapsulating everything defined in our dune-acfem project.
 

Typedefs

template<std::size_t mask>
using Dune::ACFem::MaskSequence = typename MaskSequenceHelper< mask, 0 >::type
 Generate the index-sequence type of set bits from a bit-mask.
 
template<std::size_t... I>
using Dune::ACFem::SequenceMask = IndexConstant< SequenceMaskHelper< I... >::value >
 Generate a bit-mask from the given index-sequence.
 
template<std::size_t Mask, std::size_t Bit>
using Dune::ACFem::HasBit = BoolConstant<(Mask &SequenceMask< Bit >::value) !=0UL >
 std::true_type if Mask has Bit set.
 
template<std::size_t Super, std::size_t Sub>
using Dune::ACFem::CondensedMask = IndexConstant< CondenseMaskHelper< IndexConstant< Super >, IndexConstant< Sub > >::value >
 Transform the bit-mask given in Sub be removing all bit-positions of zeros in Super. More...
 
template<std::size_t Mask, std::size_t RequiredMask = 0UL>
using Dune::ACFem::SubMaskSequence = typename SubMaskSequenceHelper< IndexSequence<>, MaskSequence< Mask >, MaskSequence< RequiredMask > >::type
 Generate a sequence of pair-wise distinct sub-bitmasks starting from a given bit-mask. More...
 

Functions

template<std::size_t... I>
constexpr auto Dune::ACFem::sequenceMask (const IndexSequence< I... > &)
 Generate a bit-mask from the given index-sequence.
 
constexpr bool Dune::ACFem::hasBit (const std::size_t &mask, const std::size_t &bit)
 std::true_type if Mask has Bit set. More...
 
template<std::size_t mask>
constexpr auto Dune::ACFem::submaskSequence (IndexConstant< mask > &&)
 Generate a sequence of pair-wise distinct sub-bitmasks starting from a given bit-mask. More...
 
template<std::size_t... I>
constexpr auto Dune::ACFem::submaskSequence (IndexSequence< I... > &&)
 Generate a sequence of pair-wise distinct sub-bitmasks starting from a given bit-mask. More...
 

Detailed Description

Bit-mask and strictly monotone sequences and conversion utilities.

Typedef Documentation

◆ CondensedMask

template<std::size_t Super, std::size_t Sub>
using Dune::ACFem::CondensedMask = typedef IndexConstant<CondenseMaskHelper<IndexConstant<Super>, IndexConstant<Sub> >::value>

Transform the bit-mask given in Sub be removing all bit-positions of zeros in Super.

Sub is required to also only contain zeros at the removed positions.

This is, e.g., used in the model-code in order to compute argument lists for methods with deliberately ommitted parameters.

◆ SubMaskSequence

template<std::size_t Mask, std::size_t RequiredMask = 0UL>
using Dune::ACFem::SubMaskSequence = typedef typename SubMaskSequenceHelper<IndexSequence<>, MaskSequence<Mask>, MaskSequence<RequiredMask> >::type

Generate a sequence of pair-wise distinct sub-bitmasks starting from a given bit-mask.

The generated sequence of bitmask is "ORed" with the value specified by RequiredMask.

Function Documentation

◆ hasBit()

constexpr bool Dune::ACFem::hasBit ( const std::size_t &  mask,
const std::size_t &  bit 
)
constexpr

std::true_type if Mask has Bit set.

◆ submaskSequence() [1/2]

template<std::size_t mask>
constexpr auto Dune::ACFem::submaskSequence ( IndexConstant< mask > &&  )
constexpr

Generate a sequence of pair-wise distinct sub-bitmasks starting from a given bit-mask.

The generated sequence of bitmask is "ORed" with the value specified by RequiredMask.

◆ submaskSequence() [2/2]

template<std::size_t... I>
constexpr auto Dune::ACFem::submaskSequence ( IndexSequence< I... > &&  )
constexpr

Generate a sequence of pair-wise distinct sub-bitmasks starting from a given bit-mask.

The generated sequence of bitmask is "ORed" with the value specified by RequiredMask.

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 27, 23:30, 2024)