gnu bc. necessary to compile the distribution

This commit is contained in:
cgd 1993-04-10 15:54:16 +00:00
parent 85eccea790
commit f625cfdcdf
6 changed files with 130 additions and 0 deletions

View File

@ -0,0 +1,4 @@
scale = 20
for (a=1; a<500; a++) r=sqrt(a)
r
quit

View File

@ -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;
}

View File

@ -0,0 +1,14 @@
#!/bin/sh
#
# Time the functions.
#
BC=../bc
SYSBC=/usr/bin/bc
for file in exp.b ln.b sine.b atan.b jn.b mul.b div.b raise.b sqrt.b
do
for prog in $BC $SYSBC
do
echo Timing $file with $prog
time $prog -l $file
done
done

View File

@ -0,0 +1,4 @@
scale = 20
for (a=1; a<500; a++) r=sqrt(a)
r
quit

View File

@ -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;
}

View File

@ -0,0 +1,14 @@
#!/bin/sh
#
# Time the functions.
#
BC=../bc
SYSBC=/usr/bin/bc
for file in exp.b ln.b sine.b atan.b jn.b mul.b div.b raise.b sqrt.b
do
for prog in $BC $SYSBC
do
echo Timing $file with $prog
time $prog -l $file
done
done