38#ifndef CUSTOM_PRECISION_DOUBLE_H
39#define CUSTOM_PRECISION_DOUBLE_H
51 static constexpr inline double PDOUBLE_DEFAULT_PRECISION = 1.0e-17;
68 constexpr PDouble(
const long double input = 0.0,
const long double precision = PDOUBLE_DEFAULT_PRECISION )
noexcept;
115 constexpr operator int()
const;
121 constexpr operator float()
const;
127 constexpr operator double()
const;
133 constexpr operator long double()
const;
296 inline constexpr PDouble::PDouble(
const long double input,
const long double prec ) noexcept
303 inline constexpr PDouble::operator double()
const {
304 return(
static_cast<double>(value)) ;
308 inline constexpr PDouble::operator int()
const {
309 return(
static_cast<int>(value));
313 inline constexpr PDouble::operator float()
const {
314 return(
static_cast<float>(value));
318 inline constexpr PDouble::operator
long double()
const {
319 return(
static_cast<long double>(value));
379 if ( &left == &right )
386 if ( &left == &right )
421 os << instance.
value;
427 is >> instance.
value;
Custom precision long double class.
Definition custom-precision-double.h:58
PDouble(const PDouble ©) noexcept=default
friend constexpr bool operator<(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:399
long double precision
Definition custom-precision-double.h:289
friend constexpr PDouble & operator%=(PDouble &left, const PDouble &right)
Definition custom-precision-double.h:372
friend constexpr PDouble operator%(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:343
constexpr long double getPrecision() const noexcept
Definition custom-precision-double.h:98
friend std::istream & operator>>(std::istream &is, PDouble &instance)
Definition custom-precision-double.h:426
friend constexpr PDouble operator/(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:333
friend constexpr bool operator>=(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:406
constexpr long double getValue() const noexcept
Definition custom-precision-double.h:104
constexpr void setPrecision(double value) noexcept
Definition custom-precision-double.h:92
friend constexpr PDouble & operator/=(PDouble &left, const PDouble &right)
Definition custom-precision-double.h:360
friend constexpr PDouble operator-(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:328
friend constexpr bool operator!=(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:385
constexpr PDouble & operator=(const PDouble ©) noexcept=default
constexpr PDouble & operator=(PDouble &&tmp) noexcept=default
long double value
Definition custom-precision-double.h:284
friend constexpr bool operator>(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:392
friend constexpr PDouble operator+(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:323
friend constexpr PDouble & operator-=(PDouble &left, const PDouble &right)
Definition custom-precision-double.h:354
friend constexpr PDouble operator*(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:338
friend std::ostream & operator<<(std::ostream &os, const PDouble &instance)
Definition custom-precision-double.h:420
constexpr PDouble(const long double input=0.0, const long double precision=PDOUBLE_DEFAULT_PRECISION) noexcept
Definition custom-precision-double.h:296
friend constexpr PDouble & operator*=(PDouble &left, const PDouble &right)
Definition custom-precision-double.h:366
friend constexpr bool operator<=(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:413
friend constexpr PDouble & operator+=(PDouble &left, const PDouble &right)
Definition custom-precision-double.h:348
~PDouble() noexcept=default
friend constexpr bool operator==(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:378
PDouble(PDouble &&tmp) noexcept=default
Definition ac-toolbox-arr-asc-reader.h:44
constexpr PDouble operator%(const PDouble &left, const PDouble &right)
Definition custom-precision-double.h:343
constexpr bool operator>(const Coord &left, const Coord &right)
Definition coordinates-definitions.h:1241
constexpr bool operator<(const Coord &left, const Coord &right)
Definition coordinates-definitions.h:1248
bool operator!=(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.h:833
constexpr bool operator<=(const Coord &left, const Coord &right)
Definition coordinates-definitions.h:1262
std::ostream & operator<<(std::ostream &os, const Altimetry &instance)
Definition altimetry-definitions.h:812
Altimetry & operator*=(Altimetry &left, double right)
Definition altimetry-definitions.cpp:346
const Altimetry operator/(const Altimetry &left, const double right)
Definition altimetry-definitions.cpp:264
bool operator==(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.h:826
Altimetry & operator+=(Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:306
constexpr bool operator>=(const Coord &left, const Coord &right)
Definition coordinates-definitions.h:1255
const Altimetry operator+(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:236
const Altimetry operator*(const Altimetry &left, const double right)
Definition altimetry-definitions.cpp:271
constexpr PDouble & operator%=(PDouble &left, const PDouble &right)
Definition custom-precision-double.h:372
Altimetry & operator-=(Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:314
const Altimetry operator-(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:243
std::istream & operator>>(std::istream &is, PDouble &instance)
Definition custom-precision-double.h:426
Altimetry & operator/=(Altimetry &left, double right)
Definition altimetry-definitions.cpp:338