CAPD RedHom Library
capd::homAux Namespace Reference

Namespaces

 detail
 
 impl
 

Classes

class  AdaptedContainer
 
struct  CallInstantiation
 
struct  ConnectedComponents
 
class  FixedArrayStorage
 
struct  FlatMerge
 
class  FlattenIterator
 
struct  FlattenRangeType
 
struct  FromString
 
struct  FromString< capd::homAux::Byte >
 
struct  FromString< char >
 
struct  FromString< unsigned char >
 
struct  FunctionObject
 
struct  FunctorPropertyMap
 
class  GroupedRange
 
struct  GroupsAsMapType
 
struct  Instances
 
struct  InstancesIndirect
 
class  IteratedMultiValuedFunctor
 
class  IteratedMultiValuedFunctor< 0, Func >
 
class  IteratedMultiValuedFunctor< 1, Func >
 
struct  ManualComputationalModel
 
struct  MapValuesType
 
struct  Measure
 
class  MergeMaps
 
class  MultiArrayIndexer
 
class  MultiRangeStorage
 
class  MultiValuedTransformRange
 
class  PackedPair
 
class  PackedPair< T0, T1, typename boost::enable_if_c< boost::is_unsigned< T0 >::value &&boost::is_unsigned< T1 >::value >::type >
 
struct  PairFirst
 
struct  PairSecond
 
struct  PairTraits
 
struct  PairTraits< const Pair >
 
class  PositionInSequence
 
struct  PureFilterIteratorTraversal
 
struct  PureIteratorTraversal
 
struct  RandomAccessAsRangeType
 
class  RangeAlgorithms
 
class  RangeAlgorithms< ManualComputationalModel >
 
class  RangeAlgorithms< StdComputationalModel >
 
class  RangeAlgorithms< TbbComputationalModel >
 
struct  RedefinedFilteredIteratorRange
 
struct  RedefinedFilteredTransformedIteratorRange
 
struct  RedefinedFlattenIteratorRange
 
class  RedefinedIteratorRange
 
struct  RedefinedJoinedIteratorRange
 
struct  RedefinedTransformedIteratorRange
 
struct  ResultType
 
struct  ResultType< F, typename boost::disable_if< boost::function_types::is_callable_builtin< F > >::type >
 
struct  ResultType< F, typename boost::enable_if< boost::function_types::is_callable_builtin< F > >::type >
 
struct  ReversePair
 
struct  SafeIteratorPairType
 
struct  SafeIteratorPairType< Rng, typename boost::enable_if< boost::is_base_of< boost::iterator_range< typename boost::range_iterator< Rng >::type >, Rng > >::type >
 
struct  Size
 
class  SortedIndices
 
struct  StdComputationalModel
 
struct  TbbComputationalModel
 
class  TheConfig
 
struct  TypesInstantiation
 
class  UniversalVariable
 
struct  ValueProxy
 
struct  Wrap1
 
struct  Wrapper
 

Typedefs

template<size_t Size>
using BitsStorage = typename detail::SelectBitsStorage< Size >::type
 
template<typename Rng >
using GroupedRangeByKeyType = decltype(MakeGroupedRangeByKey(std::declval< Rng >()))
 
template<typename V >
using FixedSet = boost::container::flat_set< V >
 
template<typename Value , size_t SIZE>
using SmallVector = detail::SmallVectorImpl< Value, SIZE >
 

Enumerations

enum  Byte : int8_t { Byte0 = 0, Byte1, Byte2, Byte3 }
 

Functions

template<typename T >
std::ostream & operator<< (std::ostream &out, const capd::homAux::Wrapper< T > &v)
 
template<typename Container , typename... Adaptors>
auto MakeAdaptedContainer (Container container, Adaptors...adaptors)
 
template<typename Ret , typename Func >
Wrap1< Func, Ret > makeWrap1 (const Func &func)
 
template<typename T >
std::string ToS (const T &x)
 
template<typename T >
std::vector< T > VectorFromString (const std::string &s)
 
template<typename T >
TruncateNumber (T v, unsigned int Digits)
 
constexpr Byte MakeByte (int8_t x)
 
constexpr Byte operator+ (Byte b, int x)
 
