NDDEM
GenericPacketMathFunctionsFwd.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) 2019 Gael Guennebaud <gael.guennebaud@inria.fr>
5 //
6 // This Source Code Form is subject to the terms of the Mozilla
7 // Public License v. 2.0. If a copy of the MPL was not distributed
8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 
10 #ifndef EIGEN_ARCH_GENERIC_PACKET_MATH_FUNCTIONS_FWD_H
11 #define EIGEN_ARCH_GENERIC_PACKET_MATH_FUNCTIONS_FWD_H
12 
13 namespace Eigen {
14 namespace internal {
15 
16 // Forward declarations of the generic math functions
17 // implemented in GenericPacketMathFunctions.h
18 // This is needed to workaround a circular dependency.
19 
20 /***************************************************************************
21  * Some generic implementations to be used by implementors
22 ***************************************************************************/
23 
27 template<typename Packet> EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC
28 Packet pfrexp_generic(const Packet& a, Packet& exponent);
29 
30 // Extracts the biased exponent value from Packet p, and casts the results to
31 // a floating-point Packet type. Used by pfrexp_generic. Override this if
32 // there is no unpacket_traits<Packet>::integer_packet.
33 template<typename Packet> EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC
34 Packet pfrexp_generic_get_biased_exponent(const Packet& p);
35 
39 template<typename Packet> EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC
40 Packet pldexp_generic(const Packet& a, const Packet& exponent);
41 
43 template <typename Packet>
46 Packet plog_float(const Packet _x);
47 
49 template <typename Packet>
52 Packet plog2_float(const Packet _x);
53 
55 template <typename Packet>
58 Packet plog_double(const Packet _x);
59 
61 template <typename Packet>
64 Packet plog2_double(const Packet _x);
65 
67 template<typename Packet>
68 Packet generic_plog1p(const Packet& x);
69 
71 template<typename Packet>
72 Packet generic_expm1(const Packet& x);
73 
75 template <typename Packet>
78 Packet pexp_float(const Packet _x);
79 
81 template <typename Packet>
84 Packet pexp_double(const Packet _x);
85 
87 template<typename Packet>
90 Packet psin_float(const Packet& x);
91 
93 template<typename Packet>
96 Packet pcos_float(const Packet& x);
97 
99 template<typename Packet>
102 Packet psqrt_complex(const Packet& a);
103 
104 template <typename Packet, int N> struct ppolevl;
105 
106 
107 } // end namespace internal
108 } // end namespace Eigen
109 
110 #endif // EIGEN_ARCH_GENERIC_PACKET_MATH_FUNCTIONS_FWD_H
#define EIGEN_UNUSED
Definition: Macros.h:1067
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:976
#define EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
Definition: Macros.h:985
#define EIGEN_STRONG_INLINE
Definition: Macros.h:917
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet plog2_float(const Packet _x)
Definition: GenericPacketMathFunctions.h:262
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet pexp_double(const Packet _x)
Definition: GenericPacketMathFunctions.h:490
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet psin_float(const Packet &x)
Definition: GenericPacketMathFunctions.h:747
Packet generic_plog1p(const Packet &x)
Definition: GenericPacketMathFunctions.h:392
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet pcos_float(const Packet &x)
Definition: GenericPacketMathFunctions.h:755
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet plog2_double(const Packet _x)
Definition: GenericPacketMathFunctions.h:383
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet psqrt_complex(const Packet &a)
Definition: GenericPacketMathFunctions.h:764
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet plog_float(const Packet _x)
Definition: GenericPacketMathFunctions.h:254
EIGEN_STRONG_INLINE Packet4d pfrexp_generic_get_biased_exponent(const Packet4d &a)
Definition: PacketMath.h:743
Packet generic_expm1(const Packet &x)
Definition: GenericPacketMathFunctions.h:408
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet plog_double(const Packet _x)
Definition: GenericPacketMathFunctions.h:375
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Packet pldexp_generic(const Packet &a, const Packet &exponent)
Definition: GenericPacketMathFunctions.h:85
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Packet pfrexp_generic(const Packet &a, Packet &exponent)
Definition: GenericPacketMathFunctions.h:40
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet pexp_float(const Packet _x)
Definition: GenericPacketMathFunctions.h:439
Namespace containing all symbols from the Eigen library.
Definition: LDLT.h:16
Definition: document.h:416
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1181