Please, help us to better know about our user community by answering the following short survey: https://forms.gle/wpyrxWi18ox9Z5ae9
Eigen  3.4.0
 
Loading...
Searching...
No Matches
GenericPacketMathFunctionsFwd.h
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
13namespace Eigen {
14namespace 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
27template<typename Packet> EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC
28Packet 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.
33template<typename Packet> EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC
34Packet pfrexp_generic_get_biased_exponent(const Packet& p);
35
39template<typename Packet> EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC
40Packet pldexp_generic(const Packet& a, const Packet& exponent);
41
43template <typename Packet>
44EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
45EIGEN_UNUSED
46Packet plog_float(const Packet _x);
47
49template <typename Packet>
50EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
51EIGEN_UNUSED
52Packet plog2_float(const Packet _x);
53
55template <typename Packet>
56EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
57EIGEN_UNUSED
58Packet plog_double(const Packet _x);
59
61template <typename Packet>
62EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
63EIGEN_UNUSED
64Packet plog2_double(const Packet _x);
65
67template<typename Packet>
68Packet generic_plog1p(const Packet& x);
69
71template<typename Packet>
72Packet generic_expm1(const Packet& x);
73
75template <typename Packet>
76EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
77EIGEN_UNUSED
78Packet pexp_float(const Packet _x);
79
81template <typename Packet>
82EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
83EIGEN_UNUSED
84Packet pexp_double(const Packet _x);
85
87template<typename Packet>
88EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
89EIGEN_UNUSED
90Packet psin_float(const Packet& x);
91
93template<typename Packet>
94EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
95EIGEN_UNUSED
96Packet pcos_float(const Packet& x);
97
99template<typename Packet>
100EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
101EIGEN_UNUSED
102Packet psqrt_complex(const Packet& a);
103
104template <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
Namespace containing all symbols from the Eigen library.
Definition: Core:141