Alexandria
2.31.0
SDC-CH common library for the Euclid project
Loading...
Searching...
No Matches
Pyston
Pyston
Graph
Functors.h
Go to the documentation of this file.
1
19
#ifndef PYSTON_FUNCTORS_H
20
#define PYSTON_FUNCTORS_H
21
22
#include <cmath>
23
24
namespace
Pyston
{
25
29
template
<
typename
T>
30
struct
Identity
{
31
T
operator()
(T value)
const
{
32
return
value;
33
}
34
};
35
47
template
<
typename
R,
typename
T, R (*wrapped)(T)>
48
struct
UnaryWrapper
{
49
R
operator()
(T value)
const
{
50
return
wrapped(value);
51
}
52
};
53
65
template
<
typename
R,
typename
T, R (*wrapped)(T, T)>
66
struct
BinaryWrapper
{
67
R
operator()
(T left, T right)
const
{
68
return
wrapped(left, right);
69
}
70
};
71
73
template
<
typename
T>
74
using
Pow
=
BinaryWrapper<T, T, std::pow>
;
75
77
template
<
typename
T>
78
using
Abs
=
UnaryWrapper<T, T, std::abs>
;
79
81
template
<
typename
T>
82
using
Round
=
UnaryWrapper<T, T, std::round>
;
83
85
template
<
typename
T>
86
using
Exp
=
UnaryWrapper<T, T, std::exp>
;
87
89
template
<
typename
T>
90
using
Exp2
=
UnaryWrapper<T, T, std::exp2>
;
91
93
template
<
typename
T>
94
using
Log
=
UnaryWrapper<T, T, std::log>
;
95
97
template
<
typename
T>
98
using
Log2
=
UnaryWrapper<T, T, std::log2>
;
99
101
template
<
typename
T>
102
using
Log10
=
UnaryWrapper<T, T, std::log10>
;
103
105
template
<
typename
T>
106
using
Sqrt
=
UnaryWrapper<T, T, std::sqrt>
;
107
109
template
<
typename
T>
110
using
Sin
=
UnaryWrapper<T, T, std::sin>
;
111
113
template
<
typename
T>
114
using
Cos
=
UnaryWrapper<T, T, std::cos>
;
115
117
template
<
typename
T>
118
using
Tan
=
UnaryWrapper<T, T, std::tan>
;
119
121
template
<
typename
T>
122
using
ArcSin
=
UnaryWrapper<T, T, std::asin>
;
123
125
template
<
typename
T>
126
using
ArcCos
=
UnaryWrapper<T, T, std::acos>
;
127
129
template
<
typename
T>
130
using
ArcTan
=
UnaryWrapper<T, T, std::atan>
;
131
133
template
<
typename
T>
134
using
Sinh
=
UnaryWrapper<T, T, std::sinh>
;
135
137
template
<
typename
T>
138
using
Cosh
=
UnaryWrapper<T, T, std::cosh>
;
139
141
template
<
typename
T>
142
using
Tanh
=
UnaryWrapper<T, T, std::tanh>
;
143
145
template
<
typename
T>
146
using
ArcSinh
=
UnaryWrapper<T, T, std::asinh>
;
147
149
template
<
typename
T>
150
using
ArcCosh
=
UnaryWrapper<T, T, std::acosh>
;
151
153
template
<
typename
T>
154
using
ArcTanh
=
UnaryWrapper<T, T, std::atanh>
;
155
157
template
<
typename
T>
158
using
ArcTan2
=
BinaryWrapper<T,T, std::atan2>
;
159
161
template
<
typename
T>
162
using
Fmod
=
BinaryWrapper<T, T, std::fmod>
;
163
164
}
// namespace Pyston
165
166
#endif
// PYSTON_FUNCTORS_H
Pyston
Definition
ExceptionRaiser.h:28
Pyston::BinaryWrapper
Definition
Functors.h:66
Pyston::BinaryWrapper::operator()
R operator()(T left, T right) const
Definition
Functors.h:67
Pyston::Identity
Definition
Functors.h:30
Pyston::Identity::operator()
T operator()(T value) const
Definition
Functors.h:31
Pyston::UnaryWrapper
Definition
Functors.h:48
Pyston::UnaryWrapper::operator()
R operator()(T value) const
Definition
Functors.h:49
Generated by
1.9.8