| Name | Description | Notes | Source | Availability | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
FP_ |
Indicator of fast multiply-add operation | ? | M | <math.h> |
C99 | C11 | |||||
FP_ |
Indicator of fast multiply-add operation | ? | M | <math.h> |
C99 | C11 | |||||
FP_ |
Indicator of fast multiply-add operation | ? | M | <math.h> |
C99 | C11 | |||||
fma() |
Multiply and add | M | (·) | <tgmath.h> |
C99 | C11 | |||||
fma() |
Multiply and add | (·) | <math.h> |
C99 | C11 | ||||||
fmaf() |
Multiply and add | (·) | <math.h> |
C99 | C11 | ||||||
fmal() |
Multiply and add | (·) | <math.h> |
C99 | C11 | ||||||
scalbln() |
Compose floating-point number | M | (·) | <tgmath.h> |
C99 | C11 | |||||
scalbln() |
Compose floating-point number | (·) | <math.h> |
C99 | C11 | ||||||
scalblnf() |
Compose floating-point number | (·) | <math.h> |
C99 | C11 | ||||||
scalblnl() |
Compose floating-point number | (·) | <math.h> |
C99 | C11 | ||||||
scalbn() |
Compose floating-point number | (·) | <math.h> |
C99 | C11 | ||||||
scalbn() |
Compose floating-point number | M | (·) | <tgmath.h> |
C99 | C11 | |||||
scalbnf() |
Compose floating-point number | (·) | <math.h> |
C99 | C11 | ||||||
scalbnl() |
Compose floating-point number | (·) | <math.h> |
C99 | C11 | ||||||
- multiplicative-expression
multiplicative-expression * cast-expression- assignment-expression
unary-expression assignment-operator assignment-expression- assignment-operator
*=
The operator * performs
multiplication. Its operands must be of arithmetic type.
Standard arithmetic promotions are applied to the
operands.
#include <math.h>
float fmaf(float x, float y, float z);
double fma(double x, double y, double z);
long double fmal(long double x, long double y, long double z);
#include <tgmath.h>
real-floating-type fma(real-floating-type x, real-floating-type y, real-floating-type z);
The fma
functions return xy+z. If
FP_
is defined and expands to 1, it is
likely that fma will be
faster than an expression of the form x * y +
z with operands of type double.
FP_
is similarly defined for fmaf
and float, and
FP_
is similarly defined for fmal
and long double.
#include <math.h>
float scalbnf(float x, int n);
double scalbn(double x, int n);
long double scalbnl(long double x, int n);
float scalblnf(float x, long n);
double scalbln(double x, long n);
long double scalblnl(long double x, long n);
#include <tgmath.h>
real-floating-type scalbn(real-floating-type x, int n);
real-floating-type scalbln(real-floating-type x, long n);
The scalbn
and scalbln
functions compute
xbn, where
b is FLT_. They should be
able to do this more efficiently than by calling pow (say), because they just need to
modify the exponent.