carl
24.04
Computer ARithmetic Library
|
General class for floating point numbers with different formats. More...
#include <carl-common/util/hash.h>
#include <carl-common/meta/SFINAE.h>
#include "roundingConversion.h"
#include <cfloat>
#include <cmath>
#include <cstddef>
#include <iostream>
#include <string>
#include "mpfr_float.tpp"
Go to the source code of this file.
Data Structures | |
struct | carl::FloatConv< T1, T2 > |
Struct which holds the conversion operator for any two instanciations of FLOAT_T with different underlying floating point implementations. More... | |
class | carl::FLOAT_T< FloatType > |
Templated wrapper class which allows universal usage of different IEEE 754 implementations. More... | |
struct | std::hash< carl::FLOAT_T< Number > > |
class | std::numeric_limits< carl::FLOAT_T< Number > > |
Namespaces | |
carl | |
carl is the main namespace for the library. | |
Typedefs | |
using | carl::precision_t = std::size_t |
Enumerations | |
enum | carl::Str2Double_Error { carl::FLOAT_SUCCESS , carl::FLOAT_OVERFLOW , carl::FLOAT_UNDERFLOW , carl::FLOAT_INCONVERTIBLE } |
Functions | |
Str2Double_Error | carl::str2double (double &d, char const *s) |
template<typename Number > | |
bool | carl::AlmostEqual2sComplement (const Number &A, const Number &B, unsigned=128) |
template<> | |
bool | carl::AlmostEqual2sComplement< double > (const double &A, const double &B, unsigned maxUlps) |
template<typename FloatType > | |
bool | carl::is_integer (const FLOAT_T< FloatType > &in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::div (const FLOAT_T< FloatType > &_lhs, const FLOAT_T< FloatType > &_rhs) |
Implements the division which assumes that there is no remainder. More... | |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::quotient (const FLOAT_T< FloatType > &_lhs, const FLOAT_T< FloatType > &_rhs) |
Implements the division with remainder. More... | |
template<typename Integer , typename FloatType > | |
Integer | carl::to_int (const FLOAT_T< FloatType > &_float) |
Casts the FLOAT_T to an arbitrary integer type which has a constructor for a native int. More... | |
template<typename FloatType > | |
double | carl::to_double (const FLOAT_T< FloatType > &_float) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::abs (const FLOAT_T< FloatType > &_in) |
Method which returns the absolute value of the passed number. More... | |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::log (const FLOAT_T< FloatType > &_in) |
Method which returns the logarithm of the passed number. More... | |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::sqrt (const FLOAT_T< FloatType > &_in) |
Method which returns the square root of the passed number. More... | |
template<typename FloatType > | |
std::pair< FLOAT_T< FloatType >, FLOAT_T< FloatType > > | carl::sqrt_safe (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::pow (const FLOAT_T< FloatType > &_in, size_t _exp) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::sin (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::cos (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::asin (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::acos (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::atan (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::floor (const FLOAT_T< FloatType > &_in) |
Method which returns the next smaller integer of this number or the number itself, if it is already an integer. More... | |
template<typename FloatType > | |
FLOAT_T< FloatType > | carl::ceil (const FLOAT_T< FloatType > &_in) |
Method which returns the next larger integer of the passed number or the number itself, if it is already an integer. More... | |
template<> | |
FLOAT_T< double > | carl::rationalize< FLOAT_T< double > > (double n) |
template<> | |
FLOAT_T< float > | carl::rationalize< FLOAT_T< float > > (float n) |
template<> | |
FLOAT_T< mpq_class > | carl::rationalize< FLOAT_T< mpq_class > > (double n) |
mpz_class | carl::get_denom (const FLOAT_T< mpq_class > &_in) |
Implicitly converts the number to a rational and returns the denominator. More... | |
mpz_class | carl::get_num (const FLOAT_T< mpq_class > &_in) |
Implicitly converts the number to a rational and returns the nominator. More... | |
template<typename FloatType > | |
bool | carl::is_zero (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
bool | carl::isInfinity (const FLOAT_T< FloatType > &_in) |
template<typename FloatType > | |
bool | carl::isNan (const FLOAT_T< FloatType > &_in) |
template<> | |
bool | carl::AlmostEqual2sComplement< FLOAT_T< double > > (const FLOAT_T< double > &A, const FLOAT_T< double > &B, unsigned maxUlps) |
General class for floating point numbers with different formats.
Extend to other types if necessary.
Definition in file FLOAT_T.h.