diff options
Diffstat (limited to 'contrib/bc/Test/testfn.b')
-rw-r--r-- | contrib/bc/Test/testfn.b | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/contrib/bc/Test/testfn.b b/contrib/bc/Test/testfn.b new file mode 100644 index 0000000..7578fc5 --- /dev/null +++ b/contrib/bc/Test/testfn.b @@ -0,0 +1,47 @@ +/* This function "t" tests the function "f" to see if computing at + two different scales has much effect on the accuracy. + test from f(x) to f(y) incrementing the index by d. f(i) is + computed at two scales, scale s and then scale t, where t>s. + the result from scale t is divided by 1 at scale s and the + results are compared. If they are different, the function is + said to have failed. It will then print out the value of i + (called index) and the two original values val1 (scale s) and + val2 (scale t) */ + +define t (x,y,d,s,t) { + auto u, v, w, i, b, c; + + if (s >= t) { + "Bad Scales. Try again. +"; return; + } + + for (i = x; i < y; i += d) { + scale = s; + u = f(i); + scale = t; + v = f(i); + scale = s; + w = v / 1; + b += 1; + if (u != w) { + c += 1; +" +Failed: +" + " index = "; i; + " val1 = "; u; + " val2 = "; v; +" +" + } + } + +" +Total tests: "; b; +" +Total failures: "; c; +" +Percent failed: "; scale = 2; c*100/b; + +} |