23 #ifndef NIHU_ASYMPTOTIC_TYPES_HPP_INCLUDED
24 #define NIHU_ASYMPTOTIC_TYPES_HPP_INCLUDED
26 #include "../tmp/relation.hpp"
40 template <
unsigned order>
41 struct log : std::integral_constant<unsigned, order>
49 template <
unsigned order>
50 struct inverse : std::integral_constant<unsigned, order>
59 struct power : std::integral_constant<int, order>
68 template <
class SingularityType>
75 static unsigned const value = 1;
82 template <
unsigned order>
85 static unsigned const value = order+1;
94 static unsigned const value = -order+1;
103 template <
unsigned o1,
unsigned o2>
105 : std::integral_constant<bool, (o1 < o2) > {};
107 template <unsigned o1, unsigned o2>
108 struct greater<NiHu::asymptotic::log<o1>, NiHu::asymptotic::log<o2> >
109 : std::integral_constant<bool, (o1 > o2) > {};
111 template <
unsigned o1,
unsigned o2>
113 : std::integral_constant<bool, (o1 < o2) > {};
115 template <unsigned o1, unsigned o2>
116 struct greater<NiHu::asymptotic::inverse<o1>, NiHu::asymptotic::inverse<o2> >
117 : std::integral_constant<bool, (o1 > o2) > {};
119 template <
unsigned o1,
unsigned o2>
123 template <
unsigned o1,
unsigned o2>
125 : std::false_type {};
127 template <
unsigned o1,
unsigned o2>
129 : std::false_type {};
131 template <
unsigned o1,
unsigned o2>