diff liboctave/lo-specfun.cc @ 6969:0a64abe792f4

[project @ 2007-10-06 14:15:19 by jwe]
author jwe
date Sat, 06 Oct 2007 14:15:20 +0000
parents b559b4bcf51f
children 93c65f2a5668
line wrap: on
line diff
--- a/liboctave/lo-specfun.cc
+++ b/liboctave/lo-specfun.cc
@@ -160,6 +160,9 @@
 double
 xgamma (double x)
 {
+#if defined (HAVE_TGAMMA)
+  return tgamma (x);
+#else
   double result;
 
   if (xisnan (x))
@@ -168,42 +171,29 @@
     result = octave_Inf;
   else
     F77_XFCN (xdgamma, XDGAMMA, (x, result));
+
   return result;
+#endif
 }
 
 double
 xlgamma (double x)
 {
+#if defined (HAVE_LGAMMA)
+  return lgamma (x);
+#else
   double result;
   double sgngam;
 
   if (xisnan (x))
     result = x;
-  else if (x <= 0 || xisinf (x))
+  else if (xisinf (x))
     result = octave_Inf;
   else
     F77_XFCN (dlgams, DLGAMS, (x, result, sgngam));
 
   return result;
-}
-
-Complex
-zlgamma (double x)
-{
-  Complex result;
-
-  if (xisnan (x))
-    result = x;
-  else if (x > 0)
-    result = xlgamma (x);
-  else
-    {
-      double tmp = xgamma (x);
-
-      result = tmp < 0 ? std::log (Complex (tmp)) : log (tmp);
-    }
-
-  return result;
+#endif
 }
 
 static inline Complex