|
MU Library
|
Namespaces | |
| detail | |
Classes | |
| class | half |
Main namespace for half-precision functionality. This namespace contains all the functionality provided by the library.
|
inline |
Arc cosine function. This function is exact to rounding for all rounding modes.
See also: Documentation for std::acos.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or if abs(arg) > 1 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6895 of file half.hpp.
Hyperbolic area cosine. This function is exact to rounding for all rounding modes.
See also: Documentation for std::acosh.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or arguments <1 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7126 of file half.hpp.
Arc sine. This function is exact to rounding for all rounding modes.
See also: Documentation for std::asin.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or if abs(arg) > 1 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6866 of file half.hpp.
Hyperbolic area sine. This function is exact to rounding for all rounding modes.
See also: Documentation for std::asinh.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7096 of file half.hpp.
Arc tangent function. This function is exact to rounding for all rounding modes.
See also: Documentation for std::atan.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6921 of file half.hpp.
Arc tangent function. This function may be 1 ULP off the correctly rounded exact result in ~0.005% of inputs for std::round_to_nearest, in ~0.1% of inputs for std::round_toward_zero and in ~0.02% of inputs for any other rounding mode.
See also: Documentation for std::atan2.
| y | numerator |
| x | denominator |
| MU_HALF_FE_INVALID | if x or y is signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6950 of file half.hpp.
Hyperbolic area tangent. This function is exact to rounding for all rounding modes.
See also: Documentation for std::atanh.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or if abs(arg) > 1 |
| MU_HALF_FE_DIVBYZERO | for +/-1 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7151 of file half.hpp.
Cubic root. This function is exact to rounding for all rounding modes.
See also: Documentation for std::cbrt.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_INEXACT | according to rounding |
Definition at line 6454 of file half.hpp.
Nearest integer not less than half value. See also: Documentation for std::ceil.
| arg | half to round |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_INEXACT | if value had to be rounded |
Definition at line 7290 of file half.hpp.
|
inline |
Take sign. See also: Documentation for std::copysign.
| x | value to change sign for |
| y | value to take sign from |
Cosine function. This function is exact to rounding for all rounding modes.
See also: Documentation for std::cos.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or infinity |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6797 of file half.hpp.
Hyperbolic cosine. This function is exact to rounding for all rounding modes.
See also: Documentation for std::cosh.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7036 of file half.hpp.
Error function. This function may be 1 ULP off the correctly rounded exact result for any rounding mode in <0.5% of inputs.
See also: Documentation for std::erf.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7185 of file half.hpp.
Complementary error function. This function may be 1 ULP off the correctly rounded exact result for any rounding mode in <0.5% of inputs.
See also: Documentation for std::erfc.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7207 of file half.hpp.
Exponential function. This function is exact to rounding for all rounding modes.
See also: Documentation for std::exp.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6111 of file half.hpp.
Binary exponential. This function is exact to rounding for all rounding modes.
See also: Documentation for std::exp2.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6146 of file half.hpp.
Exponential minus one. This function may be 1 ULP off the correctly rounded exact result in <0.05% of inputs for std::round_to_nearest and in <1% of inputs for any other rounding mode.
See also: Documentation for std::expm1.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6171 of file half.hpp.
|
inline |
Absolute value. See also: Documentation for std::fabs.
| arg | operand |
Positive difference. This function is exact to rounding for all rounding modes.
See also: Documentation for std::fdim.
| x | first operand |
| y | second operand |
| FE_... | according to operator-(half,half) |
Definition at line 6079 of file half.hpp.
|
inline |
Clear exception flags. This function works even if automatic exception flag handling is disabled, but in that case manual flag management is the only way to raise flags.
See also: Documentation for std::feclearexcept.
| excepts | OR of exceptions to clear |
| 0 | all selected flags cleared successfully |
Definition at line 7807 of file half.hpp.
|
inline |
Save exception flags. This function works even if automatic exception flag handling is disabled, but in that case manual flag management is the only way to raise flags.
See also: Documentation for std::fegetexceptflag.
| flagp | adress to store flag state at |
| excepts | OR of flags to save |
| 0 | for success |
|
inline |
Raise exception flags. This raises the specified floating point exceptions and also invokes any additional automatic exception handling as configured with the HALF_ERRHANDLIG_... preprocessor symbols. This function works even if automatic exception flag handling is disabled, but in that case manual flag management is the only way to raise flags.
See also: Documentation for std::feraiseexcept.
| excepts | OR of exceptions to raise |
| 0 | all selected exceptions raised successfully |
Definition at line 7834 of file half.hpp.
|
inline |
Restore exception flags. This only copies the specified exception state (including unset flags) without incurring any additional exception handling. This function works even if automatic exception flag handling is disabled, but in that case manual flag management is the only way to raise flags.
See also: Documentation for std::fesetexceptflag.
| flagp | adress to take flag state from |
| excepts | OR of flags to restore |
| 0 | for success |
Definition at line 7864 of file half.hpp.
|
inline |
Test exception flags. This function works even if automatic exception flag handling is disabled, but in that case manual flag management is the only way to raise flags.
See also: Documentation for std::fetestexcept.
| excepts | OR of exceptions to test |
|
inline |
Throw C++ exceptions based on set exception flags. This function manually throws a corresponding C++ exception if one of the specified flags is set, no matter if automatic throwing (via HALF_ERRHANDLING_THROW_...) is enabled or not. This function works even if automatic exception flag handling is disabled, but in that case manual flag management is the only way to raise flags.
| excepts | OR of exceptions to test |
| msg | error message to use for exception description |
| std::domain_error | if MU_HALF_FE_INVALID or MU_HALF_FE_DIVBYZERO is selected and set |
| std::overflow_error | if MU_HALF_FE_OVERFLOW is selected and set |
| std::underflow_error | if MU_HALF_FE_UNDERFLOW is selected and set |
| std::range_error | if MU_HALF_FE_INEXACT is selected and set |
Definition at line 7881 of file half.hpp.
Nearest integer not greater than half value. See also: Documentation for std::floor.
| arg | half to round |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_INEXACT | if value had to be rounded |
Definition at line 7301 of file half.hpp.
Fused multiply add. This function is exact to rounding for all rounding modes.
See also: Documentation for std::fma.
| x | first operand |
| y | second operand |
| z | third operand |
| MU_HALF_FE_INVALID | according to operator*() and operator+() unless any argument is a quiet NaN and no argument is a signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding the final addition |
Definition at line 5982 of file half.hpp.
|
inline |
Maximum of half expressions. See also: Documentation for std::fmax.
| x | first operand |
| y | second operand |
| MU_HALF_FE_INVALID | if x or y is signaling NaN |
Definition at line 6055 of file half.hpp.
|
inline |
Minimum of half expressions. See also: Documentation for std::fmin.
| x | first operand |
| y | second operand |
| MU_HALF_FE_INVALID | if x or y is signaling NaN |
Definition at line 6066 of file half.hpp.
Remainder of division. See also: Documentation for std::fmod.
| x | first operand |
| y | second operand |
| MU_HALF_FE_INVALID | if x is infinite or y is 0 or if x or y is signaling NaN |
Definition at line 5916 of file half.hpp.
|
inline |
Classify floating-point value. See also: Documentation for std::fpclassify.
| arg | number to classify |
| FP_ZERO | for positive and negative zero |
| FP_SUBNORMAL | for subnormal numbers |
| FP_INFINITY | for positive and negative infinity |
| FP_NAN | for NaNs |
| FP_NORMAL | for all other (normal) values |
Definition at line 7621 of file half.hpp.
Decompress floating-point number. See also: Documentation for std::frexp.
| arg | number to decompress |
| exp | address to store exponent at |
| MU_HALF_FE_INVALID | for signaling NaN |
Definition at line 7403 of file half.hpp.
| T half_float::half_cast | ( | U | arg | ) |
Cast to or from half-precision floating-point number. This casts between half and any built-in arithmetic type. The values are converted directly using the default rounding mode, without any roundtrip over float that a static_cast would otherwise do.
Using this cast with neither of the two types being a half or with any of the two types not being a built-in arithmetic type (apart from half, of course) results in a compiler error and casting between halfs returns the argument unmodified.
| T | destination type (half or built-in arithmetic type) |
| U | source type (half or built-in arithmetic type) |
| arg | value to cast |
| MU_HALF_FE_INVALID | if T is integer type and result is not representable as T |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
| T half_float::half_cast | ( | U | arg | ) |
Cast to or from half-precision floating-point number. This casts between half and any built-in arithmetic type. The values are converted directly using the specified rounding mode, without any roundtrip over float that a static_cast would otherwise do.
Using this cast with neither of the two types being a half or with any of the two types not being a built-in arithmetic type (apart from half, of course) results in a compiler error and casting between halfs returns the argument unmodified.
| T | destination type (half or built-in arithmetic type) |
| R | rounding mode to use. |
| U | source type (half or built-in arithmetic type) |
| arg | value to cast |
| MU_HALF_FE_INVALID | if T is integer type and result is not representable as T |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Hypotenuse function. This function is exact to rounding for all rounding modes.
See also: Documentation for std::hypot.
| x | first argument |
| y | second argument |
| MU_HALF_FE_INVALID | if x or y is signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding of the final square root |
Definition at line 6504 of file half.hpp.
Hypotenuse function. This function is exact to rounding for all rounding modes.
See also: Documentation for std::hypot.
| x | first argument |
| y | second argument |
| z | third argument |
| MU_HALF_FE_INVALID | if x, y or z is signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding of the final square root |
Definition at line 6552 of file half.hpp.
|
inline |
Extract exponent. See also: Documentation for std::ilogb.
| arg | number to query |
| FP_ILOGB0 | for zero |
| FP_ILOGBNAN | for NaN |
| INT_MAX | for infinity |
| MU_HALF_FE_INVALID | for 0 or infinite values |
Definition at line 7505 of file half.hpp.
|
inline |
Check if finite number. See also: Documentation for std::isfinite.
| arg | number to check |
| true | if neither infinity nor NaN |
| false | else |
|
inline |
Quiet comparison for greater than. See also: Documentation for std::isgreater.
| x | first operand |
| y | second operand |
| true | if x greater than y |
| false | else |
|
inline |
Quiet comparison for greater equal. See also: Documentation for std::isgreaterequal.
| x | first operand |
| y | second operand |
| true | if x greater equal y |
| false | else |
|
inline |
Check for infinity. See also: Documentation for std::isinf.
| arg | number to check |
| true | for positive or negative infinity |
| false | else |
|
inline |
Quiet comparison for less than. See also: Documentation for std::isless.
| x | first operand |
| y | second operand |
| true | if x less than y |
| false | else |
|
inline |
Quiet comparison for less equal. See also: Documentation for std::islessequal.
| x | first operand |
| y | second operand |
| true | if x less equal y |
| false | else |
|
inline |
Quiet comarison for less or greater. See also: Documentation for std::islessgreater.
| x | first operand |
| y | second operand |
| true | if either less or greater |
| false | else |
|
inline |
Check for NaN. See also: Documentation for std::isnan.
| arg | number to check |
| true | for NaNs |
| false | else |
|
inline |
Check if normal number. See also: Documentation for std::isnormal.
| arg | number to check |
| true | if normal number |
| false | if either subnormal, zero, infinity or NaN |
|
inline |
Quiet check if unordered. See also: Documentation for std::isunordered.
| x | first operand |
| y | second operand |
| true | if unordered (one or two NaN operands) |
| false | else |
Multiply by power of two. This function is exact to rounding for all rounding modes.
See also: Documentation for std::ldexp.
| arg | number to modify |
| exp | power of two to multiply with |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7465 of file half.hpp.
Natural logarithm of gamma function. This function may be 1 ULP off the correctly rounded exact result for any rounding mode in ~0.025% of inputs.
See also: Documentation for std::lgamma.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_DIVBYZERO | for 0 or negative integer arguments |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7232 of file half.hpp.
Natural logarithm. This function is exact to rounding for all rounding modes.
See also: Documentation for std::log.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or negative argument |
| MU_HALF_FE_DIVBYZERO | for 0 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6225 of file half.hpp.
Common logarithm. This function is exact to rounding for all rounding modes.
See also: Documentation for std::log10.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or negative argument |
| MU_HALF_FE_DIVBYZERO | for 0 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6253 of file half.hpp.
Natural logarithm plus one. This function may be 1 ULP off the correctly rounded exact result in <0.05% of inputs for std::round_to_nearest and in ~1% of inputs for any other rounding mode.
See also: Documentation for std::log1p.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or argument <-1 |
| MU_HALF_FE_DIVBYZERO | for -1 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6337 of file half.hpp.
Binary logarithm. This function is exact to rounding for all rounding modes.
See also: Documentation for std::log2.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or negative argument |
| MU_HALF_FE_DIVBYZERO | for 0 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6292 of file half.hpp.
|
inline |
Nearest integer using half's internal rounding mode. See also: Documentation for std::lrint.
| arg | half expression to round |
| MU_HALF_FE_INVALID | if value is not representable as long |
| MU_HALF_FE_INEXACT | if value had to be rounded |
|
inline |
Nearest integer. See also: Documentation for std::lround.
| arg | half to round |
| MU_HALF_FE_INVALID | if value is not representable as long |
|
inline |
Nearest integer using half's internal rounding mode. See also: Documentation for std::nearbyint.
| arg | half expression to round |
| MU_HALF_FE_INVALID | for signaling NaN |
Definition at line 7365 of file half.hpp.
Next representable value. See also: Documentation for std::nextafter.
| from | value to compute next representable value for |
| to | direction towards which to compute next value |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW | for infinite result from finite argument |
| MU_HALF_FE_UNDERFLOW | for subnormal result |
Definition at line 7553 of file half.hpp.
Next representable value. See also: Documentation for std::nexttoward.
| from | value to compute next representable value for |
| to | direction towards which to compute next value |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW | for infinite result from finite argument |
| MU_HALF_FE_UNDERFLOW | for subnormal result |
Definition at line 7579 of file half.hpp.
|
inline |
Comparison for inequality.
| x | first operand |
| y | second operand |
| true | if operands not equal |
| false | else |
| MU_HALF_FE_INVALID | if x or y is NaN |
Definition at line 5630 of file half.hpp.
Multiplication. This operation is exact to rounding for all rounding modes.
| x | left operand |
| y | right operand |
| MU_HALF_FE_INVALID | if multiplying 0 with infinity or if x or y is signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 5779 of file half.hpp.
|
inline |
Addition. This operation is exact to rounding for all rounding modes.
| x | left operand |
| y | right operand |
| MU_HALF_FE_INVALID | if x and y are infinities with different signs or signaling NaNs |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 5711 of file half.hpp.
|
inline |
Negation.
| arg | operand |
Subtraction. This operation is exact to rounding for all rounding modes.
| x | left operand |
| y | right operand |
| MU_HALF_FE_INVALID | if x and y are infinities with equal signs or signaling NaNs |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 5763 of file half.hpp.
Division. This operation is exact to rounding for all rounding modes.
| x | left operand |
| y | right operand |
| MU_HALF_FE_INVALID | if dividing 0s or infinities with each other or if x or y is signaling NaN |
| MU_HALF_FE_DIVBYZERO | if dividing finite value by 0 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 5814 of file half.hpp.
|
inline |
Comparison for less than.
| x | first operand |
| y | second operand |
| true | if x less than y |
| false | else |
| MU_HALF_FE_INVALID | if x or y is NaN |
|
inline |
Comparison for less equal.
| x | first operand |
| y | second operand |
| true | if x less equal y |
| false | else |
| MU_HALF_FE_INVALID | if x or y is NaN |
|
inline |
Comparison for equality.
| x | first operand |
| y | second operand |
| true | if operands equal |
| false | else |
| MU_HALF_FE_INVALID | if x or y is NaN |
Definition at line 5619 of file half.hpp.
|
inline |
Comparison for greater than.
| x | first operand |
| y | second operand |
| true | if x greater than y |
| false | else |
| MU_HALF_FE_INVALID | if x or y is NaN |
|
inline |
Comparison for greater equal.
| x | first operand |
| y | second operand |
| true | if x greater equal y |
| false | else |
| MU_HALF_FE_INVALID | if x or y is NaN |
Power function. This function may be 1 ULP off the correctly rounded exact result for any rounding mode in ~0.00025% of inputs.
See also: Documentation for std::pow.
| x | base |
| y | exponent |
| MU_HALF_FE_INVALID | if x or y is signaling NaN or if x is finite an negative and y is finite and not integral |
| MU_HALF_FE_DIVBYZERO | if x is 0 and y is negative |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6620 of file half.hpp.
Remainder of division. See also: Documentation for std::remainder.
| x | first operand |
| y | second operand |
| MU_HALF_FE_INVALID | if x is infinite or y is 0 or if x or y is signaling NaN |
Definition at line 5937 of file half.hpp.
Remainder of division. See also: Documentation for std::remquo.
| x | first operand |
| y | second operand |
| quo | address to store some bits of quotient at |
| MU_HALF_FE_INVALID | if x is infinite or y is 0 or if x or y is signaling NaN |
Definition at line 5957 of file half.hpp.
Nearest integer using half's internal rounding mode. See also: Documentation for std::rint.
| arg | half expression to round |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_INEXACT | if value had to be rounded |
Definition at line 7344 of file half.hpp.
Nearest integer. See also: Documentation for std::round.
| arg | half to round |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_INEXACT | if value had to be rounded |
Definition at line 7323 of file half.hpp.
Inverse square root. This function is exact to rounding for all rounding modes and thus generally more accurate than directly computing 1 / sqrt(arg) in half-precision, in addition to also being faster.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN and negative arguments |
| MU_HALF_FE_INEXACT | according to rounding |
Definition at line 6413 of file half.hpp.
Multiply by power of two. This function is exact to rounding for all rounding modes.
See also: Documentation for std::scalbln.
| arg | number to modify |
| exp | power of two to multiply with |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7424 of file half.hpp.
Multiply by power of two. This function is exact to rounding for all rounding modes.
See also: Documentation for std::scalbn.
| arg | number to modify |
| exp | power of two to multiply with |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
|
inline |
Check sign. See also: Documentation for std::signbit.
| arg | number to check |
| true | for negative number |
| false | for positive number |
Sine function. This function is exact to rounding for all rounding modes.
See also: Documentation for std::sin.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or infinity |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6761 of file half.hpp.
Compute sine and cosine simultaneously. This returns the same results as sin() and cos() but is faster than calling each function individually.
This function is exact to rounding for all rounding modes.
| arg | function argument |
| sin | variable to take sine of arg |
| cos | variable to take cosine of arg |
| MU_HALF_FE_INVALID | for signaling NaN or infinity |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6690 of file half.hpp.
Hyperbolic sine. This function is exact to rounding for all rounding modes.
See also: Documentation for std::sinh.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7007 of file half.hpp.
Square root. This function is exact to rounding for all rounding modes.
See also: Documentation for std::sqrt.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN and negative arguments |
| MU_HALF_FE_INEXACT | according to rounding |
Definition at line 6390 of file half.hpp.
Tangent function. This function is exact to rounding for all rounding modes.
See also: Documentation for std::tan.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN or infinity |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 6825 of file half.hpp.
Hyperbolic tangent. This function is exact to rounding for all rounding modes.
See also: Documentation for std::tanh.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7063 of file half.hpp.
Gamma function. This function may be 1 ULP off the correctly rounded exact result for any rounding mode in <0.25% of inputs.
See also: Documentation for std::tgamma.
| arg | function argument |
| MU_HALF_FE_INVALID | for signaling NaN, negative infinity or negative integer arguments |
| MU_HALF_FE_DIVBYZERO | for 0 |
| MU_HALF_FE_OVERFLOW,...UNDERFLOW,...INEXACT | according to rounding |
Definition at line 7257 of file half.hpp.
Nearest integer not greater in magnitude than half value. See also: Documentation for std::trunc.
| arg | half to round |
| MU_HALF_FE_INVALID | for signaling NaN |
| MU_HALF_FE_INEXACT | if value had to be rounded |
Definition at line 7312 of file half.hpp.