Prototype | Description |
---|---|
double __exp(double); | Returns the exponential value. |
double __fabs(double); | Returns the absolute value of a double-precision floating-point. |
float __fabss(float); | Returns the absolute value of a single-precision floating-point. |
double __fcfid (double); | Floating Convert from Integer Doubleword
Converts a 64bit signed fixedpoint operand to a double-precision floating-point. |
double __fctid (double); | Floating Convert to Integer Doubleword
Converts a floating-point operand to a 64-bit signed fixed-point integer, using the rounding mode specified by FPSCRRN (Floating-Point Rounding Control field in the Floating-Point Status and Control Register). |
double __fctidz (double); | Floating Convert to Integer Doubleword with Rounding
towards Zero
Converts a floating-point operand to a 64-bit signed fixed-point integer, using the rounding mode round-toward-zero. |
double __fctiw (double); | Floating Convert to Integer Word
Converts a floating-point operand to a 32-bit signed fixed-point integer, using the rounding mode specified by FPSCRRN (Floating-Point Rounding Control field in the Floating-Point Status and Control Register). |
double __fctiwz (double); | Floating Convert to Integer Word with Rounding towards
Zero
Converts a floating-point operand to a 32-bit signed fixed-point integer, using the rounding mode round-toward-zero. |
double __fmadd(double, double, double); | Floating Point Multiply-Add |
float __fmadds(float, float, float); | Floating Point Multiply-Add Short |
double __fmsub(double, double, double); | Floating Point Multiply-Subtract |
float __fmsubs(float, float, float); | Floating Point Multiply-Subtract |
double __fmul (double, double); | Floating Point Multiply |
float __fmuls (float, float); | Floating Point Multiply |
double __fnabs(double); | Floating Point Negative Absolute |
float __fnabss(float); | Floating Point Negative Absolute |
double __fnmadd(double, double, double); | Floating Point Negative Multiply-Add |
float __fnmadds (float, float, float); | Floating Point Negative Multiply-Add |
double __fnmsub(double, double, double); | Floating Point Negative Multiply-Subtract
__fnmsubs (a, x, y) = [- (a * x - y)] |
float __fnmsubs (float, float, float); | Floating Point Negative Multiply-Subtract |
float __fre (double); | Floating Point Reciprocal
__fre (x) = [(estimate of) 1.0/x] Supported only when the target architecture is specified for POWER5 processors (-qarch is set to pwr5 or pwr5x). |
float __fres (float); | Floating Point Reciprocal
__fres (x) = [(estimate of) 1.0/x] |
double __frim (double); | Rounds the double argument to an integer using round-to-minus-infinity
mode, and returns the value as a double.
Supported only when the target architecture is specified for POWER5+ processors (-qarch is set to pwr5x). |
double __frin (double); | Rounds the double argument to an integer using round-to-nearest
mode, and returns the value as a double.
Supported only when the target architecture is specified for POWER5+ processors (-qarch is set to pwr5x). |
double __frip (double); | Rounds the double argument to an integer using round-to-plus-infinity
mode, and returns the value as a double.
Supported only when the target architecture is specified for POWER5+ processors (-qarch is set to pwr5x). |
double __friz (double); | Rounds the double argument to an integer using round-to-zero
mode, and returns the value as a double.
Supported only when the target architecture is specified for POWER5+ processors (-qarch is set to pwr5x). |
double __frsqrte (double); | Floating Point Reciprocal Square Root
__frsqrte (x) = [(estimate of) 1.0/sqrt(x)] |
float __frsqrtes (float); | Floating Point Reciprocal Square Root
__frsqrtes (x) = [(estimate of) 1.0/sqrt(x)]. Supported only when the target architecture is specified for POWER5 processors (-qarch is set to pwr5 or pwr5x). |
double __fsel (double, double, double); | Floating Point Select
if (a >= 0.0) then __fsel (a, x, y) = x; else __fsel (a, x, y) = y |
float __fsels (float, float, float); | Floating point select
if (a >= 0.0) then __fsels (a, x, y) = x; else __fsels (a, x, y) = y |
double __fsqrt (double); | Floating Point Square Root
__fsqrt (x) = square root of x |
float __fsqrts (float); | Floating Point Square Root
__fsqrts (x) = square root of x |
signed long __labs (signed long); | Calculates the absolute value of a long integer. |
void __mtfsb0(unsigned int bt); | Move to Floating Point Status/Control Register (FPSCR)
Bit 0
Sets bit bt of the FPSCR to 0. bt must be a constant and 0<=bt<=31. |
void __mtfsb1(unsigned int bt); | Moves to FPSCR Bit 1
Sets bit bt of the FPSCR to 1. bt must be a constant and 0<=bt<=31. |
void __mtfsf(unsigned int flm, unsigned int frb); | Move to FPSCR Fields
Places the contents of frb into the FPSCR under control of the field mask specified by flm. The field mask flm identifies the 4bit fields of the FPSCR affected. flm must be a constant 8-bit mask. |
void __mtfsfi(unsigned int bf, unsigned int u); | Move to FPSCR Field Immediate
Places the value of u into the FPSCR field specified by bf. bf and u must be constants, with 0<=bf<=7 and 0<=u<=15. |
double __pow(double, double); | Calculates the value of the first argument raised to the power of the second argument. |
double __readflm(); | Reads the FPSCR. |
double __setflm(double); | Sets the FPSCR. |
double __setrnd(int); | Sets the rounding mode.
The allowable values for the argument are:
|
void __stfiw( const int* addr, double value); | Store Floating Point as Integer Word
Stores the contents of the loworder 32 bits of value, without conversion, into the word in storage addressed by addr. |
double __swdiv_nochk(double, double); | Floating-point division of double types; no range checking.
This function can provide better performance than the normal divide operator
or the __swdiv built-in function in situations where division is
performed repeatedly in a loop and when arguments are within the permitted
ranges.
Argument restrictions: numerators equal to infinity are not allowed; denominators equal to infinity, zero, or denormalized are not allowed; the quotient of numerator and denominator may not be equal to positive or negative infinity. With -qstrict in effect, the result is identical bitwise to IEEE division. For correct operation in this scenario, the arguments must satisfy the following additional restrictions. Numerators must have an absolute value greater than 2 ^ (-970) and less than infinity. Denominators must have an absolute value greater than 2 ^ (-1022) and less than 2 ^ 1021. The quotient of numerator and denominator must have an absolute value greater than 2 ^ (-1021) and less than 2 ^ 1023. |
double __swdiv(double, double); | Floating-point division of double types. No argument restrictions. |
float __swdivs_nochk(float, float); | Floating-point division of float types; no range checking. Argument restrictions: numerators equal to infinity are not allowed; denominators equal to infinity, zero, or denormalized are not allowed; the quotient of numerator and denominator may not be equal to positive or negative infinity. |
float __swdivs(float, float); | Floating-point division of double types. No argument restrictions. |