OpenKalman
Classes | Functions | Variables
OpenKalman::values::internal Namespace Reference

Definition of utilities for atan functions. More...

Classes

struct  call_result_is_constexpr
 
struct  call_result_is_constexpr< T, std::void_t< std::bool_constant<(T{}(), true)> > >
 
struct  call_result_is_defined
 
struct  call_result_is_defined< T, std::void_t< decltype(std::declval< T >()())> >
 
struct  has_value_member
 
struct  has_value_member< T, std::void_t< decltype(T::value)> >
 

Functions

template<typename Op , typename... Args>
constexpr bool constexpr_callable (const Args &...args)
 /internal /brief Op is a constexpr-callable function for arguments Args.
 
template<unsigned int epsilon_factor = 2, typename Arg1 , typename Arg2 , std::enable_if_t< value< Arg1 > and value< Arg2 >, int > = 0>
constexpr auto near (const Arg1 &arg1, const Arg2 &arg2)
 Determine whether two numbers are within a rounding tolerance. More...
 
template<typename Arg1 , typename Arg2 , typename Err , std::enable_if_t< value< Arg1 > and value< Arg2 > and value< Err >, int > = 0>
constexpr auto near (const Arg1 &arg1, const Arg2 &arg2, const Err &err)
 Determine whether two numbers are within a rounding tolerance. More...
 
template<typename T , typename Re , std::enable_if_t< value< T > and value< Re > and not complex< Re >, int > = 0>
decltype(auto) constexpr update_real_part (T t, Re &&re)
 
template<typename T >
constexpr T asin_series (int n, const T &x, const T &sum, const T &term)
 
template<typename T >
constexpr T asin_impl (const T &x)
 
template<typename T >
constexpr T atan_impl_general (const T &x)
 
template<typename T >
constexpr T exp_impl (int i, const T &x, const T &sum, const T &term)
 
template<typename Return , typename X >
constexpr Return integral_exp (const X &x)
 
template<typename T , std::enable_if_t< values::number< T >, int > = 0>
constexpr std::decay_t< T > infinity ()
 
template<typename T >
constexpr T log_impl (const T &x, const T &y0=0, int cmp=0)
 
template<typename T >
constexpr std::tuple< T, T > log_scaling_gt (const T &x, const T &corr=T{0})
 
template<typename T >
constexpr std::tuple< T, T > log_scaling_lt (const T &x, const T &corr=T{0})
 
template<typename T >
constexpr T atan_impl (const T &x)
 
template<typename T >
constexpr T atan2_impl (const T &y, const T &x)
 
template<typename T , std::enable_if_t< values::number< T >, int > = 0>
constexpr std::decay_t< T > NaN ()
 
template<typename T >
constexpr T sin_cos_impl (int i, const T &x, const T &sum, const T &term)
 
template<typename T >
constexpr T scale_periodic_function (const T &theta)
 

Variables

template<typename T = void, typename = void>
constexpr auto make_complex_number = detail::make_complex_number<T>{}
 

Detailed Description

Definition of utilities for atan functions.

Definition for periodic-function utilities for math functions.

Definition for various utilities for math functions.

Definition for various utilities for log functions.

Utilities for exp and expm1 functions.

Function Documentation

◆ near() [1/2]

template<unsigned int epsilon_factor = 2, typename Arg1 , typename Arg2 , std::enable_if_t< value< Arg1 > and value< Arg2 >, int > = 0>
constexpr auto OpenKalman::values::internal::near ( const Arg1 &  arg1,
const Arg2 &  arg2 
)

Determine whether two numbers are within a rounding tolerance.

Template Parameters
Arg1The first argument
Arg2The second argument
epsilon_factorA factor to be multiplied by the epsilon
Returns
true if within the rounding tolerance, otherwise false

◆ near() [2/2]

template<typename Arg1 , typename Arg2 , typename Err , std::enable_if_t< value< Arg1 > and value< Arg2 > and value< Err >, int > = 0>
constexpr auto OpenKalman::values::internal::near ( const Arg1 &  arg1,
const Arg2 &  arg2,
const Err &  err 
)

Determine whether two numbers are within a rounding tolerance.

Template Parameters
Arg1The first argument
Arg2The second argument
ErrThe error
Returns
true if within the error, otherwise false