deal.II version GIT relicensing-6842-g793a97d2aa 2026-10-02 14:00:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Namespaces | Enumerations | Functions | Variables
fast_transcendental.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/numbers.h>
#include <deal.II/base/signaling_nan.h>
#include <deal.II/base/vectorization.h>
#include <array>
#include <cstdint>
#include <cstring>
#include <type_traits>

Go to the source code of this file.

Namespaces

namespace  fast_transcendental
 
namespace  fast_transcendental::internal
 

Enumerations

enum class  fast_transcendental::PolynomialEvalScheme : int { fast_transcendental::estrin , fast_transcendental::horner }
 

Functions

template<typename number >
VectorizedArray< number, 1 > fast_transcendental::internal::type_cast (const VectorizedArray< number, 1 > &in)
 
template<int degree, typename CoeffsType , typename ValueType >
ValueType fast_transcendental::internal::horner_scheme (const std::array< CoeffsType, degree+1 > &c, const ValueType &x)
 
template<int degree, typename CoeffsType , typename ValueType >
ValueType fast_transcendental::internal::estrin_scheme (const std::array< CoeffsType, degree+1 > &c, const ValueType &x)
 
template<int degree, typename Number , bool ensure_correct_treatment_of_zero = true, bool ensure_correct_treatment_of_infinity = true, PolynomialEvalScheme polynomial_evaluation_scheme = PolynomialEvalScheme::horner>
Number fast_transcendental::exp (Number x)
 

Variables

template<int degree, typename Number >
constexpr std::array< Number, degree+1 > fast_transcendental::internal::exp_pol_coeff
 
template<typename Number >
constexpr std::array< Number, 4 > fast_transcendental::internal::exp_pol_coeff< 3, Number >
 
template<typename Number >
constexpr std::array< Number, 5 > fast_transcendental::internal::exp_pol_coeff< 4, Number >
 
template<typename Number >
constexpr std::array< Number, 6 > fast_transcendental::internal::exp_pol_coeff< 5, Number >
 
template<typename Number >
constexpr std::array< Number, 7 > fast_transcendental::internal::exp_pol_coeff< 6, Number >
 
template<typename Number >
constexpr std::array< Number, 8 > fast_transcendental::internal::exp_pol_coeff< 7, Number >
 
template<typename Number >
constexpr std::array< Number, 9 > fast_transcendental::internal::exp_pol_coeff< 8, Number >
 
template<typename Number >
constexpr std::array< Number, 10 > fast_transcendental::internal::exp_pol_coeff< 9, Number >
 
template<typename Number >
constexpr std::array< Number, 11 > fast_transcendental::internal::exp_pol_coeff< 10, Number >
 
template<typename Number >
constexpr std::array< Number, 12 > fast_transcendental::internal::exp_pol_coeff< 11, Number >
 
template<typename Number >
constexpr Number fast_transcendental::internal::exp_coeff_a = numbers::signaling_nan<Number>()
 
template<>
constexpr double fast_transcendental::internal::exp_coeff_a< double > = 4503599627370496
 
template<>
constexpr float fast_transcendental::internal::exp_coeff_a< float > = 8388608
 
template<typename Number >
constexpr Number fast_transcendental::internal::exp_coeff_b = numbers::signaling_nan<Number>()
 
template<>
constexpr double fast_transcendental::internal::exp_coeff_b< double > = 4.60718241880001741e+18
 
template<>
constexpr float fast_transcendental::internal::exp_coeff_b< float > = 1065353216
 
template<typename Number >
constexpr Number fast_transcendental::internal::max_exponent = numbers::signaling_nan<Number>()
 
template<>
constexpr double fast_transcendental::internal::max_exponent< double > = 9.218868437227405312e+18
 
template<>
constexpr float fast_transcendental::internal::max_exponent< float > = 2139095040
 
template<typename Number >
constexpr Number fast_transcendental::internal::exp_max_abs_x = numbers::signaling_nan<Number>()
 
template<>
constexpr double fast_transcendental::internal::exp_max_abs_x< double > = 709.196208642
 
template<>
constexpr float fast_transcendental::internal::exp_max_abs_x< float > = 87.49823353f