The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 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] 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-2008 defers to the ISO C standard.

> 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] 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.

#### 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.

End of informative text.

return to top of page

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