flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
numerics2.hpp File Reference
#include <array>
#include <cmath>
#include <complex>
#include <limits>
#include <cstddef>
#include <cstdlib>
#include <type_traits>
Include dependency graph for numerics2.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  flexiblesusy::detail::is_complex< T >
 
struct  flexiblesusy::detail::is_complex< const T >
 
struct  flexiblesusy::detail::is_complex< std::complex< T > >
 
struct  flexiblesusy::detail::is_complex< volatile const T >
 
struct  flexiblesusy::detail::is_complex< volatile T >
 

Namespaces

namespace  flexiblesusy
 
namespace  flexiblesusy::detail
 

Functions

template<class T >
std::complex< T > flexiblesusy::fast_log (const std::complex< T > &z) noexcept
 fast implementation of complex logarithm More...
 
template<typename T >
bool flexiblesusy::is_equal (std::complex< T > a, std::complex< T > b, T prec=std::numeric_limits< T >::epsilon()) noexcept
 compares two complex numbers for (absolute) equality More...
 
template<typename T >
bool flexiblesusy::is_equal (T a, T b, T prec=std::numeric_limits< T >::epsilon()) noexcept
 compares two numbers for (absolute) equality More...
 
template<typename T >
std::enable_if_t<!std::is_unsigned< T >::value, bool > flexiblesusy::is_equal_fraction (T a, T b, T prec=std::numeric_limits< T >::epsilon()) noexcept
 compares two numbers for relative equality More...
 
template<typename T >
std::enable_if_t<!std::is_unsigned< T >::value, bool > flexiblesusy::is_equal_rel (T a, T b, T prec=std::numeric_limits< T >::epsilon()) noexcept
 
template<typename T >
std::enable_if_t< std::is_unsigned< T >::value, bool > flexiblesusy::is_equal_rel (T a, T b, T prec=std::numeric_limits< T >::epsilon()) noexcept
 
bool flexiblesusy::is_finite (const double *, long) noexcept
 returns true if all array elements are finite More...
 
template<typename T , std::size_t N>
bool flexiblesusy::is_finite (const std::array< T, N > &v) noexcept
 returns true if all array elements are finite More...
 
template<typename T , std::size_t N>
bool flexiblesusy::is_finite (const T(&v)[N]) noexcept
 returns true if all array elements are finite More...
 
template<typename T >
std::enable_if_t< std::is_unsigned< T >::value, bool > flexiblesusy::is_zero (T a, T prec=std::numeric_limits< T >::epsilon()) noexcept
 compares a number for being close to zero More...
 
template<typename T >
std::enable_if_t<!std::is_unsigned< T >::value &&!detail::is_complex< T >::value, bool > flexiblesusy::is_zero (T a, T prec=std::numeric_limits< T >::epsilon()) noexcept
 compares a number for being close to zero More...
 
template<typename T >
std::enable_if_t< detail::is_complex< T >::value, bool > flexiblesusy::is_zero (T a, typename T::value_type prec=std::numeric_limits< typename T::value_type >::epsilon()) noexcept
 compares a complex number for being close to zero More...