mirror of
https://github.com/boostorg/math.git
synced 2026-01-19 04:22:09 +00:00
Add doc blurb
This commit is contained in:
@@ -310,11 +310,17 @@ calculated using NTL::RR at 1000-bit precision.
|
|||||||
template <class T1, class T2, class ``__Policy``>
|
template <class T1, class T2, class ``__Policy``>
|
||||||
``__sf_result`` hypot(T1 x, T2 y, const ``__Policy``&);
|
``__sf_result`` hypot(T1 x, T2 y, const ``__Policy``&);
|
||||||
|
|
||||||
|
template <class T1, class T2, class T3>
|
||||||
|
``__sf_result`` hypot(T1 x, T2 y, T3 z);
|
||||||
|
|
||||||
|
template <class T1, class T2, class T3, class ``__Policy``>
|
||||||
|
``__sf_result`` hypot(T1 x, T2 y, T3 z, const ``__Policy``&);
|
||||||
|
|
||||||
__effects computes [equation hypot]
|
__effects computes [equation hypot]
|
||||||
in such a way as to avoid undue underflow and overflow.
|
in such a way as to avoid undue underflow and overflow.
|
||||||
|
|
||||||
The return type of this function is computed using the __arg_promotion_rules
|
The return type of this function is computed using the __arg_promotion_rules
|
||||||
when T1 and T2 are of different types.
|
when T1 and T2 (and or T3) are of different types.
|
||||||
|
|
||||||
[optional_policy]
|
[optional_policy]
|
||||||
|
|
||||||
@@ -328,6 +334,11 @@ The function is even and symmetric in /x/ and /y/, so first take assume
|
|||||||
|
|
||||||
Then if ['x * [epsilon] >= y] we can simply return /x/.
|
Then if ['x * [epsilon] >= y] we can simply return /x/.
|
||||||
|
|
||||||
|
In the 3-arg case the approach is to scale by the largest argument, and then calculate
|
||||||
|
|
||||||
|
const auto a = max(max(x, y), z);
|
||||||
|
return a == 0 ? 0 : a * sqrt(x/a * x/a + y/a * y/a + z/a * z/a);
|
||||||
|
|
||||||
Otherwise the result is given by:
|
Otherwise the result is given by:
|
||||||
|
|
||||||
[equation hypot2]
|
[equation hypot2]
|
||||||
|
|||||||
Reference in New Issue
Block a user