TR-mbed 1.0
Loading...
Searching...
No Matches
BesselFunctionsFunctors.h
Go to the documentation of this file.
1// This file is part of Eigen, a lightweight C++ template library
2// for linear algebra.
3//
4// Copyright (C) 2016 Eugene Brevdo <ebrevdo@gmail.com>
5// Copyright (C) 2016 Gael Guennebaud <gael.guennebaud@inria.fr>
6//
7// This Source Code Form is subject to the terms of the Mozilla
8// Public License v. 2.0. If a copy of the MPL was not distributed
9// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10
11#ifndef EIGEN_BESSELFUNCTIONS_FUNCTORS_H
12#define EIGEN_BESSELFUNCTIONS_FUNCTORS_H
13
14namespace Eigen {
15
16namespace internal {
17
23template <typename Scalar>
35template <typename Scalar>
37 enum {
38 // On average, a Chebyshev polynomial of order N=20 is computed.
39 // The cost is N multiplications and 2N additions. We also add
40 // the cost of an additional exp over i0e.
43 };
44};
45
51template <typename Scalar>
63template <typename Scalar>
65 enum {
66 // On average, a Chebyshev polynomial of order N=20 is computed.
67 // The cost is N multiplications and 2N additions.
70 };
71};
72
78template <typename Scalar>
90template <typename Scalar>
92 enum {
93 // On average, a Chebyshev polynomial of order N=20 is computed.
94 // The cost is N multiplications and 2N additions. We also add
95 // the cost of an additional exp over i1e.
98 };
99};
100
106template <typename Scalar>
118template <typename Scalar>
120 enum {
121 // On average, a Chebyshev polynomial of order N=20 is computed.
122 // The cost is N multiplications and 2N additions.
125 };
126};
127
133template <typename Scalar>
145template <typename Scalar>
147 enum {
148 // 6 polynomial of order ~N=8 is computed.
149 // The cost is N multiplications and N additions each, along with a
150 // sine, cosine and rsqrt cost.
153 };
154};
155
161template <typename Scalar>
173template <typename Scalar>
175 enum {
176 // 6 polynomial of order ~N=8 is computed.
177 // The cost is N multiplications and N additions each, along with a
178 // sine, cosine, rsqrt and j0 cost.
181 };
182};
183
189template <typename Scalar>
201template <typename Scalar>
203 enum {
204 // 6 polynomial of order ~N=8 is computed.
205 // The cost is N multiplications and N additions each, along with a
206 // sine, cosine and rsqrt cost.
209 };
210};
211
217template <typename Scalar>
229template <typename Scalar>
231 enum {
232 // 6 polynomial of order ~N=8 is computed.
233 // The cost is N multiplications and N additions each, along with a
234 // sine, cosine, rsqrt and j1 cost.
237 };
238};
239
245template <typename Scalar>
257template <typename Scalar>
259 enum {
260 // On average, a Chebyshev polynomial of order N=10 is computed.
261 // The cost is N multiplications and 2N additions. In addition we compute
262 // i0, a log, exp and prsqrt and sin and cos.
265 };
266};
267
273template <typename Scalar>
285template <typename Scalar>
287 enum {
288 // On average, a Chebyshev polynomial of order N=10 is computed.
289 // The cost is N multiplications and 2N additions. In addition we compute
290 // i0, a log, exp and prsqrt and sin and cos.
293 };
294};
295
301template <typename Scalar>
313template <typename Scalar>
315 enum {
316 // On average, a Chebyshev polynomial of order N=10 is computed.
317 // The cost is N multiplications and 2N additions. In addition we compute
318 // i1, a log, exp and prsqrt and sin and cos.
321 };
322};
323
329template <typename Scalar>
341template <typename Scalar>
343 enum {
344 // On average, a Chebyshev polynomial of order N=10 is computed.
345 // The cost is N multiplications and 2N additions. In addition we compute
346 // i1, a log, exp and prsqrt and sin and cos.
349 };
350};
351
352
353} // end namespace internal
354
355} // end namespace Eigen
356
357#endif // EIGEN_BESSELFUNCTIONS_FUNCTORS_H
#define EIGEN_DEVICE_FUNC
Definition Macros.h:976
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
#define EIGEN_EMPTY_STRUCT_CTOR(X)
Definition XprHelper.h:22
SCALAR Scalar
Definition bench_gemm.cpp:46
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
Definition gnuplot_common_settings.hh:12
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i0(const Packet &x)
Definition BesselFunctionsPacketMath.h:21
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i1e(const Packet &x)
Definition BesselFunctionsPacketMath.h:45
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i0e(const Packet &x)
Definition BesselFunctionsPacketMath.h:29
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k1e(const Packet &x)
Definition BesselFunctionsPacketMath.h:109
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_j1(const Packet &x)
Definition BesselFunctionsPacketMath.h:61
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k0(const Packet &x)
Definition BesselFunctionsPacketMath.h:85
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_y0(const Packet &x)
Definition BesselFunctionsPacketMath.h:69
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i1(const Packet &x)
Definition BesselFunctionsPacketMath.h:37
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k1(const Packet &x)
Definition BesselFunctionsPacketMath.h:101
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_y1(const Packet &x)
Definition BesselFunctionsPacketMath.h:77
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k0e(const Packet &x)
Definition BesselFunctionsPacketMath.h:93
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_j0(const Packet &x)
Definition BesselFunctionsPacketMath.h:53
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_j0_op< typename Derived::Scalar >, const Derived > bessel_j0(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:212
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_k1e_op< typename Derived::Scalar >, const Derived > bessel_k1e(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:190
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_k1_op< typename Derived::Scalar >, const Derived > bessel_k1(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:167
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_i1e_op< typename Derived::Scalar >, const Derived > bessel_i1e(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:100
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_i1_op< typename Derived::Scalar >, const Derived > bessel_i1(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:77
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_y0_op< typename Derived::Scalar >, const Derived > bessel_y0(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:234
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_y1_op< typename Derived::Scalar >, const Derived > bessel_y1(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:278
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_i0e_op< typename Derived::Scalar >, const Derived > bessel_i0e(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:55
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_i0_op< typename Derived::Scalar >, const Derived > bessel_i0(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:32
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_j1_op< typename Derived::Scalar >, const Derived > bessel_j1(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:256
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_k0_op< typename Derived::Scalar >, const Derived > bessel_k0(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:122
EIGEN_STRONG_INLINE const Eigen::CwiseUnaryOp< Eigen::internal::scalar_bessel_k0e_op< typename Derived::Scalar >, const Derived > bessel_k0e(const Eigen::ArrayBase< Derived > &x)
Definition BesselFunctionsArrayAPI.h:145
Definition BandTriangularSolver.h:13
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition NumTraits.h:233
Definition XprHelper.h:176
@ PacketAccess
Definition XprHelper.h:180
@ Cost
Definition XprHelper.h:179
Definition GenericPacketMath.h:107
Definition BesselFunctionsFunctors.h:24
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:31
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:30
Definition BesselFunctionsFunctors.h:52
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:58
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:59
Definition BesselFunctionsFunctors.h:79
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:85
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:86
Definition BesselFunctionsFunctors.h:107
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:114
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:113
Definition BesselFunctionsFunctors.h:134
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:140
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:141
Definition BesselFunctionsFunctors.h:190
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:196
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:197
Definition BesselFunctionsFunctors.h:246
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:252
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:253
Definition BesselFunctionsFunctors.h:274
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:281
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:280
Definition BesselFunctionsFunctors.h:302
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:309
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:308
Definition BesselFunctionsFunctors.h:330
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:337
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:336
Definition BesselFunctionsFunctors.h:162
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:168
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:169
Definition BesselFunctionsFunctors.h:218
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet &x) const
Definition BesselFunctionsFunctors.h:225
packet_traits< Scalar >::type Packet
Definition BesselFunctionsFunctors.h:224
Definition ForwardDeclarations.h:17