6#ifndef CHEBYSHEV_COMMON_H
7#define CHEBYSHEV_COMMON_H
9#ifndef CHEBYSHEV_PREC_ITER
12#define CHEBYSHEV_PREC_ITER 1000
15#ifndef CHEBYSHEV_PREC_TOLERANCE
17#define CHEBYSHEV_PREC_TOLERANCE 1E-08
20#ifndef CHEBYSHEV_BENCHMARK_ITER
22#define CHEBYSHEV_BENCHMARK_ITER 1000
25#ifndef CHEBYSHEV_BENCHMARK_RUNS
27#define CHEBYSHEV_BENCHMARK_RUNS 10
30#ifndef CHEBYSHEV_OUTPUT_WIDTH
32#define CHEBYSHEV_OUTPUT_WIDTH 12
47#include "../prec/interval.h"
50#define CAST_LAMBDA(func, type) [=](type x){ return func(static_cast<type>(x)); }
59 template<
typename Type =
double>
64 template<
typename FloatType =
long double>
66 return std::numeric_limits<FloatType>::quiet_NaN();
71 const long double PI_CONST = 3.141592653589793238462643L;
77#ifndef CHEBYSHEV_NO_ALIAS
long double prec_t
Floating-point type of higher precision, used in computations, such as error estimation.
Definition common.h:42
double real_t
Floating-point type, used as default for function arguments.
Definition common.h:37
General namespace of the framework.
Definition benchmark.h:22
constexpr FloatType get_nan()
Get a quiet NaN of the specified floating point type.
Definition common.h:65
std::function< Type(Type)> EndoFunction
An endofunction is a function which has the same type of input and output, such as a real function of...
Definition common.h:60
const long double PI_CONST
The Pi mathematical constant.
Definition common.h:71