mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-17 03:49:46 +08:00
81a7c8c37f
makedoc defines a command as 'all upper case, and alone on a line'. A few QUICKREF lines currently violate this by having some additional text after the QUICKREF. So, currently, these lines are treated as an unknown command. This is benign as QUICKREF currently does nothing but produce some ignored output on stderr. I'm not sure what the intent of QUICKREF is. 2015-11-06 Jon Turney <jon.turney@dronecode.org.uk> * libm/mathfp/s_acos.c: Fix QUICKREF. * libm/mathfp/e_acosh.c: Ditto. * libm/math/w_asin.c: Ditto. * libm/mathfp/e_acosh.c: Ditto. * libm/mathfp/s_acos.c: Ditto. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
124 lines
2.5 KiB
C
124 lines
2.5 KiB
C
|
|
/* @(#)w_acosh.c 5.1 93/09/24 */
|
|
/*
|
|
* ====================================================
|
|
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
|
*
|
|
* Developed at SunPro, a Sun Microsystems, Inc. business.
|
|
* Permission to use, copy, modify, and distribute this
|
|
* software is freely granted, provided that this notice
|
|
* is preserved.
|
|
* ====================================================
|
|
*
|
|
*/
|
|
|
|
/*
|
|
FUNCTION
|
|
<<acosh>>, <<acoshf>>---inverse hyperbolic cosine
|
|
|
|
INDEX
|
|
acosh
|
|
INDEX
|
|
acoshf
|
|
|
|
ANSI_SYNOPSIS
|
|
#include <math.h>
|
|
double acosh(double <[x]>);
|
|
float acoshf(float <[x]>);
|
|
|
|
TRAD_SYNOPSIS
|
|
#include <math.h>
|
|
double acosh(<[x]>)
|
|
double <[x]>;
|
|
|
|
float acoshf(<[x]>)
|
|
float <[x]>;
|
|
|
|
DESCRIPTION
|
|
<<acosh>> calculates the inverse hyperbolic cosine of <[x]>.
|
|
<<acosh>> is defined as
|
|
@ifnottex
|
|
. log(<[x]> + sqrt(<[x]>*<[x]>-1))
|
|
@end ifnottex
|
|
@tex
|
|
$$ln\Bigl(x + \sqrt{x^2-1}\Bigr)$$
|
|
@end tex
|
|
|
|
<[x]> must be a number greater than or equal to 1.
|
|
|
|
<<acoshf>> is identical, other than taking and returning floats.
|
|
|
|
RETURNS
|
|
<<acosh>> and <<acoshf>> return the calculated value. If <[x]>
|
|
less than 1, the return value is NaN and <<errno>> is set to <<EDOM>>.
|
|
|
|
You can change the error-handling behavior with the non-ANSI
|
|
<<matherr>> function.
|
|
|
|
PORTABILITY
|
|
Neither <<acosh>> nor <<acoshf>> are ANSI C. They are not recommended
|
|
for portable programs.
|
|
|
|
|
|
QUICKREF
|
|
ansi svid posix rentrant
|
|
acos n,n,n,m
|
|
acosf n,n,n,m
|
|
|
|
MATHREF
|
|
acosh, NAN, arg,DOMAIN,EDOM
|
|
acosh, < 1.0, NAN,DOMAIN,EDOM
|
|
acosh, >=1.0, acosh(arg),,,
|
|
|
|
MATHREF
|
|
acoshf, NAN, arg,DOMAIN,EDOM
|
|
acoshf, < 1.0, NAN,DOMAIN,EDOM
|
|
acoshf, >=1.0, acosh(arg),,,
|
|
|
|
*/
|
|
|
|
/*
|
|
* wrapper acosh(x)
|
|
*/
|
|
|
|
#include "fdlibm.h"
|
|
#include <errno.h>
|
|
|
|
#ifndef _DOUBLE_IS_32BITS
|
|
|
|
#ifdef __STDC__
|
|
double acosh(double x) /* wrapper acosh */
|
|
#else
|
|
double acosh(x) /* wrapper acosh */
|
|
double x;
|
|
#endif
|
|
{
|
|
#ifdef _IEEE_LIBM
|
|
return __ieee754_acosh(x);
|
|
#else
|
|
double z;
|
|
struct exception exc;
|
|
z = __ieee754_acosh(x);
|
|
if(_LIB_VERSION == _IEEE_ || isnan(x)) return z;
|
|
if(x<1.0) {
|
|
/* acosh(x<1) */
|
|
exc.type = DOMAIN;
|
|
exc.name = "acosh";
|
|
exc.err = 0;
|
|
exc.arg1 = exc.arg2 = x;
|
|
exc.retval = 0.0/0.0;
|
|
if (_LIB_VERSION == _POSIX_)
|
|
errno = EDOM;
|
|
else if (!matherr(&exc)) {
|
|
errno = EDOM;
|
|
}
|
|
if (exc.err != 0)
|
|
errno = exc.err;
|
|
return exc.retval;
|
|
} else
|
|
return z;
|
|
#endif
|
|
}
|
|
|
|
#endif /* defined(_DOUBLE_IS_32BITS) */
|