diff src/DLD-FUNCTIONS/betainc.cc @ 7815:a41df65f3f00

Add some single precision test code and fix resulting bugs
author David Bateman <dbateman@free.fr>
date Wed, 28 May 2008 01:03:35 +0200
parents 82be108cc558
children 81d6ab3ac93c
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/betainc.cc	Mon Jun 02 16:57:45 2008 +0200
+++ b/src/DLD-FUNCTIONS/betainc.cc	Wed May 28 01:03:35 2008 +0200
@@ -281,6 +281,55 @@
 }
 
 /*
+
+%% test/octave.test/arith/betainc-1.m
+%!test
+%! a=[1, 1.5, 2, 3];
+%! b=[4, 3, 2, 1];
+%! v1=betainc(1,a,b);
+%! v2=[1,1,1,1];
+%! x = [.2, .4, .6, .8];
+%! v3=betainc(x, a, b);
+%! v4 = 1-betainc(1.-x, b, a);
+%! assert(v1, v2, sqrt(eps));
+%! assert(v3, v4, sqrt(eps));
+
+%% Single precision
+%!test
+%! a=single ([1, 1.5, 2, 3]);
+%! b=single ([4, 3, 2, 1]);
+%! v1=betainc(1,a,b);
+%! v2=single ([1,1,1,1]);
+%! x = single ([.2, .4, .6, .8]);
+%! v3=betainc(x, a, b);
+%! v4 = 1-betainc(1.-x, b, a);
+%! assert(v1, v2, sqrt(eps ('single')));
+%! assert(v3, v4, sqrt(eps ('single')));
+
+%% Mixed double/single precision
+%!test
+%! a=single ([1, 1.5, 2, 3]);
+%! b=[4, 3, 2, 1];
+%! v1=betainc(1,a,b);
+%! v2=single ([1,1,1,1]);
+%! x = [.2, .4, .6, .8];
+%! v3=betainc(x, a, b);
+%! v4 = 1-betainc(1.-x, b, a);
+%! assert(v1, v2, sqrt(eps ('single')));
+%! assert(v3, v4, sqrt(eps ('single')));
+
+%% test/octave.test/arith/betainc-2.m
+%!error <Invalid call to betainc.*> betainc();
+
+%% test/octave.test/arith/betainc-3.m
+%!error <Invalid call to betainc.*> betainc(1);
+
+%% test/octave.test/arith/betainc-4.m
+%!error <Invalid call to betainc.*> betainc(1,2);
+
+*/
+
+/*
 ;;; Local Variables: ***
 ;;; mode: C++ ***
 ;;; End: ***