ngspice/tests/regression/misc/log-functions-1.cir

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