constexpr Byte operator- (Byte b, int x)
 
Byteoperator+= (Byte &b, int x)
 
Byteoperator-= (Byte &b, int x)
 
Byte operator++ (Byte &b, int)
 
Byteoperator++ (Byte &b)
 
Byte operator-- (Byte &b, int)
 
Byteoperator-- (Byte &b)
 
template<typename It >
FlattenIterator< It > MakeFlattenIterator (It begin, It end)
 
template<typename Rng >
FlattenRangeType< Rng >::type MakeFlattenRange (Rng &rng)
 
template<typename Rng >
FlattenRangeType< const Rng >::type MakeFlattenRange (const Rng &rng)
 
template<class F >
FunctionObject< F > MakeFunctionObject (F f)
 
template<typename K , typename V , typename Functor >
auto get (const FunctorPropertyMap< K, V, Functor > &p, const K &k)
 
template<typename K , typename V , typename Functor >
auto put (const FunctorPropertyMap< K, V, Functor > &p, const K &k, const V &v)
 
template<typename K , typename V , typename Functor >
auto MakeFunctorPropertyMap (Functor functor)
 
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
GroupedRange< Range, Eq > MakeGroupedRange (Range range, Eq eq=Eq())
 
template<typename Rng >
auto MakeGroupedRangeByKey (Rng rng)
 
template<typename Rng , typename Eq = std::equal_to<typename Rng::value_type>>
GroupedRange< boost::reference_wrapper< const Rng >, Eq > MakeGroupIndicesBy (const Rng &rng, Eq eq=Eq())
 
template<typename Rng , typename Eq = std::equal_to<typename Rng::value_type>>
GroupedRange< boost::reference_wrapper< Rng >, Eq > MakeGroupIndicesBy (Rng &rng, Eq eq=Eq())
 
template<typename Rng >
auto MakeGroupIndicesByKey (const Rng &rng)
 
template<typename Rng >
auto MakeGroupIndicesByKey (Rng &rng)
 
template<typename T >
void Shrink (std::vector< T > &v, const T &last=T(0))
 
void FakeExternalUsageOfInstance (void *ptr)
 
template<typename Range1 , typename Range2 , typename MergeOp >
MergeMaps< Range1, Range2, MergeOp >::result_type DoMergeMaps (const Range1 &rng1, const Range2 &rng2, MergeOp mergeOp=MergeOp())
 
template<typename MultiValuedFunction , typename Iterator >
MultiValuedTransformRange< MultiValuedFunction, Iterator > makeMultiValuedTransformRange (Iterator begin, Iterator end, MultiValuedFunction func=MultiValuedFunction())
 
template<std::size_t I, typename T0 , typename T1 >
auto get (PackedPair< T0, T1 > &pp)
 
template<std::size_t I, typename T0 , typename T1 >
auto get (const PackedPair< T0, T1 > &pp)
 
template<typename T0 , typename T1 >
PackedPair< T0, T1 > MakePackedPair (const T0 &t0, const T1 &t1)
 
template<typename Range >
PositionInSequence< RangeComputePositionInSequence (const Range &range)
 
template<typename Rng >
void RangeToVector (std::vector< typename boost::range_value< Rng >::type > &v, const Rng &rng)
 
template<typename Rng >
std::vector< typename boost::range_value< Rng >::type > RangeToVector (const Rng &rng)
 
template<typename T >
std::vector< T > RangeToVector (const std::initializer_list< T > &rng)
 
template<size_t Len, typename T >
boost::array< T, Len > EmptyArray (T init=T())
 
template<size_t Len, typename T >
boost::array< T, Len > RangeToArray (const std::initializer_list< T > &rng)
 
template<typename Rng >
std::vector< typename boost::range_value< Rng >::type > Sorted (const Rng &rng)
 
template<typename T >
std::array< T, 1 > Singleton (const T &t)
 
template<typename T1 , typename T2 >
decltype(boost::irange(static_cast< T2 >(0), static_cast< T2 >(0))) Range (T1 b, T2 e)
 
template<typename T >
boost::iterator_range< impl::NumericIteratorWithStep< T > > Range (T first, size_t numberOfSteps, T stepSize)
 
template<typename T >
RandomAccessAsRangeType< T >::type RandomAccessAsRange (T &ra)
 
