# fmaf(3) [opendarwin man page]

```FMA(3)							   BSD Library Functions Manual 						    FMA(3)

NAME
fma -- multiply and add, then round

SYNOPSIS
#include <math.h>

double
fma(double x, double y, double z);

float
fmaf(float x, float y, double z);

DESCRIPTION
The fma() and fmaf() functions compute (x*y)+z, rounded as one ternary operation: they compute the value (as if) to infinite precision and
round once to the result format, according to the current rounding mode.

SPECIAL VALUES
fma(x, y, z) returns a NaN and optionally raises the "invalid" floating-point exception if one of x and y is infinite, the other is 0, and z
is a NaN.

fma(x, y, z) returns a NaN and raises the "invalid" floating-point exception if one of x and y is infinite, the other is 0, and z is not NaN.

fma(x, y, z) returns a NaN and raises the "invalid" floating-point exception if x times y is an exact infinity, and z is also an infinity but
with the opposite sign.

fdim(3), fmax(3), fmin(3)

STANDARDS
The fma() and fmaf() functions conform to ISO/IEC 9899:1999(E).

BSD								   July 24, 2003							       BSD```

## Check Out this Related Man Page

```fma(3M) 						  Mathematical Library Functions						   fma(3M)

NAME
fma, fmaf, fmal - floating-point multiply-add

SYNOPSIS
c99 [ flag... ] file... -lm [ library... ]
#include <math.h>

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);

DESCRIPTION
These  functions compute (x * y) + z, rounded as one ternary operation. They compute the value (as if) to infinite precision and round once
to the result format, according to the rounding mode characterized by the value of FLT_ROUNDS.

RETURN VALUES
Upon successful completion, these functions return (x * y) + z, rounded as one ternary operation.

If x or y are NaN, a NaN is returned.

If x multiplied by y is an exact infinity and z is also an infinity but with the opposite  sign,  a  domain  error  occurs  and	a  NaN	is
returned.

If one of x and y is infinite, the other is 0, and z is not a NaN, a domain error occurs and a NaN is returned.

If x*y is not 0*Inf nor Inf*0 and z is a NaN, a NaN is returned.

ERRORS
These functions will fail if:

Domain Error    The value of x*y+z is invalid or the value x*y is invalid.

If  the	integer  expression  (math_errhandling & MATH_ERREXCEPT) is non-zero, the invalid floating-point exception will be
raised.

Range Error     The result overflows.

If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, the overflow floating-point  exception  will	be
raised.

USAGE
An  application	wanting  to  check  for  exceptions should call feclearexcept(FE_ALL_EXCEPT) before calling these functions. On return, if
fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an exception  has  been  raised.  An  application  should
either examine the return value or check the floating point exception flags to detect exceptions.

ATTRIBUTES
See attributes(5) for descriptions of the following attributes:

+-----------------------------+-----------------------------+
|      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
+-----------------------------+-----------------------------+
|Interface Stability	     |Standard			   |
+-----------------------------+-----------------------------+
|MT-Level		     |MT-Safe			   |
+-----------------------------+-----------------------------+

SunOS 5.11							    12 Jul 2006 							   fma(3M)```
Man Page

## Script fails when generated output file reaches a particular size

Hi All, New to unix. Here is the problem. Running a script that extracts data from hyperion essbase and generates a file in unix. This script fails most of the times with a very low success rate. The data has increased a lot in the last few months resulting in the file being more than 2 gb. ...

## Solaris SPARC speed issue

Hello helpful Unix gurus! First, I appreciate any help I can get. I have a product that we have ported (for years now) on Solaris SPARC 7.x OS from 1998 (or around that time I guess) that is compiled to a 32 executable. It has run (with various modifications over the years) on any Solaris...

## Merging two year files

Hi All, I need to merge few files as belowABC_NYFWFX.txt ABC_NYFQTFX.txt ABC_NYFMAFX.txt ABC_NYFAVFX.txt ABC_CYFWFX.txt ABC_CYFQTFX.txt ABC_CYFMAFX.txt ABC_CYFAVFX.txt ABC_CYBWFX.txt ABC_NYFWFX.txt & ABC_CYFWFX.txt should be merged into a single file and name should be...

## Changing date format with script

I'm trying to change date format using this script from day/month/year to month/day/year #!/bin/bash while read line; do echo "\$line" date=\$(echo "\$line" | cut -d/ -f1 ) month=\$(echo "\$line" | cut -d/ -f2 ) echo \$month"/"\$date"/2017" done < ~/Downloads/Dates.csv But I get output as...