From 4843d0adde32eb7f57ad9734e7b17b26d4dd5757 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Thu, 22 Jan 2004 06:26:55 +0000 Subject: [PATCH] implement the invers hyper trig functions locally because they're not available everywhere. --- libs/ruamoko/rua_math.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libs/ruamoko/rua_math.c b/libs/ruamoko/rua_math.c index 3bc0ed65f..e4ea4565e 100644 --- a/libs/ruamoko/rua_math.c +++ b/libs/ruamoko/rua_math.c @@ -125,20 +125,21 @@ bi_tanh (progs_t *pr) static void bi_asinh (progs_t *pr) { - R_FLOAT (pr) = asinh (P_FLOAT (pr, 0)); + double y = P_FLOAT (pr, 0); + R_FLOAT (pr) = log (y + sqrt (y * y + 1)); } static void bi_acosh (progs_t *pr) { - R_FLOAT (pr) = acosh (P_FLOAT (pr, 0)); -} + double y = P_FLOAT (pr, 0); + R_FLOAT (pr) = log (y + sqrt (y * y - 1)); static void bi_atanh (progs_t *pr) { - R_FLOAT (pr) = atanh (P_FLOAT (pr, 0)); -} + double y = P_FLOAT (pr, 0); + R_FLOAT (pr) = log ((1 + y) / (1 - y)) / 2; static builtin_t builtins[] = { {"sin", bi_sin, -1},