mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-15 19:09:58 +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>
123 lines
2.4 KiB
C
123 lines
2.4 KiB
C
|
|
/* @(#)w_asin.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
|
|
<<asin>>, <<asinf>>---arc sine
|
|
|
|
INDEX
|
|
asin
|
|
INDEX
|
|
asinf
|
|
|
|
ANSI_SYNOPSIS
|
|
#include <math.h>
|
|
double asin(double <[x]>);
|
|
float asinf(float <[x]>);
|
|
|
|
TRAD_SYNOPSIS
|
|
#include <math.h>
|
|
double asin(<[x]>)
|
|
double <[x]>;
|
|
|
|
float asinf(<[x]>)
|
|
float <[x]>;
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
<<asin>> computes the inverse sine (arc sine) of the argument <[x]>.
|
|
Arguments to <<asin>> must be in the range @minus{}1 to 1.
|
|
|
|
<<asinf>> is identical to <<asin>>, other than taking and
|
|
returning floats.
|
|
|
|
You can modify error handling for these routines using <<matherr>>.
|
|
|
|
RETURNS
|
|
@ifnottex
|
|
<<asin>> returns values in radians, in the range of -pi/2 to pi/2.
|
|
@end ifnottex
|
|
@tex
|
|
<<asin>> returns values in radians, in the range of $-\pi/2$ to $\pi/2$.
|
|
@end tex
|
|
|
|
If <[x]> is not in the range @minus{}1 to 1, <<asin>> and <<asinf>>
|
|
return NaN (not a number), set the global variable <<errno>> to
|
|
<<EDOM>>, and issue a <<DOMAIN error>> message.
|
|
|
|
You can change this error treatment using <<matherr>>.
|
|
|
|
QUICKREF
|
|
ansi svid posix rentrant
|
|
asin y,y,y,m
|
|
asinf n,n,n,m
|
|
|
|
MATHREF
|
|
asin, -1<=arg<=1, asin(arg),,,
|
|
asin, NAN, arg,EDOM, DOMAIN
|
|
|
|
MATHREF
|
|
asinf, -1<=arg<=1, asin(arg),,,
|
|
asinf, NAN, arg,EDOM, DOMAIN
|
|
|
|
|
|
*/
|
|
|
|
/*
|
|
* wrapper asin(x)
|
|
*/
|
|
|
|
|
|
#include "fdlibm.h"
|
|
#include <errno.h>
|
|
|
|
#ifndef _DOUBLE_IS_32BITS
|
|
|
|
#ifdef __STDC__
|
|
double asin(double x) /* wrapper asin */
|
|
#else
|
|
double asin(x) /* wrapper asin */
|
|
double x;
|
|
#endif
|
|
{
|
|
#ifdef _IEEE_LIBM
|
|
return __ieee754_asin(x);
|
|
#else
|
|
double z;
|
|
struct exception exc;
|
|
z = __ieee754_asin(x);
|
|
if(_LIB_VERSION == _IEEE_ || isnan(x)) return z;
|
|
if(fabs(x)>1.0) {
|
|
/* asin(|x|>1) */
|
|
exc.type = DOMAIN;
|
|
exc.name = "asin";
|
|
exc.err = 0;
|
|
exc.arg1 = exc.arg2 = x;
|
|
exc.retval = nan("");
|
|
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) */
|