|
Harlinn.Windows 0.1
|
Typedefs | |
| typedef bool_type< true > | true_type |
| typedef bool_type< false > | false_type |
| typedef unsigned short | uint16 |
| Unsigned integer of (at least) 16 bits width. | |
Functions | |
Classification helpers | |
| template<typename T > | |
| bool | builtin_isinf (T arg) |
| template<typename T > | |
| bool | builtin_isnan (T arg) |
| template<typename T > | |
| bool | builtin_signbit (T arg) |
Conversion | |
| template<std::float_round_style R> | |
| uint16 | float2half_impl (float value, true_type) |
| template<std::float_round_style R> | |
| uint16 | float2half_impl (double value, true_type) |
| template<std::float_round_style R, typename T > | |
| uint16 | float2half_impl (T value,...) |
| template<std::float_round_style R, typename T > | |
| uint16 | float2half (T value) |
| template<std::float_round_style R, bool S, typename T > | |
| uint16 | int2half_impl (T value) |
| template<std::float_round_style R, typename T > | |
| uint16 | int2half (T value) |
| float | half2float_impl (uint16 value, float, true_type) |
| double | half2float_impl (uint16 value, double, true_type) |
| template<typename T > | |
| T | half2float_impl (uint16 value, T,...) |
| template<typename T > | |
| T | half2float (uint16 value) |
| template<std::float_round_style R, bool E, typename T > | |
| T | half2int_impl (uint16 value) |
| template<std::float_round_style R, typename T > | |
| T | half2int (uint16 value) |
| template<typename T > | |
| T | half2int_up (uint16 value) |
| template<std::float_round_style R, bool E> | |
| uint16 | round_half_impl (uint16 value) |
| template<std::float_round_style R> | |
| uint16 | round_half (uint16 value) |
| uint16 | round_half_up (uint16 value) |
Comparison operators | |
| template<typename T , typename U > | |
| enable< bool, T, U >::type | operator== (T x, U y) |
| template<typename T , typename U > | |
| enable< bool, T, U >::type | operator!= (T x, U y) |
| template<typename T , typename U > | |
| enable< bool, T, U >::type | operator< (T x, U y) |
| template<typename T , typename U > | |
| enable< bool, T, U >::type | operator> (T x, U y) |
| template<typename T , typename U > | |
| enable< bool, T, U >::type | operator<= (T x, U y) |
| template<typename T , typename U > | |
| enable< bool, T, U >::type | operator>= (T x, U y) |
Arithmetic operators | |
| template<typename T , typename U > | |
| enable< expr, T, U >::type | operator+ (T x, U y) |
| template<typename T , typename U > | |
| enable< expr, T, U >::type | operator- (T x, U y) |
| template<typename T , typename U > | |
| enable< expr, T, U >::type | operator* (T x, U y) |
| template<typename T , typename U > | |
| enable< expr, T, U >::type | operator/ (T x, U y) |
| template<typename T > | |
| HALF_CONSTEXPR enable< T, T >::type | operator+ (T arg) |
| template<typename T > | |
| HALF_CONSTEXPR enable< T, T >::type | operator- (T arg) |
Input and output | |
| template<typename T , typename charT , typename traits > | |
| enable< std::basic_ostream< charT, traits > &, T >::type | operator<< (std::basic_ostream< charT, traits > &out, T arg) |
| template<typename charT , typename traits > | |
| std::basic_istream< charT, traits > & | operator>> (std::basic_istream< charT, traits > &in, half &arg) |
Basic mathematical operations | |
| half | abs (half arg) |
| expr | abs (expr arg) |
| half | fabs (half arg) |
| expr | fabs (expr arg) |
| expr | fmod (half x, half y) |
| expr | fmod (half x, expr y) |
| expr | fmod (expr x, half y) |
| expr | fmod (expr x, expr y) |
| expr | remainder (half x, half y) |
| expr | remainder (half x, expr y) |
| expr | remainder (expr x, half y) |
| expr | remainder (expr x, expr y) |
| expr | remquo (half x, half y, int *quo) |
| expr | remquo (half x, expr y, int *quo) |
| expr | remquo (expr x, half y, int *quo) |
| expr | remquo (expr x, expr y, int *quo) |
| expr | fma (half x, half y, half z) |
| expr | fma (half x, half y, expr z) |
| expr | fma (half x, expr y, half z) |
| expr | fma (half x, expr y, expr z) |
| expr | fma (expr x, half y, half z) |
| expr | fma (expr x, half y, expr z) |
| expr | fma (expr x, expr y, half z) |
| expr | fma (expr x, expr y, expr z) |
| half | fmax (half x, half y) |
| expr | fmax (half x, expr y) |
| expr | fmax (expr x, half y) |
| expr | fmax (expr x, expr y) |
| half | fmin (half x, half y) |
| expr | fmin (half x, expr y) |
| expr | fmin (expr x, half y) |
| expr | fmin (expr x, expr y) |
| expr | fdim (half x, half y) |
| expr | fdim (half x, expr y) |
| expr | fdim (expr x, half y) |
| expr | fdim (expr x, expr y) |
| half | nanh (const char *) |
Exponential functions | |
| expr | exp (half arg) |
| expr | exp (expr arg) |
| expr | expm1 (half arg) |
| expr | expm1 (expr arg) |
| expr | exp2 (half arg) |
| expr | exp2 (expr arg) |
| expr | log (half arg) |
| expr | log (expr arg) |
| expr | log10 (half arg) |
| expr | log10 (expr arg) |
| expr | log1p (half arg) |
| expr | log1p (expr arg) |
| expr | log2 (half arg) |
| expr | log2 (expr arg) |
Power functions | |
| expr | sqrt (half arg) |
| expr | sqrt (expr arg) |
| expr | cbrt (half arg) |
| expr | cbrt (expr arg) |
| expr | hypot (half x, half y) |
| expr | hypot (half x, expr y) |
| expr | hypot (expr x, half y) |
| expr | hypot (expr x, expr y) |
| expr | pow (half base, half exp) |
| expr | pow (half base, expr exp) |
| expr | pow (expr base, half exp) |
| expr | pow (expr base, expr exp) |
Trigonometric functions | |
| expr | sin (half arg) |
| expr | sin (expr arg) |
| expr | cos (half arg) |
| expr | cos (expr arg) |
| expr | tan (half arg) |
| expr | tan (expr arg) |
| expr | asin (half arg) |
| expr | asin (expr arg) |
| expr | acos (half arg) |
| expr | acos (expr arg) |
| expr | atan (half arg) |
| expr | atan (expr arg) |
| expr | atan2 (half x, half y) |
| expr | atan2 (half x, expr y) |
| expr | atan2 (expr x, half y) |
| expr | atan2 (expr x, expr y) |
Hyperbolic functions | |
| expr | sinh (half arg) |
| expr | sinh (expr arg) |
| expr | cosh (half arg) |
| expr | cosh (expr arg) |
| expr | tanh (half arg) |
| expr | tanh (expr arg) |
| expr | asinh (half arg) |
| expr | asinh (expr arg) |
| expr | acosh (half arg) |
| expr | acosh (expr arg) |
| expr | atanh (half arg) |
| expr | atanh (expr arg) |
Error and gamma functions | |
| expr | erf (half arg) |
| expr | erf (expr arg) |
| expr | erfc (half arg) |
| expr | erfc (expr arg) |
| expr | lgamma (half arg) |
| expr | lgamma (expr arg) |
| expr | tgamma (half arg) |
| expr | tgamma (expr arg) |
Rounding | |
| half | ceil (half arg) |
| half | ceil (expr arg) |
| half | floor (half arg) |
| half | floor (expr arg) |
| half | trunc (half arg) |
| half | trunc (expr arg) |
| half | round (half arg) |
| half | round (expr arg) |
| long | lround (half arg) |
| long | lround (expr arg) |
| half | nearbyint (half arg) |
| half | nearbyint (expr arg) |
| half | rint (half arg) |
| half | rint (expr arg) |
| long | lrint (half arg) |
| long | lrint (expr arg) |
Floating point manipulation | |
| half | frexp (half arg, int *exp) |
| half | frexp (expr arg, int *exp) |
| half | ldexp (half arg, int exp) |
| half | ldexp (expr arg, int exp) |
| half | modf (half arg, half *iptr) |
| half | modf (expr arg, half *iptr) |
| half | scalbn (half arg, int exp) |
| half | scalbn (expr arg, int exp) |
| half | scalbln (half arg, long exp) |
| half | scalbln (expr arg, long exp) |
| int | ilogb (half arg) |
| int | ilogb (expr arg) |
| half | logb (half arg) |
| half | logb (expr arg) |
| half | nextafter (half from, half to) |
| half | nextafter (half from, expr to) |
| half | nextafter (expr from, half to) |
| half | nextafter (expr from, expr to) |
| half | nexttoward (half from, long double to) |
| half | nexttoward (expr from, long double to) |
| half | copysign (half x, half y) |
| half | copysign (half x, expr y) |
| half | copysign (expr x, half y) |
| half | copysign (expr x, expr y) |
Floating point classification | |
| int | fpclassify (half arg) |
| int | fpclassify (expr arg) |
| bool | isfinite (half arg) |
| bool | isfinite (expr arg) |
| bool | isinf (half arg) |
| bool | isinf (expr arg) |
| bool | isnan (half arg) |
| bool | isnan (expr arg) |
| bool | isnormal (half arg) |
| bool | isnormal (expr arg) |
| bool | signbit (half arg) |
| bool | signbit (expr arg) |
Comparison | |
| bool | isgreater (half x, half y) |
| bool | isgreater (half x, expr y) |
| bool | isgreater (expr x, half y) |
| bool | isgreater (expr x, expr y) |
| bool | isgreaterequal (half x, half y) |
| bool | isgreaterequal (half x, expr y) |
| bool | isgreaterequal (expr x, half y) |
| bool | isgreaterequal (expr x, expr y) |
| bool | isless (half x, half y) |
| bool | isless (half x, expr y) |
| bool | isless (expr x, half y) |
| bool | isless (expr x, expr y) |
| bool | islessequal (half x, half y) |
| bool | islessequal (half x, expr y) |
| bool | islessequal (expr x, half y) |
| bool | islessequal (expr x, expr y) |
| bool | islessgreater (half x, half y) |
| bool | islessgreater (half x, expr y) |
| bool | islessgreater (expr x, half y) |
| bool | islessgreater (expr x, expr y) |
| bool | isunordered (half x, half y) |
| bool | isunordered (half x, expr y) |
| bool | isunordered (expr x, half y) |
| bool | isunordered (expr x, expr y) |
Casting | |
| template<typename T , typename U > | |
| T | half_cast (U arg) |
| template<typename T , std::float_round_style R, typename U > | |
| T | half_cast (U arg) |
Variables | |
| HALF_CONSTEXPR_CONST binary_t | binary = binary_t() |
| Tag for binary construction. | |
| typedef bool_type<false> half_float::detail::false_type |
| typedef bool_type<true> half_float::detail::true_type |
| typedef unsigned short half_float::detail::uint16 |
Unsigned integer of (at least) 16 bits width.
Absolute value.
| arg | operand |
Arc cosine function.
| arg | function argument |
Hyperbolic area cosine.
| arg | function argument |
Arc sine.
| arg | function argument |
Hyperbolic area sine.
| arg | function argument |
Arc tangent function.
| arg | function argument |
Arc tangent function.
| x | first argument |
| y | second argument |
Hyperbolic area tangent.
| arg | function argument |
| bool half_float::detail::builtin_isinf | ( | T | arg | ) |
Check for infinity.
| T | argument type (builtin floating point type) |
| arg | value to query |
| true | if infinity |
| false | else |
| bool half_float::detail::builtin_isnan | ( | T | arg | ) |
Check for NaN.
| T | argument type (builtin floating point type) |
| arg | value to query |
| true | if not a number |
| false | else |
| bool half_float::detail::builtin_signbit | ( | T | arg | ) |
Check sign.
| T | argument type (builtin floating point type) |
| arg | value to query |
| true | if signbit set |
| false | else |
Cubic root.
| arg | function argument |
Nearest integer not less than half value.
| arg | half to round |
Take sign.
| x | value to change sign for |
| y | value to take sign from |
Cosine function.
| arg | function argument |
Hyperbolic cosine.
| arg | function argument |
Error function.
| arg | function argument |
Complementary error function.
| arg | function argument |
Exponential function.
| arg | function argument |
Binary exponential.
| arg | function argument |
Exponential minus one.
| arg | function argument |
Absolute value.
| arg | operand |
Positive difference.
| x | first operand |
| y | second operand |
| uint16 half_float::detail::float2half | ( | T | value | ) |
Convert floating point to half-precision.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| T | source type (builtin floating point type) |
| value | floating point value |
| uint16 half_float::detail::float2half_impl | ( | double | value, |
| true_type | ) |
Convert IEEE double-precision to half-precision.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| value | double-precision value |
| uint16 half_float::detail::float2half_impl | ( | float | value, |
| true_type | ) |
Convert IEEE single-precision to half-precision. Credit for this goes to Jeroen van der Zijp.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| value | single-precision value |
| uint16 half_float::detail::float2half_impl | ( | T | value, |
| ... ) |
Convert non-IEEE floating point to half-precision.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| T | source type (builtin floating point type) |
| value | floating point value |
Nearest integer not greater than half value.
| arg | half to round |
Fused multiply add.
| x | first operand |
| y | second operand |
| z | third operand |
Maximum of half expressions.
| x | first operand |
| y | second operand |
Minimum of half expressions.
| x | first operand |
| y | second operand |
Remainder of division.
| x | first operand |
| y | second operand |
|
inline |
|
inline |
Classify floating point value.
| 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 |
Decompress floating point number.
| arg | number to decompress |
| exp | address to store exponent at |
| T half_float::detail::half2float | ( | uint16 | value | ) |
Convert half-precision to floating point.
| T | type to convert to (builtin integer type) |
| value | binary representation of half-precision value |
Convert half-precision to IEEE double-precision.
| value | binary representation of half-precision value |
Convert half-precision to IEEE single-precision. Credit for this goes to Jeroen van der Zijp.
| value | binary representation of half-precision value |
| T half_float::detail::half2float_impl | ( | uint16 | value, |
| T | , | ||
| ... ) |
Convert half-precision to non-IEEE floating point.
| T | type to convert to (builtin integer type) |
| value | binary representation of half-precision value |
| T half_float::detail::half2int | ( | uint16 | value | ) |
Convert half-precision floating point to integer.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| T | type to convert to (buitlin integer type with at least 16 bits precision, excluding any implicit sign bits) |
| value | binary representation of half-precision value |
| T half_float::detail::half2int_impl | ( | uint16 | value | ) |
Convert half-precision floating point to integer.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| E | true for round to even, false for round away from zero |
| T | type to convert to (buitlin integer type with at least 16 bits precision, excluding any implicit sign bits) |
| value | binary representation of half-precision value |
| T half_float::detail::half2int_up | ( | uint16 | value | ) |
Convert half-precision floating point to integer using round-to-nearest-away-from-zero.
| T | type to convert to (buitlin integer type with at least 16 bits precision, excluding any implicit sign bits) |
| value | binary representation of half-precision value |
| T half_float::detail::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 given rounding mode, without any roundtrip over float that a static_cast would otherwise do. It uses the default rounding mode.
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 is just a no-op.
| T | destination type (half or built-in arithmetic type) |
| U | source type (half or built-in arithmetic type) |
| arg | value to cast |
| T half_float::detail::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 given 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 is just a no-op.
| 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 |
Hypotenuse function.
| x | first argument |
| y | second argument |
|
inline |
|
inline |
Extract exponent.
| arg | number to query |
| FP_ILOGB0 | for zero |
| FP_ILOGBNAN | for NaN |
| MAX_INT | for infinity |
| uint16 half_float::detail::int2half | ( | T | value | ) |
Convert integer to half-precision floating point.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| T | type to convert (builtin integer type) |
| value | integral value |
| uint16 half_float::detail::int2half_impl | ( | T | value | ) |
Convert integer to half-precision floating point.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| S | true if value negative, false else |
| T | type to convert (builtin integer type) |
| value | non-negative integral value |
|
inline |
|
inline |
Check if finite number.
| arg | number to check |
| true | if neither infinity nor NaN |
| false | else |
Comparison for greater than.
| x | first operand |
| y | second operand |
| true | if x greater than y |
| false | else |
Comparison for greater equal.
| x | first operand |
| y | second operand |
| true | if x greater equal y |
| false | else |
|
inline |
|
inline |
Check for infinity.
| arg | number to check |
| true | for positive or negative infinity |
| false | else |
Comparison for less than.
| x | first operand |
| y | second operand |
| true | if x less than y |
| false | else |
Comparison for less equal.
| x | first operand |
| y | second operand |
| true | if x less equal y |
| false | else |
Comarison for less or greater.
| x | first operand |
| y | second operand |
| true | if either less or greater |
| false | else |
|
inline |
|
inline |
Check for NaN.
| arg | number to check |
| true | for NaNs |
| false | else |
|
inline |
|
inline |
Check if normal number.
| arg | number to check |
| true | if normal number |
| false | if either subnormal, zero, infinity or NaN |
Check if unordered.
| x | first operand |
| y | second operand |
| true | if unordered (one or two NaN operands) |
| false | else |
Multiply by power of two.
| arg | number to modify |
| exp | power of two to multiply with |
Natural logarithm of gamma function.
| arg | function argument |
Natural logorithm.
| arg | function argument |
Common logorithm.
| arg | function argument |
Natural logorithm.
| arg | function argument |
Binary logorithm.
| arg | function argument |
Extract exponent.
| arg | number to query |
|
inline |
|
inline |
Nearest integer using half's internal rounding mode.
| arg | half expression to round |
|
inline |
|
inline |
Nearest integer.
| arg | half to round |
Extract integer and fractional parts.
| arg | number to decompress |
| iptr | address to store integer part at |
|
inline |
Get NaN value.
Nearest integer using half's internal rounding mode.
| arg | half expression to round |
Next representable value.
| from | value to compute next representable value for |
| to | direction towards which to compute next value |
Next representable value.
| from | value to compute next representable value for |
| to | direction towards which to compute next value |
| enable< bool, T, U >::type half_float::detail::operator!= | ( | T | x, |
| U | y ) |
Comparison for inequality.
| x | first operand |
| y | second operand |
| true | if operands not equal |
| false | else |
| enable< expr, T, U >::type half_float::detail::operator* | ( | T | x, |
| U | y ) |
Multiply halfs.
| x | left operand |
| y | right operand |
| HALF_CONSTEXPR enable< T, T >::type half_float::detail::operator+ | ( | T | arg | ) |
Identity.
| arg | operand |
| enable< expr, T, U >::type half_float::detail::operator+ | ( | T | x, |
| U | y ) |
Add halfs.
| x | left operand |
| y | right operand |
| HALF_CONSTEXPR enable< T, T >::type half_float::detail::operator- | ( | T | arg | ) |
Negation.
| arg | operand |
| enable< expr, T, U >::type half_float::detail::operator- | ( | T | x, |
| U | y ) |
Subtract halfs.
| x | left operand |
| y | right operand |
| enable< expr, T, U >::type half_float::detail::operator/ | ( | T | x, |
| U | y ) |
Divide halfs.
| x | left operand |
| y | right operand |
| enable< bool, T, U >::type half_float::detail::operator< | ( | T | x, |
| U | y ) |
Comparison for less than.
| x | first operand |
| y | second operand |
| true | if x less than y |
| false | else |
| enable< std::basic_ostream< charT, traits > &, T >::type half_float::detail::operator<< | ( | std::basic_ostream< charT, traits > & | out, |
| T | arg ) |
Output operator.
| out | output stream to write into |
| arg | half expression to write |
| enable< bool, T, U >::type half_float::detail::operator<= | ( | T | x, |
| U | y ) |
Comparison for less equal.
| x | first operand |
| y | second operand |
| true | if x less equal y |
| false | else |
| enable< bool, T, U >::type half_float::detail::operator== | ( | T | x, |
| U | y ) |
Comparison for equality.
| x | first operand |
| y | second operand |
| true | if operands equal |
| false | else |
| enable< bool, T, U >::type half_float::detail::operator> | ( | T | x, |
| U | y ) |
Comparison for greater than.
| x | first operand |
| y | second operand |
| true | if x greater than y |
| false | else |
| enable< bool, T, U >::type half_float::detail::operator>= | ( | T | x, |
| U | y ) |
Comparison for greater equal.
| x | first operand |
| y | second operand |
| true | if x greater equal y |
| false | else |
| std::basic_istream< charT, traits > & half_float::detail::operator>> | ( | std::basic_istream< charT, traits > & | in, |
| half & | arg ) |
Input operator.
| in | input stream to read from |
| arg | half to read into |
Power function.
| base | first argument |
| exp | second argument |
Remainder of division.
| x | first operand |
| y | second operand |
Remainder of division.
| x | first operand |
| y | second operand |
| quo | address to store some bits of quotient at |
Nearest integer using half's internal rounding mode.
| arg | half expression to round |
Nearest integer.
| arg | half to round |
Round half-precision number to nearest integer value.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| value | binary representation of half-precision value |
| uint16 half_float::detail::round_half_impl | ( | uint16 | value | ) |
Round half-precision number to nearest integer value.
| R | rounding mode to use, std::round_indeterminate for fastest rounding |
| E | true for round to even, false for round away from zero |
| value | binary representation of half-precision value |
Round half-precision number to nearest integer value using round-to-nearest-away-from-zero.
| value | binary representation of half-precision value |
Multiply by power of two.
| arg | number to modify |
| exp | power of two to multiply with |
Multiply by power of two.
| arg | number to modify |
| exp | power of two to multiply with |
|
inline |
|
inline |
Check sign.
| arg | number to check |
| true | for negative number |
| false | for positive number |
Sine function.
| arg | function argument |
Hyperbolic sine.
| arg | function argument |
Square root.
| arg | function argument |
Tangent function.
| arg | function argument |
Hyperbolic tangent.
| arg | function argument |
Gamma function.
| arg | function argument |
Nearest integer not greater in magnitude than half value.
| arg | half to round |
| HALF_CONSTEXPR_CONST binary_t half_float::detail::binary = binary_t() |
Tag for binary construction.