64 lines
1.1 KiB
Plaintext
64 lines
1.1 KiB
Plaintext
regression test for log, log10 and ln
|
|
|
|
* (exec-spice "ngspice -b %s" t)
|
|
|
|
v1 1 0 dc 2.7
|
|
|
|
vn1 n1 0 'ln(2.7)'
|
|
vn2 n2 0 'log(2.7)'
|
|
vn3 n3 0 'log10(2.7)'
|
|
|
|
bb1 b1 0 v = ln(v(1))
|
|
bb2 b2 0 v = log(v(1))
|
|
bb3 b3 0 v = log10(v(1))
|
|
|
|
.control
|
|
|
|
op
|
|
|
|
let success = 0
|
|
|
|
compose numparm values v(n1) v(n2) v(n3)
|
|
compose asrc values v(b1) v(b2) v(b3)
|
|
compose ctrl values ln(2.7) log(2.7) log10(2.7)
|
|
|
|
compose gold values 0.9932517730102834 0.9932517730102834 0.43136376415898736
|
|
|
|
let numparm_err = vecmax(abs(numparm/gold - 1))
|
|
let asrc_err = vecmax(abs(asrc/gold - 1))
|
|
let ctrl_err = vecmax(abs(ctrl/gold - 1))
|
|
|
|
echo "Note: numparm_err = " $&numparm_err
|
|
echo "Note: asrc_err = " $&asrc_err
|
|
echo "Note: ctrl_err = " $&ctrl_err
|
|
|
|
if numparm_err > 1e-15
|
|
echo "ERROR: test failed, numparm, excessive error"
|
|
else
|
|
let success = success + 1
|
|
end
|
|
|
|
if asrc_err > 1e-15
|
|
echo "ERROR: test failed, asrc, excessive error"
|
|
else
|
|
let success = success + 1
|
|
end
|
|
|
|
if ctrl_err > 1e-15
|
|
echo "ERROR: test failed, control, excessive error"
|
|
else
|
|
let success = success + 1
|
|
end
|
|
|
|
|
|
if success eq 3
|
|
echo "INFO: success"
|
|
quit 0
|
|
else
|
|
quit 1
|
|
end
|
|
|
|
.endc
|
|
|
|
.end
|