xref: /original-bsd/old/libm/liboldnm/acos.c (revision 3b6250d9)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  */
6 
7 #ifndef lint
8 static char sccsid[] = "@(#)acos.c	5.1 (Berkeley) 05/08/85";
9 #endif not lint
10 
11 /*
12 acos(arg) return the arccos,
13 	respectively of their arguments.
14 
15 	Arctan is called after appropriate range reduction.
16 */
17 
18 #include	<errno.h>
19 int errno;
20 double atan();
21 double asin();
22 static double pio2	= 1.570796326794896619;
23 
24 double
25 acos(arg) double arg; {
26 
27 	asm("	bispsw	$0xe0");
28 	if(arg > 1.|| arg < -1.){
29 		errno = EDOM;
30 		return(0.);
31 	}
32 
33 	return(pio2 - asin(arg));
34 }
35