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.