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

Definition of utilities for atan functions. More...

Classes

struct  call_result_is_fixed
 
struct  call_result_is_fixed< T, std::void_t< std::bool_constant<(T{}(), true)> > >
 
struct  has_value_member
 
struct  has_value_member< T, std::enable_if_t< number< decltype(T::value)> > >
 
struct  is_dynamic
 
struct  is_dynamic< T, std::enable_if_t< values::number< typename std::invoke_result< T >::type > > >
 

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<typename T , typename Re , typename Im = Re, std::enable_if_t< values::complex< T > and std::is_convertible_v< Re, real_type_of_t< T >> and std::is_convertible_v< Im, real_type_of_t< T >> and values::value< Re > and values::value< Im > and(not values::complex< Re >) and(not values::complex< Im >), int > = 0>
constexpr std::decay_t< T > make_complex_number (Re &&re, Im &&im=0)
 
template<typename T , typename Arg , std::enable_if_t< values::value< T > and values::complex< Arg > and std::is_constructible_v< real_type_of_t< T >, real_type_of_t< Arg >>, int > = 0>
decltype(auto) constexpr make_complex_number (Arg &&arg)
 
template<typename Re , typename Im , std::enable_if_t< values::number< Re > and values::number< Im > and(not values::complex< Re >) and(not values::complex< Im >), int > = 0>
constexpr auto make_complex_number (const Re &re, const Im &im=0)
 
template<unsigned int epsilon_factor = 2, typename Arg1 , typename Arg2 >
constexpr bool near (const Arg1 &arg1, const Arg2 &arg2)
 Determine whether two numbers are within a rounding tolerance. More...
 
template<typename Arg1 , typename Arg2 , typename Err >
constexpr bool 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< values::number< T > and values::number< Re > and not values::complex< Re >, int > = 0>
decltype(auto) constexpr update_real_part (T &&arg, 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)
 

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 >
constexpr bool 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 >
constexpr bool 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