Speclib  0.1.2
The library for writing better CUDA libraries

A set of integers. More...

Classes

class  sp::integer_set< Members >
 A set of integers, based on sorted lists. More...
 

Macros

#define HANDY_SHORTHANDS(N, T)
 

Typedefs

template<int ... Ns>
using sp::int_set = sp::integer_set< sp::integer_sequence< int, Ns... > >
 
template<char ... Ns>
using sp::char_set = sp::integer_set< sp::integer_sequence< char, Ns... > >
 
template<char16_t ... Ns>
using sp::char16_set = sp::integer_set< sp::integer_sequence< char16_t, Ns... > >
 
template<char32_t ... Ns>
using sp::char32_set = sp::integer_set< sp::integer_sequence< char32_t, Ns... > >
 
template<uint32_t ... Ns>
using sp::uint32_set = sp::integer_set< sp::integer_sequence< uint32_t, Ns... > >
 
template<int32_t ... Ns>
using sp::int32_set = sp::integer_set< sp::integer_sequence< int32_t, Ns... > >
 
template<uint64_t ... Ns>
using sp::uint64_set = sp::integer_set< sp::integer_sequence< uint64_t, Ns... > >
 
template<int64_t ... Ns>
using sp::int64_set = sp::integer_set< sp::integer_sequence< int64_t, Ns... > >
 
template<typename T >
using sp::AsStaticSet = integer_set< typename T::template sort<>::template sortedUnique<> >
 Convert an arbitrary list to a set. This is very expensive. More...
 

Functions

template<typename T , T... LHS, T... RHS>
constexpr bool sp::operator> (const integer_set< integer_sequence< T, LHS... > > &&, const integer_set< integer_sequence< T, RHS... > > &&)
 Ordering on integer sets is simple enough: larger sets are "greater", and within sets of the same size we just check for a larger corresponding element. More...
 
template<typename LHSMembers , typename RHSMembers >
constexpr auto sp::operator- (integer_set< LHSMembers > &&, integer_set< RHSMembers > &&)
 
template<typename LHSMembers , typename RHSMembers >
constexpr auto sp::operator| (integer_set< LHSMembers > &&, integer_set< RHSMembers > &&)
 
template<typename LHSMembers , typename RHSMembers >
constexpr auto sp::operator& (integer_set< LHSMembers > &&, integer_set< RHSMembers > &&)
 

Detailed Description

A set of integers.

Macro Definition Documentation

◆ HANDY_SHORTHANDS

#define HANDY_SHORTHANDS (   N,
 
)
Value:
template<T... Ns> \
using N ## _set = sp::integer_set<sp::integer_sequence<T, Ns...>>; \
Encodes a sequence of integral type T.
Definition: integer_sequence.hpp:113
A set of integers, based on sorted lists.
Definition: integer_set.hpp:56

Typedef Documentation

◆ AsStaticSet

template<typename T >
using sp::AsStaticSet = typedef integer_set<typename T::template sort<>::template sortedUnique<> >

Convert an arbitrary list to a set. This is very expensive.

Function Documentation

◆ operator>()

template<typename T , T... LHS, T... RHS>
constexpr bool sp::operator> ( const integer_set< integer_sequence< T, LHS... > > &&  ,
const integer_set< integer_sequence< T, RHS... > > &&   
)
constexpr

Ordering on integer sets is simple enough: larger sets are "greater", and within sets of the same size we just check for a larger corresponding element.