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