SUNphi  1.0
IntListOrder.hpp File Reference

Implements order check and operations on integer list. More...

Go to the source code of this file.

Macros

#define FIRST_OF   0
 Constant used to parse first-occurrency case.
 
#define LAST_OF   1
 Constant used to parse last-occurrency case.
 
#define DEFINE_SEARCH(DESCRIPTION, FIRST_OR_LAST, NAME, COMPA)
 Defines a searcher named NAME making the comparison COMPA with an external I.
 

Functions

template<bool AlsoEqual, int First, int Second, int... Tail>
constexpr bool SUNphi::_areOrderedMin2Ints ()
 
template<bool AlsoEqual, int... Ints>
constexpr bool SUNphi::_areOrdered ()
 
template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_firstNon ()
 
template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_lastNon ()
 
template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_firstEq ()
 
template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_lastEq ()
 
template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_firstSmaller ()
 
template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_lastSmaller ()
 
template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_firsLarger ()
 
template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_lastLarger ()
 

Variables

template<int... Ints>
constexpr bool SUNphi::areOrdered
 Returns true if all elements are ascending-ordered and different. More...
 
template<int... Ints>
constexpr bool SUNphi::areOrderedAndDifferent
 Returns true if all elements are weak ascending-ordered. More...
 
template<int I, int... Ints>
constexpr int SUNphi::firstNon = _firstNon <I,sizeof...(Ints),0,Ints...>()
 
template<int I>
constexpr int SUNphi::firstNon< I > = 0
 
template<int I, int... Ints>
constexpr int SUNphi::lastNon = _lastNon <I,sizeof...(Ints),0,Ints...>()
 
template<int I>
constexpr int SUNphi::lastNon< I > = 0
 
template<int I, int... Ints>
constexpr int SUNphi::firstEq = _firstEq <I,sizeof...(Ints),0,Ints...>()
 
template<int I>
constexpr int SUNphi::firstEq< I > = 0
 
template<int I, int... Ints>
constexpr int SUNphi::lastEq = _lastEq <I,sizeof...(Ints),0,Ints...>()
 
template<int I>
constexpr int SUNphi::lastEq< I > = 0
 
template<int I, int... Ints>
constexpr int SUNphi::firstSmaller = _firstSmaller <I,sizeof...(Ints),0,Ints...>()
 
template<int I>
constexpr int SUNphi::firstSmaller< I > = 0
 
template<int I, int... Ints>
constexpr int SUNphi::lastSmaller = _lastSmaller <I,sizeof...(Ints),0,Ints...>()
 
template<int I>
constexpr int SUNphi::lastSmaller< I > = 0
 
template<int I, int... Ints>
constexpr int SUNphi::firsLarger = _firsLarger <I,sizeof...(Ints),0,Ints...>()
 
template<int I>
constexpr int SUNphi::firsLarger< I > = 0
 
template<int I, int... Ints>
constexpr int SUNphi::lastLarger = _lastLarger <I,sizeof...(Ints),0,Ints...>()
 
template<int I>
constexpr int SUNphi::lastLarger< I > = 0
 

Detailed Description

Implements order check and operations on integer list.

Definition in file IntListOrder.hpp.

Function Documentation

template<bool AlsoEqual, int... Ints>
constexpr bool SUNphi::_areOrdered ( )

Compare a list of integer

If less than two elements are pased, returns true. Otherwise call the routine which operates on at least two integers

Definition at line 27 of file IntListOrder.hpp.

template<bool AlsoEqual, int First, int Second, int... Tail>
constexpr bool SUNphi::_areOrderedMin2Ints ( )

Compare the order of at least two integers

Return true if First<Second or First==Second (only if AlsoEqual==true). Call iteratively itself if more than two arguents are passed.

Definition at line 40 of file IntListOrder.hpp.

template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_firsLarger ( )

Returns the position of the first element larger than I

Internal implementation

Definition at line 118 of file IntListOrder.hpp.

template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_firstEq ( )

Returns the position of the first element equal to I

Internal implementation

Definition at line 112 of file IntListOrder.hpp.

template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_firstNon ( )

Returns the position of the first element different from I

Internal implementation

Definition at line 109 of file IntListOrder.hpp.

template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_firstSmaller ( )

Returns the position of the first element smaller than I

Internal implementation

Definition at line 115 of file IntListOrder.hpp.

template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_lastEq ( )

Returns the position of the last element equal to I

Internal implementation

Definition at line 113 of file IntListOrder.hpp.

