diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-11-22 14:04:29 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-11-22 14:04:29 +0000 |
commit | 7ce331c01ce6eb7b3f5c715a38a24359da9c6ee2 (patch) | |
tree | 3a7e8476e868ae15f4da1b7ce26b2db6f434468c /libm/float/acoshf.c | |
parent | c117dd5fb183afb1a4790a6f6110d88704be6bf8 (diff) |
Totally rework the math library, this time based on the MacOs X
math library (which is itself based on the math lib from FreeBSD).
-Erik
Diffstat (limited to 'libm/float/acoshf.c')
-rw-r--r-- | libm/float/acoshf.c | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/libm/float/acoshf.c b/libm/float/acoshf.c deleted file mode 100644 index c45206125..000000000 --- a/libm/float/acoshf.c +++ /dev/null @@ -1,97 +0,0 @@ -/* acoshf.c - * - * Inverse hyperbolic cosine - * - * - * - * SYNOPSIS: - * - * float x, y, acoshf(); - * - * y = acoshf( x ); - * - * - * - * DESCRIPTION: - * - * Returns inverse hyperbolic cosine of argument. - * - * If 1 <= x < 1.5, a polynomial approximation - * - * sqrt(z) * P(z) - * - * where z = x-1, is used. Otherwise, - * - * acosh(x) = log( x + sqrt( (x-1)(x+1) ). - * - * - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * IEEE 1,3 100000 1.8e-7 3.9e-8 - * IEEE 1,2000 100000 3.0e-8 - * - * - * ERROR MESSAGES: - * - * message condition value returned - * acoshf domain |x| < 1 0.0 - * - */ - -/* acosh.c */ - -/* -Cephes Math Library Release 2.2: June, 1992 -Copyright 1984, 1987, 1988, 1992 by Stephen L. Moshier -Direct inquiries to 30 Frost Street, Cambridge, MA 02140 -*/ - -/* Single precision inverse hyperbolic cosine - * test interval: [1.0, 1.5] - * trials: 10000 - * peak relative error: 1.7e-7 - * rms relative error: 5.0e-8 - * - * Copyright (C) 1989 by Stephen L. Moshier. All rights reserved. - */ -#include <math.h> -extern float LOGE2F; - -float sqrtf( float ); -float logf( float ); - -float acoshf( float xx ) -{ -float x, z; - -x = xx; -if( x < 1.0 ) - { - mtherr( "acoshf", DOMAIN ); - return(0.0); - } - -if( x > 1500.0 ) - return( logf(x) + LOGE2F ); - -z = x - 1.0; - -if( z < 0.5 ) - { - z = - (((( 1.7596881071E-3 * z - - 7.5272886713E-3) * z - + 2.6454905019E-2) * z - - 1.1784741703E-1) * z - + 1.4142135263E0) * sqrtf( z ); - } -else - { - z = sqrtf( z*(x+1.0) ); - z = logf(x + z); - } -return( z ); -} |