10#ifndef EIGEN_ARCH_GENERIC_PACKET_MATH_FUNCTIONS_FWD_H
11#define EIGEN_ARCH_GENERIC_PACKET_MATH_FUNCTIONS_FWD_H
14#include "../../InternalHeaderCheck.h"
30template <
typename Packet>
31EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Packet pfrexp_generic(
const Packet& a, Packet& exponent);
36template <
typename Packet>
37EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Packet pfrexp_generic_get_biased_exponent(
const Packet& p);
42template <
typename Packet>
43EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Packet pldexp_generic(
const Packet& a,
const Packet& exponent);
54template <
typename Packet>
55EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Packet pldexp_fast(
const Packet& a,
const Packet& exponent);
58template <
typename Packet>
59EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pcbrt_float(
const Packet& x_in);
62template <
typename Packet>
63EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pcbrt_double(
const Packet& x_in);
66template <
typename Packet>
67EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog_float(
const Packet _x);
70template <
typename Packet>
71EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog2_float(
const Packet _x);
74template <
typename Packet>
75EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog_double(
const Packet _x);
78template <
typename Packet>
79EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog2_double(
const Packet _x);
82template <
typename Packet>
83EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet generic_log1p(
const Packet& x);
86template <
typename Packet>
87EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet generic_expm1(
const Packet& x);
90template <
typename Packet>
91EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet generic_atan(
const Packet& x);
94template <
typename Packet>
95EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet generic_exp2(
const Packet& x);
98template <
typename Packet>
99EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pexp_float(
const Packet _x);
102template <
typename Packet>
103EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pexp_double(
const Packet _x);
106template <
typename Packet>
107EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet psin_float(
const Packet& x);
110template <
typename Packet>
111EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pcos_float(
const Packet& x);
114template <
typename Packet>
115EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet psin_double(
const Packet& x);
118template <
typename Packet>
119EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pcos_double(
const Packet& x);
122template <
typename Packet>
123EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pasin_float(
const Packet& x);
126template <
typename Packet>
127EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pacos_float(
const Packet& x);
130template <
typename Packet>
131EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet ptanh_float(
const Packet& x);
134template <
typename Packet>
135EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet ptanh_double(
const Packet& x);
138template <
typename Packet>
139EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet patanh_float(
const Packet& x);
142template <
typename Packet>
143EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet patanh_double(
const Packet& x);
146template <
typename Packet>
147EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet psqrt_complex(
const Packet& a);
150template <
typename Packet>
151EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pdiv_complex(
const Packet& x,
const Packet& y);
153template <
typename Packet,
int N>
157template <
typename Packet>
158EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet plog_complex(
const Packet& x);
161template <
typename Packet>
162EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pexp_complex(
const Packet& x);
164template <
typename Packet>
165EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet generic_rint(
const Packet& a);
167template <
typename Packet>
168EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet generic_floor(
const Packet& a);
170template <
typename Packet>
171EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet generic_ceil(
const Packet& a);
173template <
typename Packet>
174EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet generic_trunc(
const Packet& a);
176template <
typename Packet>
177EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet generic_round(
const Packet& a);
180#define EIGEN_PACKET_FUNCTION(METHOD, SCALAR, PACKET) \
182 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC EIGEN_UNUSED PACKET p##METHOD<PACKET>(const PACKET& _x) { \
183 return p##METHOD##_##SCALAR(_x); \
187#define EIGEN_GENERIC_PACKET_FUNCTION(METHOD, PACKET) \
189 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC EIGEN_UNUSED PACKET p##METHOD<PACKET>(const PACKET& _x) { \
190 return generic_##METHOD(_x); \
193#define EIGEN_FLOAT_PACKET_FUNCTION(METHOD, PACKET) EIGEN_PACKET_FUNCTION(METHOD, float, PACKET)
194#define EIGEN_DOUBLE_PACKET_FUNCTION(METHOD, PACKET) EIGEN_PACKET_FUNCTION(METHOD, double, PACKET)
196#define EIGEN_INSTANTIATE_GENERIC_MATH_FUNCS_FLOAT(PACKET) \
197 EIGEN_FLOAT_PACKET_FUNCTION(sin, PACKET) \
198 EIGEN_FLOAT_PACKET_FUNCTION(cos, PACKET) \
199 EIGEN_FLOAT_PACKET_FUNCTION(asin, PACKET) \
200 EIGEN_FLOAT_PACKET_FUNCTION(acos, PACKET) \
201 EIGEN_FLOAT_PACKET_FUNCTION(tanh, PACKET) \
202 EIGEN_FLOAT_PACKET_FUNCTION(atanh, PACKET) \
203 EIGEN_FLOAT_PACKET_FUNCTION(log, PACKET) \
204 EIGEN_FLOAT_PACKET_FUNCTION(log2, PACKET) \
205 EIGEN_FLOAT_PACKET_FUNCTION(exp, PACKET) \
206 EIGEN_FLOAT_PACKET_FUNCTION(cbrt, PACKET) \
207 EIGEN_GENERIC_PACKET_FUNCTION(expm1, PACKET) \
208 EIGEN_GENERIC_PACKET_FUNCTION(exp2, PACKET) \
209 EIGEN_GENERIC_PACKET_FUNCTION(log1p, PACKET) \
210 EIGEN_GENERIC_PACKET_FUNCTION(atan, PACKET)
212#define EIGEN_INSTANTIATE_GENERIC_MATH_FUNCS_DOUBLE(PACKET) \
213 EIGEN_DOUBLE_PACKET_FUNCTION(atanh, PACKET) \
214 EIGEN_DOUBLE_PACKET_FUNCTION(log, PACKET) \
215 EIGEN_DOUBLE_PACKET_FUNCTION(sin, PACKET) \
216 EIGEN_DOUBLE_PACKET_FUNCTION(cos, PACKET) \
217 EIGEN_DOUBLE_PACKET_FUNCTION(log2, PACKET) \
218 EIGEN_DOUBLE_PACKET_FUNCTION(exp, PACKET) \
219 EIGEN_DOUBLE_PACKET_FUNCTION(tanh, PACKET) \
220 EIGEN_DOUBLE_PACKET_FUNCTION(cbrt, PACKET) \
221 EIGEN_GENERIC_PACKET_FUNCTION(atan, PACKET) \
222 EIGEN_GENERIC_PACKET_FUNCTION(exp2, PACKET)
Namespace containing all symbols from the Eigen library.
Definition B01_Experimental.dox:1