Mercurial > octave-nkf
diff liboctave/lo-specfun.cc @ 9812:f80c566bc751
improve unary mapper system
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Thu, 12 Nov 2009 15:47:58 +0100 |
parents | b4fdfee405b5 |
children | 1bb1ed717d2f |
line wrap: on
line diff
--- a/liboctave/lo-specfun.cc Wed Nov 11 17:43:45 2009 -0800 +++ b/liboctave/lo-specfun.cc Thu Nov 12 15:47:58 2009 +0100 @@ -316,10 +316,8 @@ } Complex -xlgamma (const Complex& xc) +rc_lgamma (double x) { - // Can only be called with a real value of x. - double x = xc.real (); double result; #if defined (HAVE_LGAMMA_R) @@ -383,10 +381,8 @@ } FloatComplex -xlgamma (const FloatComplex& xc) +rc_lgamma (float x) { - // Can only be called with a real value of x. - float x = xc.real (); float result; #if defined (HAVE_LGAMMAF_R) @@ -502,7 +498,7 @@ #endif FloatComplex -expm1f(const FloatComplex& x) +expm1(const FloatComplex& x) { FloatComplex retval; @@ -588,7 +584,7 @@ #endif FloatComplex -log1pf (const FloatComplex& x) +log1p (const FloatComplex& x) { FloatComplex retval; @@ -3092,6 +3088,19 @@ return retval; } + +Complex rc_log1p (double x) +{ + const double pi = 3.14159265358979323846; + return x < -1.0 ? Complex (log (-(1.0 + x)), pi) : Complex (log1p (x)); +} + +FloatComplex rc_log1p (float x) +{ + const float pi = 3.14159265358979323846f; + return x < -1.0f ? FloatComplex (logf (-(1.0f + x)), pi) : FloatComplex (log1pf (x)); +} + /* ;;; Local Variables: *** ;;; mode: C++ ***