CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Wed, 23 Jul 2025 08:10:59 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/cmath/fma/
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 23 Jul 2025 08:10:59 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"9f2b-zqgChX0LqDS6B/cm2VW+V7SsB1c"
Content-Encoding: gzip
Returns x*y+z.
The function computes the result without losing precision in any intermediate result.
The following macro constants may be defined in an implementation to signal that this function generally provides an efficiency improvement over performing the arithmetic operations in
Output:
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<cmath> (math.h)
functions
- abs
- acos
-
acoshC++11
- asin
-
asinhC++11
- atan
- atan2
-
atanhC++11
-
cbrtC++11
- ceil
-
copysignC++11
- cos
- cosh
-
erfC++11
-
erfcC++11
- exp
-
exp2C++11
-
expm1C++11
- fabs
-
fdimC++11
- floor
-
fmaC++11
-
fmaxC++11
-
fminC++11
- fmod
-
fpclassifyC++11
- frexp
-
hypotC++11
-
ilogbC++11
-
isfiniteC++11
-
isgreaterC++11
-
isgreaterequalC++11
-
isinfC++11
-
islessC++11
-
islessequalC++11
-
islessgreaterC++11
-
isnanC++11
-
isnormalC++11
-
isunorderedC++11
- ldexp
-
lgammaC++11
-
llrintC++11
-
llroundC++11
- log
- log10
-
log1pC++11
-
log2C++11
-
logbC++11
-
lrintC++11
-
lroundC++11
- modf
-
nanC++11
-
nanfC++11
-
nanlC++11
-
nearbyintC++11
-
nextafterC++11
-
nexttowardC++11
- pow
-
remainderC++11
-
remquoC++11
-
rintC++11
-
roundC++11
-
scalblnC++11
-
scalbnC++11
-
signbitC++11
- sin
- sinh
- sqrt
- tan
- tanh
-
tgammaC++11
-
truncC++11
macro constants
types
function
<cmath> <ctgmath>
fma
double fma (double x , double y , double z); float fmaf (float x , float y , float z);long double fmal (long double x, long double y, long double z);
double fma (double x , double y , double z); float fma (float x , float y , float z);long double fma (long double x, long double y, long double z); double fma (Type1 x , Type2 y , Type3 z); // additional overloads
Multiply-add
The function computes the result without losing precision in any intermediate result.
The following macro constants may be defined in an implementation to signal that this function generally provides an efficiency improvement over performing the arithmetic operations in
x*y+z
(such as when a hardware multiply-add instruction is used):macro | description |
---|---|
FP_FAST_FMA | For arguments of type double , it generally executes about as fast as, or faster than, x*y+z . |
FP_FAST_FMAF | For arguments of type float , it generally executes about as fast as, or faster than, x*y+z . |
FP_FAST_FMAL | For arguments of type long double , it generally executes about as fast as, or faster than, x*y+z . |
Header <tgmath.h> provides a type-generic macro version of this function.
Additional overloads are provided in this header (
<cmath>
) for other combinations of arithmetic types (Type1, Type2 and Type3): These overloads effectively cast its arguments to double
before calculations, except if at least one of the arguments is of type long double
(in which case all of them are casted to long double
instead).Parameters
- x, y
- Values to be multiplied.
- z
- Value to be added.
Return Value
The result ofx*y+z
Example
|
|
Output:
10.0 * 20.0 + 30.0 = 230.000000 |
See also
- fmin
- Minimum value (function)
- fdim
- Positive difference (function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us