SUNphi
1.0
|
#include <ints/IntListOrder.hpp>
#include <ints/IntSeq.hpp>
#include <ints/Ranges.hpp>
#include <metaprogramming/UniversalReferences.hpp>
Go to the source code of this file.
Typedefs | |
template<int Ins, typename IS , int IncrAft = 0, bool IgnoreIfPresent = false> | |
using | SUNphi::InsertInOrderedIntSeq = decltype(_insertInOrderedIntSeq< Ins, IncrAft, IgnoreIfPresent >(intSeq<>, typename ConstrainIsOrderedIntSeq< IS >::type{})) |
template<typename ToIns , typename Is , typename IncrAft = IntSeqOfSameNumb<ToIns::size,0>, bool IgnoreIfPresent = false, typename = EnableIf<isIntSeq<ToIns> and isIntSeq<IncrAft> and ToIns::size==IncrAft::size>> | |
using | SUNphi::InsertIntSeqInOrderedIntSeq = decltype(_InsertIntSeqInOrderedIntSeq< IgnoreIfPresent >(ToIns{}, IncrAft{}, Is{})) |
Insert the elements of the IntSeq Is in an ordered IntSeq. | |
Functions | |
template<int Ins, int IncrAft, bool IgnoreIfPresent, int... Bef, int HeadAft, int... TailAft> | |
decltype(auto) | SUNphi::_insertInOrderedIntSeq (const IntSeq< Bef... > &, const IntSeq< HeadAft, TailAft... > &) |
template<int Ins, int IncrAft, bool IgnoreIfPresent> | |
decltype(auto) | SUNphi::_insertInOrderedIntSeq (const IntSeq<> &, const IntSeq<> &) |
Insert the integer Ins in a previously empty IntSeq. | |
template<bool IgnoreIfPresent, int HeadToIns, int... TailToIns, int HeadIncrAft, int... TailIncrAft, typename Is > | |
decltype(auto) | SUNphi::_InsertIntSeqInOrderedIntSeq (const IntSeq< HeadToIns, TailToIns... > &toIns, const IntSeq< HeadIncrAft, TailIncrAft... > &incrAft, const Is &) |
template<bool IgnoreIfPresent, typename Is > | |
decltype(auto) | SUNphi::_InsertIntSeqInOrderedIntSeq (const IntSeq<> &noIns, const IntSeq<> &noIncrAft, const Is &) |
using SUNphi::InsertInOrderedIntSeq = typedef decltype(_insertInOrderedIntSeq<Ins,IncrAft,IgnoreIfPresent>(intSeq<>,typename ConstrainIsOrderedIntSeq<IS>::type{})) |
Insert the integer Ins in an ordered IntSeq
The elements after are incremented by IncrAft. The insertion is ignored if IgnoreIfPresent is true. Examples:
Definition at line 68 of file IntSeqInsert.hpp.
decltype(auto) SUNphi::_insertInOrderedIntSeq | ( | const IntSeq< Bef... > & | , |
const IntSeq< HeadAft, TailAft... > & | |||
) |
Insert the integer Ins in order of HeadAft,TailAft...
Technically, the two IntSeq do not have to be ordered, the insertion is done when HeadAft is larger than Ins. The elements after are incremented by IncrAft. The insertion is ignored if IgnoreIfPresent is true.
Definition at line 25 of file IntSeqInsert.hpp.
decltype(auto) SUNphi::_InsertIntSeqInOrderedIntSeq | ( | const IntSeq< HeadToIns, TailToIns... > & | toIns, |
const IntSeq< HeadIncrAft, TailIncrAft... > & | incrAft, | ||
const Is & | |||
) |
Insert the elements of the IntSeq Is in an ordered IntSeq
Internal implementation
Definition at line 81 of file IntSeqInsert.hpp.
decltype(auto) SUNphi::_InsertIntSeqInOrderedIntSeq | ( | const IntSeq<> & | noIns, |
const IntSeq<> & | noIncrAft, | ||
const Is & | |||
) |
Insert the elements of the IntSeq Is in an ordered IntSeq
Internal implementation, empty case
Definition at line 101 of file IntSeqInsert.hpp.