template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_lastLarger ( )

Returns the position of the last element larger than I

Internal implementation

Definition at line 119 of file IntListOrder.hpp.

template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_lastNon ( )

Returns the position of the last element different from I

Internal implementation

Definition at line 110 of file IntListOrder.hpp.

template<int I, int Pos, int NParsed, int Head, int... Tail>
constexpr int SUNphi::_lastSmaller ( )

Returns the position of the last element smaller than I

Internal implementation

Definition at line 116 of file IntListOrder.hpp.

Variable Documentation

template<int... Ints>
constexpr bool SUNphi::areOrdered
Initial value:
=
_areOrdered<true,Ints...>()
constexpr bool _areOrdered()

Returns true if all elements are ascending-ordered and different.

Definition at line 50 of file IntListOrder.hpp.

template<int... Ints>
constexpr bool SUNphi::areOrderedAndDifferent
Initial value:
=
_areOrdered<false,Ints...>()
constexpr bool _areOrdered()

Returns true if all elements are weak ascending-ordered.

Definition at line 56 of file IntListOrder.hpp.

template<int I, int... Ints>
constexpr int SUNphi::firsLarger = _firsLarger <I,sizeof...(Ints),0,Ints...>()

Returns the position of the first element larger than I

General case

Definition at line 118 of file IntListOrder.hpp.

template<int I>
constexpr int SUNphi::firsLarger< I > = 0

Returns the position of the first element larger than I

Empty sequence case

Definition at line 118 of file IntListOrder.hpp.

template<int I, int... Ints>
constexpr int SUNphi::firstEq = _firstEq <I,sizeof...(Ints),0,Ints...>()

Returns the position of the first element equal to I

General case

Definition at line 112 of file IntListOrder.hpp.

template<int I>
constexpr int SUNphi::firstEq< I > = 0

Returns the position of the first element equal to I

Empty sequence case

Definition at line 112 of file IntListOrder.hpp.

template<int I, int... Ints>
constexpr int SUNphi::firstNon = _firstNon <I,sizeof...(Ints),0,Ints...>()

Returns the position of the first element different from I

General case

Definition at line 109 of file IntListOrder.hpp.

template<int I>
constexpr int SUNphi::firstNon< I > = 0

Returns the position of the first element different from I

Empty sequence case

Definition at line 109 of file IntListOrder.hpp.

template<int I, int... Ints>
constexpr int SUNphi::firstSmaller = _firstSmaller <I,sizeof...(Ints),0,Ints...>()

Returns the position of the first element smaller than I

General case

Definition at line 115 of file IntListOrder.hpp.

template<int I>
constexpr int SUNphi::firstSmaller< I > = 0

Returns the position of the first element smaller than I

Empty sequence case

Definition at line 115 of file IntListOrder.hpp.

template<int I, int... Ints>
constexpr int SUNphi::lastEq = _lastEq <I,sizeof...(Ints),0,Ints...>()

Returns the position of the last element equal to I

General case

Definition at line 113 of file IntListOrder.hpp.

template<int I>
constexpr int SUNphi::lastEq< I > = 0

Returns the position of the last element equal to I

Empty sequence case

Definition at line 113 of file IntListOrder.hpp.

template<int I, int... Ints>
constexpr int SUNphi::lastLarger = _lastLarger <I,sizeof...(Ints),0,Ints...>()

Returns the position of the last element larger than I

General case

Definition at line 119 of file IntListOrder.hpp.

template<int I>
constexpr int SUNphi::lastLarger< I > = 0

Returns the position of the last element larger than I

Empty sequence case

Definition at line 119 of file IntListOrder.hpp.

template<int I, int... Ints>
constexpr int SUNphi::lastNon = _lastNon <I,sizeof...(Ints),0,Ints...>()

Returns the position of the last element different from I

General case

Definition at line 110 of file IntListOrder.hpp.

template<int I>
constexpr int SUNphi::lastNon< I > = 0

Returns the position of the last element different from I

Empty sequence case

Definition at line 110 of file IntListOrder.hpp.

template<int I, int... Ints>
constexpr int SUNphi::lastSmaller = _lastSmaller <I,sizeof...(Ints),0,Ints...>()

Returns the position of the last element smaller than I

General case

Definition at line 116 of file IntListOrder.hpp.

template<int I>
constexpr int SUNphi::lastSmaller< I > = 0

Returns the position of the last element smaller than I

Empty sequence case

Definition at line 116 of file IntListOrder.hpp.