24 #ifndef PPL_distances_inlines_hh
25 #define PPL_distances_inlines_hh 1
33 template <
typename To,
typename From>
44 template <
typename Type>
54 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
61 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
62 template <
typename To,
typename From>
68 template <
typename Temp>
73 add_assign_r(running, running, current, dir);
76 template <
typename Temp>
81 template <
typename Temp>
86 mul_assign_r(current, current, current, dir);
87 add_assign_r(running, running, current, dir);
90 template <
typename Temp>
94 sqrt_assign_r(running, running, dir);
97 template <
typename Temp>
102 if (current > running) {
107 template <
typename Temp>
114 #endif // !defined(PPL_distances_inlines_hh)
Enable_If< Is_Native_Or_Checked< To >::value &&Is_Special< From >::value, Result >::type assign_r(To &to, const From &, Rounding_Dir dir)
The computed result is exact.
Rounding_Dir
Rounding directions for arithmetic computations.
Result
Possible outcomes of a checked arithmetic computation.
From bool Type Type Rounding_Dir To
static void combine(Temp &running, const Temp ¤t, Rounding_Dir dir)
static void finalize(Temp &, Rounding_Dir)
static void combine(Temp &running, Temp ¤t, Rounding_Dir dir)
static void finalize(Temp &, Rounding_Dir)
static void combine(Temp &running, const Temp ¤t, Rounding_Dir)
The entire library is confined to this namespace.
From bool Type Type Rounding_Dir From
static void finalize(Temp &running, Rounding_Dir dir)
static Result function(const To *&top, To &tmp, const From &from, Rounding_Dir dir)
Result maybe_assign(const To *&top, To &tmp, const From &from, Rounding_Dir dir)
Assigns to top a pointer to a location that holds the conversion, according to dir, of from to type To. When necessary, and only when necessary, the variable tmp is used to hold the result of conversion.