diff liboctave/lo-specfun.cc @ 3164:45490c020e47

[project @ 1998-04-14 20:56:48 by jwe]
author jwe
date Tue, 14 Apr 1998 20:56:53 +0000
parents 7c96e85c76db
children 3deb1105fbc1
line wrap: on
line diff
--- a/liboctave/lo-specfun.cc
+++ b/liboctave/lo-specfun.cc
@@ -60,7 +60,7 @@
 
   int F77_FCN (xdgamma, XDGAMMA) (const double&, double&);
 
-  int F77_FCN (xdgami, XDGAMI) (const double&, const double&, double&);
+  int F77_FCN (xdgamit, XDGAMIT) (const double&, const double&, double&);
 
   int F77_FCN (dlgams, DLGAMS) (const double&, double&, double&);
 }
@@ -472,11 +472,20 @@
   return retval;
 }
 
+// XXX FIXME XXX -- there is still room for improvement here...
+
 double
 gammainc (double x, double a)
 {
   double retval;
-  F77_XFCN (xdgami, XDGAMI, (a, x, retval));
+
+  F77_XFCN (xdgamit, XDGAMIT, (a, x, retval));
+
+  if (x == 0.0)
+    retval = 0.0;
+  else if (x > 0.0)
+    retval = exp (a * log (x) + log (retval));
+
   return retval;
 }