Alexandria
2.25.0
SDC-CH common library for the Euclid project
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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
:
public
std::unary_function
<T, T> {
31
T
operator()
(T value)
const
{
32
return
value;
33
}
34
};
35
47
template
<
typename
R,
typename
T, R (*wrapped)(T)>
48
struct
UnaryWrapper
:
public
std::unary_function
<T, R> {
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
:
public
std::binary_function
<T, T, R> {
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::Identity::operator()
T operator()(T value) const
Definition:
Functors.h:31
Pyston::UnaryWrapper::operator()
R operator()(T value) const
Definition:
Functors.h:49
Pyston::BinaryWrapper
Definition:
Functors.h:66
Pyston::Identity
Definition:
Functors.h:30
std::unary_function
std::binary_function
Pyston::BinaryWrapper::operator()
R operator()(T left, T right) const
Definition:
Functors.h:67
Pyston::UnaryWrapper
Definition:
Functors.h:48
Generated by
1.8.5