xref: /aosp_15_r20/external/eigen/unsupported/Eigen/SpecialFunctions (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li// This file is part of Eigen, a lightweight C++ template library
2*bf2c3715SXin Li// for linear algebra.
3*bf2c3715SXin Li//
4*bf2c3715SXin Li// Copyright (C) 2016 Gael Guennebaud <[email protected]>
5*bf2c3715SXin Li//
6*bf2c3715SXin Li// This Source Code Form is subject to the terms of the Mozilla
7*bf2c3715SXin Li// Public License v. 2.0. If a copy of the MPL was not distributed
8*bf2c3715SXin Li// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9*bf2c3715SXin Li
10*bf2c3715SXin Li#ifndef EIGEN_SPECIALFUNCTIONS_MODULE
11*bf2c3715SXin Li#define EIGEN_SPECIALFUNCTIONS_MODULE
12*bf2c3715SXin Li
13*bf2c3715SXin Li#include <math.h>
14*bf2c3715SXin Li
15*bf2c3715SXin Li#include "../../Eigen/Core"
16*bf2c3715SXin Li
17*bf2c3715SXin Li#include "../../Eigen/src/Core/util/DisableStupidWarnings.h"
18*bf2c3715SXin Li
19*bf2c3715SXin Linamespace Eigen {
20*bf2c3715SXin Li
21*bf2c3715SXin Li/**
22*bf2c3715SXin Li  * \defgroup SpecialFunctions_Module Special math functions module
23*bf2c3715SXin Li  *
24*bf2c3715SXin Li  * This module features additional coefficient-wise math functions available
25*bf2c3715SXin Li  * within the numext:: namespace for the scalar version, and as method and/or free
26*bf2c3715SXin Li  * functions of Array. Those include:
27*bf2c3715SXin Li  *
28*bf2c3715SXin Li  * - erf
29*bf2c3715SXin Li  * - erfc
30*bf2c3715SXin Li  * - lgamma
31*bf2c3715SXin Li  * - igamma
32*bf2c3715SXin Li  * - igamma_der_a
33*bf2c3715SXin Li  * - gamma_sample_der_alpha
34*bf2c3715SXin Li  * - igammac
35*bf2c3715SXin Li  * - digamma
36*bf2c3715SXin Li  * - ndtri
37*bf2c3715SXin Li  * - polygamma
38*bf2c3715SXin Li  * - zeta
39*bf2c3715SXin Li  * - betainc
40*bf2c3715SXin Li  *
41*bf2c3715SXin Li  * Bessel Functions
42*bf2c3715SXin Li  * - bessel_i0
43*bf2c3715SXin Li  * - bessel_i0e
44*bf2c3715SXin Li  * - bessel_i1
45*bf2c3715SXin Li  * - bessel_i1e
46*bf2c3715SXin Li  * - bessel_j0
47*bf2c3715SXin Li  * - bessel_j1
48*bf2c3715SXin Li  * - bessel_k0
49*bf2c3715SXin Li  * - bessel_k0e
50*bf2c3715SXin Li  * - bessel_k1
51*bf2c3715SXin Li  * - bessel_k1e
52*bf2c3715SXin Li  * - bessel_y0
53*bf2c3715SXin Li  * - bessel_y1
54*bf2c3715SXin Li  *
55*bf2c3715SXin Li  * \code
56*bf2c3715SXin Li  * #include <unsupported/Eigen/SpecialFunctions>
57*bf2c3715SXin Li  * \endcode
58*bf2c3715SXin Li  */
59*bf2c3715SXin Li//@{
60*bf2c3715SXin Li
61*bf2c3715SXin Li}
62*bf2c3715SXin Li
63*bf2c3715SXin Li#include "src/SpecialFunctions/BesselFunctionsImpl.h"
64*bf2c3715SXin Li#include "src/SpecialFunctions/BesselFunctionsBFloat16.h"
65*bf2c3715SXin Li#include "src/SpecialFunctions/BesselFunctionsHalf.h"
66*bf2c3715SXin Li#include "src/SpecialFunctions/BesselFunctionsPacketMath.h"
67*bf2c3715SXin Li#include "src/SpecialFunctions/BesselFunctionsFunctors.h"
68*bf2c3715SXin Li#include "src/SpecialFunctions/BesselFunctionsArrayAPI.h"
69*bf2c3715SXin Li#include "src/SpecialFunctions/SpecialFunctionsImpl.h"
70*bf2c3715SXin Li#if defined(EIGEN_HIPCC)
71*bf2c3715SXin Li#include "src/SpecialFunctions/HipVectorCompatibility.h"
72*bf2c3715SXin Li#endif
73*bf2c3715SXin Li#include "src/SpecialFunctions/SpecialFunctionsBFloat16.h"
74*bf2c3715SXin Li#include "src/SpecialFunctions/SpecialFunctionsHalf.h"
75*bf2c3715SXin Li#include "src/SpecialFunctions/SpecialFunctionsPacketMath.h"
76*bf2c3715SXin Li#include "src/SpecialFunctions/SpecialFunctionsFunctors.h"
77*bf2c3715SXin Li#include "src/SpecialFunctions/SpecialFunctionsArrayAPI.h"
78*bf2c3715SXin Li
79*bf2c3715SXin Li#if defined EIGEN_VECTORIZE_AVX512
80*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/AVX/BesselFunctions.h"
81*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/AVX/SpecialFunctions.h"
82*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/AVX512/BesselFunctions.h"
83*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/AVX512/SpecialFunctions.h"
84*bf2c3715SXin Li#elif defined EIGEN_VECTORIZE_AVX
85*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/AVX/BesselFunctions.h"
86*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/AVX/SpecialFunctions.h"
87*bf2c3715SXin Li#elif defined EIGEN_VECTORIZE_NEON
88*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/NEON/BesselFunctions.h"
89*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/NEON/SpecialFunctions.h"
90*bf2c3715SXin Li#endif
91*bf2c3715SXin Li
92*bf2c3715SXin Li#if defined EIGEN_VECTORIZE_GPU
93*bf2c3715SXin Li  #include "src/SpecialFunctions/arch/GPU/SpecialFunctions.h"
94*bf2c3715SXin Li#endif
95*bf2c3715SXin Li
96*bf2c3715SXin Linamespace Eigen {
97*bf2c3715SXin Li//@}
98*bf2c3715SXin Li}
99*bf2c3715SXin Li
100*bf2c3715SXin Li
101*bf2c3715SXin Li#include "../../Eigen/src/Core/util/ReenableStupidWarnings.h"
102*bf2c3715SXin Li
103*bf2c3715SXin Li#endif // EIGEN_SPECIALFUNCTIONS_MODULE
104