template<typename T >
RandomAccessAsRangeType< const T, typename T::const_reference >::type RandomAccessAsRange (const T &ra)
 
template<typename Rng >
GroupsAsMapType< Rng >::type GroupsAsMap (Rng &rng)
 
template<typename Rng >
GroupsAsMapType< const Rng >::type GroupsAsMap (const Rng &rng)
 
template<typename Rng >
MapValuesType< Rng >::type MapValues (Rng &rng)
 
template<typename Rng >
MapValuesType< const Rng >::type MapValues (const Rng &rng)
 
template<typename Rng >
boost::range_iterator< Rng >::type LowerBoundByKey (Rng &rng, const typename boost::range_value< Rng >::type::first_type &key)
 
template<typename Rng >
boost::range_iterator< Rng >::type UpperBoundByKey (Rng &rng, const typename boost::range_value< Rng >::type::first_type &key)
 
template<typename Rng >
boost::sub_range< Rng > GroupForKey (Rng &rng, const typename boost::range_value< Rng >::type::first_type key)
 
template<typename Rng >
boost::sub_range< const Rng > GroupForKey (const Rng &rng, const typename boost::range_value< const Rng >::type::first_type key)
 
template<typename Rng >
boost::range_iterator< Rng >::type FindKey (Rng &rng, const typename boost::range_value< Rng >::type::first_type &key)
 
template<typename Rng >
bool Contains (const Rng &rng, const typename boost::range_value< Rng >::type &v)
 
template<typename Rng1 , typename Rng2 , typename Callback , typename Pred = std::less<typename boost::range_value<Rng1>::type>>
void Intersection (const Rng1 &rng1, const Rng2 &rng2, Callback callback, Pred pred=Pred())
 
template<typename Rng , typename Func >
std::ostream & operator<< (std::ostream &out, const RedefinedIteratorRange< Rng, Func > &rng)
 
template<typename Rng , typename Func >
RedefinedIteratorRange< Rng, Func > MakeRedefinedIteratorRange (Rng rng, Func func=Func())
 
template<typename Rng , typename Pred >
RedefinedFilteredIteratorRange< Rng, Pred > MakeRedefinedFilteredIteratorRange (Rng rng, Pred pred=Pred())
 
template<typename Rng , typename F >
RedefinedTransformedIteratorRange< Rng, F > MakeRedefinedTransformedIteratorRange (Rng rng, F f=F())
 
template<typename Rng , typename Pred , typename F >
RedefinedFilteredTransformedIteratorRange< Rng, Pred, F > MakeRedefinedFilteredTransformedIteratorRange (Rng rng, Pred pred=Pred(), F f=F())
 
template<typename Rng1 , typename Rng2 >
RedefinedJoinedIteratorRange< Rng1, Rng2 > MakeRedefinedJoinedIteratorRange (Rng1 rng1, Rng2 rng2)
 
template<typename Rng >
RedefinedFlattenIteratorRange< Rng > MakeRedefinedFlattenIteratorRange (Rng rng)
 
template<typename Rng >
SafeIteratorPairType< Rng >::type MakeSafeIteratorPair (Rng rng)
 
template<typename Rng , typename Eq = std::equal_to<>>
FixedSet< typename boost::range_value< Rng >::type > MakeSet (const Rng &rng, Eq eq=Eq())
 
template<typename V >
FixedSet< V > MakeEmptySet ()
 
template<typename S1 , typename S2 >
FixedSet< typename boost::range_value< S1 >::type > Intersection (const S1 &s1, const S2 &s2)
 
template<typename S1 , typename S2 >
FixedSet< typename boost::range_value< S1 >::type > Difference (const S1 &s1, const S2 &s2)
 
template<typename S1 , typename S2 >
FixedSet< typename boost::range_value< S1 >::type > Union (const S1 &s1, const S2 &s2)
 
template<typename Rng , typename Cmp = std::less<typename Rng::value_type>>
SortedIndices< Rng, Cmp > MakeSortedIndices (Rng &rng, Cmp cmp=Cmp())
 
