What is fmaf in C?
The fmaf function is defined in the <math.h> header file in C. It takes in three parameters of type float: x, y, and z. It then computes and returns the resultant float value.
The illustration below shows how the fmaf function works:
Declaration
The fmaf function is defined as follows:
float fmaf( float x, float y, float z );
Parameters
The fmaf function takes in three parameters of type float. The first two parameters, x and y, are multiplied together. Their product is then added to the third parameter, z.
Return value
The fmaf function returns the result of the computation of type float.
Error handling
The fmaf function returns special values for certain arguments:
| x | y | z | Returned Value |
|---|---|---|---|
| 0 | INFINITY |
Not NaN |
NaN |
INFINITY |
0 | Not NaN |
NAN |
INFINITY |
0 | NaN |
NaN |
| 0 | INFINITY |
NaN |
NaN |
NaN |
valid float |
valid float |
NaN |
valid float |
NaN |
valid float |
NaN |
valid float |
valid float |
NaN |
NaN |
Example
The following code snippet shows how we can use the fmaf function:
#include <stdio.h> // include header for printf#include <math.h> // include header for fmafint main(){// setting values fpr x, y, and zfloat x = 2.0;float y = 4.0;float z = 5.0;float result;result = fmaf(x, y, z);printf("The result is: %f", result);return 0;}
The following code snippet shows how error handling in the fmaf function works:
#include <stdio.h> // include header for printf#include <math.h> // include header for fmafint main(){float x = INFINITY; // setting x to INFINITYfloat y = 0.0;float z = 5.0;float result;result = fmaf(x, y, z);printf("The result is: %f", result);return 0;}
Free Resources
Copyright ©2026 Educative, Inc. All rights reserved