deal.II version 9.8.0
\(\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
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