template<typename Func , typename SizeFunc >
auto StoreMultiValuedOutput (size_t inputSize, Func func, SizeFunc sizeFunc, int rangeAlgorithmsModel=RangeAlgorithms<>::DefaultModel())
 
template<typename Func >
auto StoreMultiValuedOutput (size_t inputSize, Func func=Func(), int rangeAlgorithmsModel=RangeAlgorithms<>::DefaultModel())
 
template<typename Value , typename ValueF , typename AssignF >
auto MakeValueProxy (ValueF valueF, AssignF assignF)
 

Typedef Documentation

template<size_t Size>
using capd::homAux::BitsStorage = typedef typename detail::SelectBitsStorage<Size>::type
template<typename V >
using capd::homAux::FixedSet = typedef boost::container::flat_set<V>
template<typename Rng >
using capd::homAux::GroupedRangeByKeyType = typedef decltype(MakeGroupedRangeByKey(std::declval<Rng>()))
template<typename Value , size_t SIZE>
using capd::homAux::SmallVector = typedef detail::SmallVectorImpl<Value, SIZE>

Enumeration Type Documentation

enum capd::homAux::Byte : int8_t
Enumerator
Byte0 
Byte1 
Byte2 
Byte3 

Function Documentation

template<typename Range >
PositionInSequence<Range> capd::homAux::ComputePositionInSequence ( const Range range)
template<typename Rng >
bool capd::homAux::Contains ( const Rng &  rng,
const typename boost::range_value< Rng >::type &  v 
)
template<typename S1 , typename S2 >
FixedSet<typename boost::range_value<S1>::type> capd::homAux::Difference ( const S1 &  s1,
const S2 &  s2 
)
template<typename Range1 , typename Range2 , typename MergeOp >
MergeMaps<Range1, Range2, MergeOp>::result_type capd::homAux::DoMergeMaps ( const Range1 &  rng1,
const Range2 &  rng2,
MergeOp  mergeOp = MergeOp() 
)
template<size_t Len, typename T >
boost::array<T, Len> capd::homAux::EmptyArray ( init = T())
void capd::homAux::FakeExternalUsageOfInstance ( void *  ptr)
template<typename Rng >
boost::range_iterator<Rng>::type capd::homAux::FindKey ( Rng &  rng,
const typename boost::range_value< Rng >::type::first_type &  key 
)
template<typename K , typename V , typename Functor >
auto capd::homAux::get ( const FunctorPropertyMap< K, V, Functor > &  p,
const K &  k 
)
inline
template<std::size_t I, typename T0 , typename T1 >
auto capd::homAux::get ( PackedPair< T0, T1 > &  pp)
template<std::size_t I, typename T0 , typename T1 >
auto capd::homAux::get ( const PackedPair< T0, T1 > &  pp)
template<typename Rng >
boost::sub_range<Rng> capd::homAux::GroupForKey ( Rng &  rng,
const typename boost::range_value< Rng >::type::first_type  key 
)
template<typename Rng >
boost::sub_range<const Rng> capd::homAux::GroupForKey ( const Rng &  rng,
const typename boost::range_value< const Rng >::type::first_type  key 
)
template<typename Rng >
GroupsAsMapType<Rng>::type capd::homAux::GroupsAsMap ( Rng &  rng)
template<typename Rng >
GroupsAsMapType<const Rng>::type capd::homAux::GroupsAsMap ( const Rng &  rng)
template<typename S1 , typename S2 >
FixedSet<typename boost::range_value<S1>::type> capd::homAux::Intersection ( const S1 &  s1,
const S2 &  s2 
)
template<typename Rng1 , typename Rng2 , typename Callback , typename Pred = std::less<typename boost::range_value<Rng1>::type>>
void capd::homAux::Intersection ( const Rng1 rng1,
const Rng2 &  rng2,
Callback  callback,
Pred  pred = Pred() 
)
template<typename Rng >
boost::range_iterator<Rng>::type capd::homAux::LowerBoundByKey ( Rng &  rng,
const typename boost::range_value< Rng >::type::first_type &  key 
)
template<typename Container , typename... Adaptors>
auto capd::homAux::MakeAdaptedContainer ( Container  container,
Adaptors...  adaptors 
)
constexpr Byte capd::homAux::MakeByte ( int8_t  x)
inline
template<typename V >
FixedSet<V> capd::homAux::MakeEmptySet ( )
template<typename It >
FlattenIterator<It> capd::homAux::MakeFlattenIterator ( It  begin,
It  end 
)
template<typename Rng >
FlattenRangeType<Rng>::type capd::homAux::MakeFlattenRange ( Rng &  rng)
template<typename Rng >
FlattenRangeType<const Rng>::type capd::homAux::MakeFlattenRange ( const Rng &  rng)
template<class F >
FunctionObject<F> capd::homAux::MakeFunctionObject ( f)
template<typename K , typename V , typename Functor >
auto capd::homAux::MakeFunctorPropertyMap ( Functor  functor)
template<typename Range , typename Eq = std::equal_to<typename boost::unwrap_reference<Range>::type::value_type>>
GroupedRange<Range, Eq> capd::homAux::MakeGroupedRange ( Range  range,
Eq  eq = Eq() 
)
template<typename Rng >
auto capd::homAux::MakeGroupedRangeByKey ( Rng  rng)
template<typename Rng , typename Eq = std::equal_to<typename Rng::value_type>>
GroupedRange<boost::reference_wrapper<const Rng>, Eq> capd::homAux::MakeGroupIndicesBy ( const Rng &  rng,
Eq  eq = Eq() 
)
template<typename Rng , typename Eq = std::equal_to<typename Rng::value_type>>
GroupedRange<boost::reference_wrapper<Rng>, Eq> capd::homAux::MakeGroupIndicesBy ( Rng &  rng,
Eq  eq = Eq() 
)
template<typename Rng >
auto capd::homAux::MakeGroupIndicesByKey ( const Rng &  rng)
template<typename Rng >
auto capd::homAux::MakeGroupIndicesByKey ( Rng &  rng)
template<typename MultiValuedFunction , typename Iterator >
MultiValuedTransformRange<MultiValuedFunction, Iterator> capd::homAux::makeMultiValuedTransformRange ( Iterator  begin,
Iterator  end,
MultiValuedFunction  func = MultiValuedFunction() 
)
template<typename T0 , typename T1 >
PackedPair<T0, T1> capd::homAux::MakePackedPair ( const T0 &  t0,
const T1 &  t1 
)
template<typename Rng , typename Pred >
RedefinedFilteredIteratorRange<Rng, Pred> capd::homAux::MakeRedefinedFilteredIteratorRange ( Rng  rng,
Pred  pred = Pred() 
)
template<typename Rng , typename Pred , typename F >
RedefinedFilteredTransformedIteratorRange<Rng, Pred, F> capd::homAux::MakeRedefinedFilteredTransformedIteratorRange ( Rng  rng,
Pred  pred = Pred(),
f = F() 
)
template<typename Rng >
RedefinedFlattenIteratorRange<Rng> capd::homAux::MakeRedefinedFlattenIteratorRange ( Rng  rng)
template<typename Rng , typename Func >
RedefinedIteratorRange<Rng, Func> capd::homAux::MakeRedefinedIteratorRange ( Rng  rng,
Func  func = Func() 
)
template<typename Rng1 , typename Rng2 >
RedefinedJoinedIteratorRange<Rng1, Rng2> capd::homAux::MakeRedefinedJoinedIteratorRange ( Rng1  rng1,
Rng2  rng2 
)
template<typename Rng , typename F >
RedefinedTransformedIteratorRange<Rng, F> capd::homAux::MakeRedefinedTransformedIteratorRange ( Rng  rng,
f = F() 
)
template<typename Rng >
SafeIteratorPairType<Rng>::type capd::homAux::MakeSafeIteratorPair ( Rng  rng)
template<typename Rng , typename Eq = std::equal_to<>>
FixedSet<typename boost::range_value<Rng>::type> capd::homAux::MakeSet ( const Rng &  rng,
Eq  eq = Eq() 
)
template<typename Rng , typename Cmp = std::less<typename Rng::value_type>>
SortedIndices<Rng, Cmp> capd::homAux::MakeSortedIndices ( Rng &  rng,
Cmp  cmp = Cmp() 
)
template<typename Value , typename ValueF , typename AssignF >
auto capd::homAux::MakeValueProxy ( ValueF  valueF,
AssignF  assignF 
)
template<typename Ret , typename Func >
Wrap1<Func, Ret> capd::homAux::makeWrap1 ( const Func &  func)
template<typename Rng >
MapValuesType<Rng>::type capd::homAux::MapValues ( Rng &  rng)
template<typename Rng >
MapValuesType<const Rng>::type capd::homAux::MapValues ( const Rng &  rng)
constexpr Byte capd::homAux::operator+ ( Byte  b,
int  x 
)
inline
Byte capd::homAux::operator++ ( Byte b,
int   
)
inline
Byte& capd::homAux::operator++ ( Byte b)
inline
Byte& capd::homAux::operator+= ( Byte b,
int  x 
)
inline
constexpr Byte capd::homAux::operator- ( Byte  b,
int  x 
)
inline
Byte capd::homAux::operator-- ( Byte b,
int   
)
inline
Byte& capd::homAux::operator-- ( Byte b)
inline
Byte& capd::homAux::operator-= ( Byte b,
int  x 
)
inline
template<typename T >
std::ostream& capd::homAux::operator<< ( std::ostream &  out,
const capd::homAux::Wrapper< T > &  v 
)
template<typename Rng , typename Func >
std::ostream& capd::homAux::operator<< ( std::ostream &  out,
const RedefinedIteratorRange< Rng, Func > &  rng 
)
template<typename K , typename V , typename Functor >
auto capd::homAux::put ( const FunctorPropertyMap< K, V, Functor > &  p,
const K &  k,
const V &  v 
)
inline
template<typename T >
RandomAccessAsRangeType<T>::type capd::homAux::RandomAccessAsRange ( T &  ra)
template<typename T >
RandomAccessAsRangeType<const T, typename T::const_reference>::type capd::homAux::RandomAccessAsRange ( const T &  ra)
template<typename T1 , typename T2 >
decltype(boost::irange(static_cast<T2>(0), static_cast<T2>(0))) capd::homAux::Range ( T1  b,
T2  e 
)
template<typename T >
boost::iterator_range<impl::NumericIteratorWithStep<T> > capd::homAux::Range ( first,
size_t  numberOfSteps,
stepSize 
)
template<size_t Len, typename T >
boost::array<T, Len> capd::homAux::RangeToArray ( const std::initializer_list< T > &  rng)
template<typename Rng >
void capd::homAux::RangeToVector ( std::vector< typename boost::range_value< Rng >::type > &  v,
const Rng &  rng 
)
template<typename Rng >
std::vector<typename boost::range_value<Rng>::type> capd::homAux::RangeToVector ( const Rng &  rng)
template<typename T >
std::vector<T> capd::homAux::RangeToVector ( const std::initializer_list< T > &  rng)
template<typename T >
void capd::homAux::Shrink ( std::vector< T > &  v,
const T &  last = T(0) 
)
template<typename T >
std::array<T, 1> capd::homAux::Singleton ( const T &  t)
template<typename Rng >
std::vector<typename boost::range_value<Rng>::type> capd::homAux::Sorted ( const Rng &  rng)
template<typename Func , typename SizeFunc >
auto capd::homAux::StoreMultiValuedOutput ( size_t  inputSize,
Func  func,
SizeFunc  sizeFunc,
int  rangeAlgorithmsModel = RangeAlgorithms<>::DefaultModel() 
)
template<typename Func >
auto capd::homAux::StoreMultiValuedOutput ( size_t  inputSize,
Func  func = Func(),
int  rangeAlgorithmsModel = RangeAlgorithms<>::DefaultModel() 
)
template<typename T >
std::string capd::homAux::ToS ( const T &  x)
template<typename T >
T capd::homAux::TruncateNumber ( v,
unsigned int  Digits 
)
template<typename S1 , typename S2 >
FixedSet<typename boost::range_value<S1>::type> capd::homAux::Union ( const S1 &  s1,
const S2 &  s2 
)
template<typename Rng >
boost::range_iterator<Rng>::type capd::homAux::UpperBoundByKey ( Rng &  rng,
const typename boost::range_value< Rng >::type::first_type &  key 
)
template<typename T >
std::vector<T> capd::homAux::VectorFromString ( const std::string &  s)