Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Add manpage to the fma function in libm.
details: https://anonhg.NetBSD.org/src/rev/f3b97356fff1
branches: trunk
changeset: 342204:f3b97356fff1
user: nros <nros%NetBSD.org@localhost>
date: Sat Dec 12 19:05:45 2015 +0000
description:
Add manpage to the fma function in libm.
The manpage is taken from the FreeBSD project since the fma implementation is
based on the one in FreeBSD.
diffstat:
distrib/sets/lists/comp/mi | 11 +++-
lib/libm/Makefile | 6 +-
lib/libm/man/fma.3 | 126 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 140 insertions(+), 3 deletions(-)
diffs (196 lines):
diff -r 7f4602875b1a -r f3b97356fff1 distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi Sat Dec 12 18:06:58 2015 +0000
+++ b/distrib/sets/lists/comp/mi Sat Dec 12 19:05:45 2015 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.2008 2015/11/29 06:10:01 pgoyette Exp $
+# $NetBSD: mi,v 1.2009 2015/12/12 19:05:45 nros Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
./etc/mtree/set.comp comp-sys-root
@@ -6231,6 +6231,9 @@
./usr/share/man/cat3/fls64.0 comp-c-catman .cat
./usr/share/man/cat3/flushinp.0 comp-c-catman .cat
./usr/share/man/cat3/flushok.0 comp-c-catman .cat
+./usr/share/man/cat3/fma.0 comp-c-catman .cat
+./usr/share/man/cat3/fmaf.0 comp-c-catman .cat
+./usr/share/man/cat3/fmal.0 comp-c-catman .cat
./usr/share/man/cat3/fmax.0 comp-c-catman .cat
./usr/share/man/cat3/fmaxf.0 comp-c-catman .cat
./usr/share/man/cat3/fmaxl.0 comp-c-catman .cat
@@ -13208,6 +13211,9 @@
./usr/share/man/html3/fls64.html comp-c-htmlman html
./usr/share/man/html3/flushinp.html comp-c-htmlman html
./usr/share/man/html3/flushok.html comp-c-htmlman html
+./usr/share/man/html3/fma.html comp-c-htmlman html
+./usr/share/man/html3/fmaf.html comp-c-htmlman html
+./usr/share/man/html3/fmal.html comp-c-htmlman html
./usr/share/man/html3/fmax.html comp-c-htmlman html
./usr/share/man/html3/fmaxf.html comp-c-htmlman html
./usr/share/man/html3/fmaxl.html comp-c-htmlman html
@@ -20096,6 +20102,9 @@
./usr/share/man/man3/fls64.3 comp-c-man .man
./usr/share/man/man3/flushinp.3 comp-c-man .man
./usr/share/man/man3/flushok.3 comp-c-man .man
+./usr/share/man/man3/fma.3 comp-c-man .man
+./usr/share/man/man3/fmaf.3 comp-c-man .man
+./usr/share/man/man3/fmal.3 comp-c-man .man
./usr/share/man/man3/fmax.3 comp-c-man .man
./usr/share/man/man3/fmaxf.3 comp-c-man .man
./usr/share/man/man3/fmaxl.3 comp-c-man .man
diff -r 7f4602875b1a -r f3b97356fff1 lib/libm/Makefile
--- a/lib/libm/Makefile Sat Dec 12 18:06:58 2015 +0000
+++ b/lib/libm/Makefile Sat Dec 12 19:05:45 2015 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.170 2015/09/13 10:58:30 he Exp $
+# $NetBSD: Makefile,v 1.171 2015/12/12 19:05:45 nros Exp $
#
# @(#)Makefile 5.1beta 93/09/24
#
@@ -278,7 +278,7 @@
MAN+= acos.3 acosh.3 asin.3 asinh.3 atan.3 atan2.3 atanh.3 \
ceil.3 copysign.3 cos.3 cosh.3 \
erf.3 exp.3 \
- fabs.3 finite.3 fmod.3 frexp.3 hypot.3 \
+ fabs.3 finite.3 fma.3 fmod.3 frexp.3 hypot.3 \
ieee_test.3 ilogb.3 isinff.3 j0.3 ldexp.3 lgamma.3 log.3 lrint.3 \
math.3 modf.3 nextafter.3 pow.3 \
remainder.3 rint.3 round.3 \
@@ -378,6 +378,8 @@
MLINKS+=fmax.3 fminf.3
MLINKS+=fdim.3 fdiml.3
MLINKS+=fdim.3 fdimf.3
+MLINKS+=fma.3 fmaf.3 \
+ fma.3 fmal.3
.if (${MKCOMPLEX} != "no")
.include "${.CURDIR}/complex/Makefile.inc"
diff -r 7f4602875b1a -r f3b97356fff1 lib/libm/man/fma.3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libm/man/fma.3 Sat Dec 12 19:05:45 2015 +0000
@@ -0,0 +1,126 @@
+.\" $NetBSD: fma.3,v 1.1 2015/12/12 19:05:45 nros Exp $
+.\" Copyright (c) 2005 David Schultz <das%FreeBSD.org@localhost>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD: head/lib/msun/man/fma.3 152755 2005-11-24 09:25:10Z joel $
+.\"
+.Dd November 23, 2015
+.Dt FMA 3
+.Os
+.Sh NAME
+.Nm fma ,
+.Nm fmaf ,
+.Nm fmal
+.Nd fused multiply-add
+.Sh LIBRARY
+.Lb libm
+.Sh SYNOPSIS
+.In math.h
+.Ft double
+.Fn fma "double x" "double y" "double z"
+.Ft float
+.Fn fmaf "float x" "float y" "float z"
+.Ft long double
+.Fn fmal "long double x" "long double y" "long double z"
+.Sh DESCRIPTION
+The
+.Fn fma ,
+.Fn fmaf ,
+and
+.Fn fmal
+functions return
+.No "(x * y) + z" ,
+computed with only one rounding error.
+Using the ordinary multiplication and addition operators, by contrast,
+results in two roundings: one for the intermediate product and one for
+the final result.
+.Pp
+For instance, the expression
+.No "1.2e100 * 2.0e208 - 1.4e308"
+produces \*(If due to overflow in the intermediate product, whereas
+.No "fma(1.2e100, 2.0e208, -1.4e308)"
+returns approximately 1.0e308.
+.Pp
+The fused multiply-add operation is often used to improve the
+accuracy of calculations such as dot products.
+It may also be used to improve performance on machines that implement
+it natively.
+The macros
+.Dv FP_FAST_FMA ,
+.Dv FP_FAST_FMAF
+and
+.Dv FP_FAST_FMAL
+may be defined in
+.In math.h
+to indicate that
+.Fn fma ,
+.Fn fmaf ,
+and
+.Fn fmal
+(respectively) have comparable or faster speed than a multiply
+operation followed by an add operation.
+.Sh IMPLEMENTATION NOTES
+In general, these routines will behave as one would expect if
+.No "x * y + z"
+were computed with unbounded precision and range,
+then rounded to the precision of the return type.
+However, on some platforms, if
+.Fa z
+is \*(Na, these functions may not raise an exception even
+when the computation of
+.No "x * y"
+would have otherwise generated an invalid exception.
+.Sh SEE ALSO
+.Xr fenv 3 ,
+.Xr math 3
+.Sh STANDARDS
+The
+.Fn fma ,
+.Fn fmaf ,
+and
+.Fn fmal
+functions conform to
+.St -isoC-99 .
+A fused multiply-add operation with virtually identical
+characteristics appears in IEEE draft standard 754R.
+.Sh HISTORY
+The
+.Fn fma
+and
+.Fn fmaf
+routines first appeared in
+.Fx 5.4 ,
+and
+.Fn fmal
+appeared in
+.Fx 6.0 .
+The
+.Fn fma ,
+.Fn fmaf
+and
+.Fn fmal
+routines where imported into
+.Nx
+in
+.Nx 7.0 .
Home |
Main Index |
Thread Index |
Old Index