TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
numeric_ops.hpp
#include "./is_complex.hpp"
#include <cmath>
#include <complex>
#include <concepts>
#include <limits>

Detailed Description

Numeric helpers overloaded for various types.

Definition in file numeric_ops.hpp.

Go to the source code of this file.

Functions

template<std::integral I>
triqs::utility::conj (I const &x)
 Complex conjugate of an integral value.
template<std::floating_point T>
triqs::utility::conj (T const &x)
 Complex conjugate of a floating-point value.
template<typename Z>
requires (triqs::is_complex<Z>::value)
triqs::utility::conj (Z const &z)
 Complex conjugate of a complex value.
template<std::integral I>
triqs::utility::imag (I const &x)
 Imaginary part of an integral value.
template<std::floating_point T>
triqs::utility::imag (T const &x)
 Imaginary part of a floating-point value.
template<typename Z>
requires (triqs::is_complex<Z>::value)
triqs::utility::imag (Z const &z)
 Imaginary part of a complex value.
template<std::integral I>
bool triqs::utility::is_zero (I const &x)
 Exact zero check for integral values.
template<typename T>
bool triqs::utility::is_zero (std::complex< T > const &z, T tolerance=100 *std::numeric_limits< T >::epsilon())
 Zero check for complex values.
template<std::floating_point T>
bool triqs::utility::is_zero (T const &x, T tolerance=100 *std::numeric_limits< T >::epsilon())
 Zero check for floating-point values.
template<std::integral I>
triqs::utility::real (I const &x)
 Real part of an integral value.
template<std::floating_point T>
triqs::utility::real (T const &x)
 Real part of a floating-point value.
template<typename Z>
requires (triqs::is_complex<Z>::value)
triqs::utility::real (Z const &z)
 Real part of a complex value.