1b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
2b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/* @(#)w_atanh.c 1.3 95/01/18 */
3b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
4b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * ====================================================
5b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
6b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project *
7b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * Developed at SunSoft, a Sun Microsystems, Inc. business.
8b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * Permission to use, copy, modify, and distribute this
9b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * software is freely granted, provided that this notice
10b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * is preserved.
11b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * ====================================================
12b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
13b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project/*
14b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project * wrapper atanh(x)
15b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project */
16b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
17b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#include "fdlibm.h"
18b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
19b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project
20b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#ifdef __STDC__
21b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	double atanh(double x)		/* wrapper atanh */
22b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#else
23b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	double atanh(x)			/* wrapper atanh */
24b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	double x;
25b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#endif
26b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project{
27b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#ifdef _IEEE_LIBM
28b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	return __ieee754_atanh(x);
29b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#else
30b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	double z,y;
31b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	z = __ieee754_atanh(x);
32b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	if(_LIB_VERSION == _IEEE_ || ieee_isnan(x)) return z;
33b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	y = ieee_fabs(x);
34b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	if(y>=1.0) {
35b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	    if(y>1.0)
36b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	        return __kernel_standard(x,x,30); /* atanh(|x|>1) */
37b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	    else
38b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	        return __kernel_standard(x,x,31); /* atanh(|x|==1) */
39b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	} else
40b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project	    return z;
41b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project#endif
42b07e1d9fd8d9e4e03698e0bd9bf77154c5390326The Android Open Source Project}
43