The Open Group Base Specifications Issue 8
IEEE Std 1003.1-2024
Copyright © 2001-2024 The IEEE and The Open Group

NAME

fabs, fabsf, fabsl — absolute value function

SYNOPSIS

#include <math.h>

double fabs(double
x);
float fabsf(float
x);
long double fabsl(long double
x);

DESCRIPTION

[CX] [Option Start] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2024 defers to the ISO C standard. [Option End]

These functions shall compute the absolute value of their argument x,|x|.

RETURN VALUE

Upon successful completion, these functions shall return the absolute value of x.

[MX] [Option Start] The returned value shall be exact and shall be independent of the current rounding direction mode.

If x is NaN, a NaN shall be returned.

If x is ±0, +0 shall be returned.

If x is ±Inf, +Inf shall be returned. [Option End]

ERRORS

No errors are defined.


The following sections are informative.

EXAMPLES

Computing the 1-Norm of a Floating-Point Vector

This example shows the use of fabs() to compute the 1-norm of a vector defined as follows:

norm1(v) = |v[0]| + |v[1]| + ... + |v[n-1]|

where |x| denotes the absolute value of x, n denotes the vector's dimension v[i] denotes the i-th component of v (0<=i<n).

#include <math.h>

double norm1(const double v[], const int n) { int i; double n1_v; /* 1-norm of v */
n1_v = 0; for (i=0; i<n; i++) { n1_v += fabs (v[i]); }
return n1_v; }

APPLICATION USAGE

None.

RATIONALE

None.

FUTURE DIRECTIONS

None.

SEE ALSO

isnan

XBD <math.h>

CHANGE HISTORY

First released in Issue 1. Derived from Issue 1 of the SVID.

Issue 5

The DESCRIPTION is updated to indicate how an application should check for an error. This text was previously published in the APPLICATION USAGE section.

Issue 6

The fabsf() and fabsl() functions are added for alignment with the ISO/IEC 9899:1999 standard.

The DESCRIPTION, RETURN VALUE, ERRORS, and APPLICATION USAGE sections are revised to align with the ISO/IEC 9899:1999 standard.

IEC 60559:1989 standard floating-point extensions over the ISO/IEC 9899:1999 standard are marked.

IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/27 is applied, adding the example to the EXAMPLES section.

Issue 8

Austin Group Defect 1302 is applied, aligning these functions with the ISO/IEC 9899:2018 standard.

End of informative text.

 

return to top of page

UNIX® is a registered Trademark of The Open Group.
POSIX™ is a Trademark of The IEEE.
Copyright © 2001-2024 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]