Names specified here
Name Description Notes Source Availability
FP_FAST_FMA Indicator of fast multiply-add operation ? M <math.h> C99 C11
FP_FAST_FMAF Indicator of fast multiply-add operation ? M <math.h> C99 C11
FP_FAST_FMAL 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_FAST_FMA 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_FAST_FMAF is similarly defined for fmaf and float, and FP_FAST_FMAL 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_RADIX. They should be able to do this more efficiently than by calling pow (say), because they just need to modify the exponent.


CHaR
Sitemap Supported
Site format updated 2024-06-05T22:37:07.391+0000
Data updated 1970-01-01T00:00:00.000+0000
Page updated 2022-06-17T21:43:05.000+0000