From 91772265a76ef33d968c10cf3ae35c165b9179db Mon Sep 17 00:00:00 2001 From: jofret Date: Tue, 17 Jun 2008 07:31:54 +0000 Subject: * Update log1p use lnp1m1 as in Scilab Algorithm. * Update ignored files --- src/elementaryFunctions/log1p/slog1ps.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/elementaryFunctions/log1p/slog1ps.c') diff --git a/src/elementaryFunctions/log1p/slog1ps.c b/src/elementaryFunctions/log1p/slog1ps.c index 22d59544..501de6b0 100644 --- a/src/elementaryFunctions/log1p/slog1ps.c +++ b/src/elementaryFunctions/log1p/slog1ps.c @@ -10,9 +10,24 @@ * */ -#include #include "log1p.h" +#include "log.h" +#include "lnp1m1.h" float slog1ps(float in) { - return (log1pf(in)); + static double A = -1.0/3.0; + static double B = 0.5; + + if(in < -1) + {/* got NaN */ + return (in - in) / (in - in); /* NaN */ + } + else if(A <= in && in <= B) + {/* use the function log((1+g)/(1-g)) with g = x/(x + 2) */ + return slnp1m1s(in / (in + 2)); + } + else + {/* use the standard formula */ + return slogs(in + 1); + } } -- cgit