diff scripts/general/quadgk.m @ 7795:df9519e9990c

Handle single precision eps values
author David Bateman <dbateman@free.fr>
date Mon, 12 May 2008 22:57:11 +0200
parents 680631e787aa
children 23c248d415b5
line wrap: on
line diff
--- a/scripts/general/quadgk.m
+++ b/scripts/general/quadgk.m
@@ -291,12 +291,18 @@
       q0 = sum (q_subs);
       err0 = sum (q_errs);
     
+      if (isa (a, "single") || isa (b, "single") || isa (waypoints, "single"))
+	myeps = eps ("single");
+      else
+	myeps = eps;
+      endif
+
       first = true;
       while (true)
 	## Check for sub-intervals that are too small. Test must be
 	## performed in untransformed sub-intervals. What is a good
 	## value for this test. Shampine suggests 100*eps
-	if (any (diff (trans (subs), [], 2) / (b - a) < 100 * eps))
+	if (any (diff (trans (subs), [], 2) / (b - a) < 100 * myeps))
 	  q = q0;
 	  err = err0;
 	  break;