tests/regression/parser
check xpressn.c parser capability to parse {2--3}
check .control parser capability to parse 2--3
check B parser capability to parse 2--3
check echo commands capability to print "--"
check echo commands capability to print upper and lower case
check xpressn.c parser capabilities
check precision of some transcendental functions
This commit is contained in:
parent
92a26b58f0
commit
cccc02e844
|
|
@ -1192,6 +1192,7 @@ AC_CONFIG_FILES([Makefile
|
|||
tests/polezero/Makefile
|
||||
tests/regression/Makefile
|
||||
tests/regression/lib-processing/Makefile
|
||||
tests/regression/parser/Makefile
|
||||
tests/sensitivity/Makefile
|
||||
tests/transient/Makefile
|
||||
tests/transmission/Makefile
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
SUBDIRS = lib-processing
|
||||
SUBDIRS = lib-processing parser
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
|
||||
TESTS = minus-minus.cir xpressn-1.cir xpressn-2.cir
|
||||
|
||||
TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(TESTS) \
|
||||
$(TESTS:.cir=.out)
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
test dash dash
|
||||
|
||||
* (exec-spice "ngspice -b %s")
|
||||
|
||||
v1 1 0 '2--3'
|
||||
b2 2 0 v = 2--3
|
||||
|
||||
.control
|
||||
|
||||
define mismatch(a,b,err) abs(a-b)>err
|
||||
|
||||
op
|
||||
|
||||
let foo = 2--3
|
||||
|
||||
if mismatch(v(1), 5.0, 1e-9)
|
||||
echo "ERROR: v(1) failed"
|
||||
end
|
||||
|
||||
if mismatch(v(2), 5.0, 1e-9)
|
||||
echo "ERROR: v(2) failed"
|
||||
end
|
||||
|
||||
if mismatch(foo, 5.0, 1e-9)
|
||||
echo "ERROR: foo failed"
|
||||
end
|
||||
|
||||
print v(1) v(2) foo
|
||||
|
||||
echo "INFO: -- yes we can, print dash dash --"
|
||||
echo "INFO: -- yes we can, print upper and lower case --"
|
||||
quit 0
|
||||
|
||||
.endc
|
||||
|
||||
.end
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
Circuit: test dash dash
|
||||
|
||||
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
|
||||
|
||||
|
||||
No. of Data Rows : 1
|
||||
v(1) = 5.000000e+00
|
||||
v(2) = 5.000000e+00
|
||||
foo = 5.000000e+00
|
||||
INFO: -- yes we can, print dash dash --
|
||||
INFO: -- yes we can, print upper and lower case --
|
||||
|
|
@ -0,0 +1,384 @@
|
|||
* 'xpressn-1' check xpressn.c parser
|
||||
|
||||
* (exec-spice "ngspice -b %s")
|
||||
* (tests-aux-renumber)
|
||||
|
||||
* ----------------------------------------
|
||||
* arbitrary tests
|
||||
|
||||
v1001_t n1001_t 0 '1+2'
|
||||
v1002_t n1002_t 0 '1 + 2 '
|
||||
v1003_t n1003_t 0 '1+2*3'
|
||||
v1004_t n1004_t 0 '(1?2:3)+100'
|
||||
v1005_t n1005_t 0 '(1>2?2*4:1+2*3)+100'
|
||||
|
||||
v1001_g n1001_g 0 '3'
|
||||
v1002_g n1002_g 0 '3'
|
||||
v1003_g n1003_g 0 '7'
|
||||
v1004_g n1004_g 0 '102'
|
||||
v1005_g n1005_g 0 '107'
|
||||
|
||||
|
||||
v1006_t n1006_t 0 '1-2.1'
|
||||
v1007_t n1007_t 0 '1--1'
|
||||
v1008_t n1008_t 0 '5+2/-4'
|
||||
|
||||
v1006_g n1006_g 0 '-1.1'
|
||||
v1007_g n1007_g 0 '2'
|
||||
v1008_g n1008_g 0 '4.5'
|
||||
|
||||
|
||||
* ----------------------------------------
|
||||
* boolean operators '&&' '||' '!'
|
||||
* output: 0.0 or 1.0
|
||||
* input: 0.0 is 'false', everything else is 'true'
|
||||
|
||||
* ---------------
|
||||
* `&&' operator
|
||||
|
||||
v1009_t n1009_t 0 '0 && 0'
|
||||
v1010_t n1010_t 0 '0 && 1'
|
||||
v1011_t n1011_t 0 '1 && 0'
|
||||
v1012_t n1012_t 0 '0.1 && 0.2'
|
||||
v1013_t n1013_t 0 '-0.1 && 0.2'
|
||||
|
||||
v1009_g n1009_g 0 '0'
|
||||
v1010_g n1010_g 0 '0'
|
||||
v1011_g n1011_g 0 '0'
|
||||
v1012_g n1012_g 0 '1'
|
||||
v1013_g n1013_g 0 '1'
|
||||
|
||||
|
||||
* ---------------
|
||||
* `||' operator
|
||||
|
||||
v1014_t n1014_t 0 '0 || 0'
|
||||
v1015_t n1015_t 0 '0 || 0.1'
|
||||
v1016_t n1016_t 0 '-0.1 || 0'
|
||||
v1017_t n1017_t 0 '0.1 || -0.2'
|
||||
|
||||
v1014_g n1014_g 0 '0'
|
||||
v1015_g n1015_g 0 '1'
|
||||
v1016_g n1016_g 0 '1'
|
||||
v1017_g n1017_g 0 '1'
|
||||
|
||||
|
||||
* ---------------
|
||||
* `!' operator
|
||||
|
||||
v1018_t n1018_t 0 '! 0.0'
|
||||
v1019_t n1019_t 0 '! 0.1'
|
||||
v1020_t n1020_t 0 '! (-0.1)'
|
||||
|
||||
v1018_g n1018_g 0 '1'
|
||||
v1019_g n1019_g 0 '0'
|
||||
v1020_g n1020_g 0 '0'
|
||||
|
||||
|
||||
|
||||
* ----------------------------------------
|
||||
* comparison operators
|
||||
* output: 0.0 or 1.0
|
||||
|
||||
* ----------
|
||||
* `>'
|
||||
|
||||
v1021_t n1021_t 0 '3 > 2'
|
||||
v1022_t n1022_t 0 '2 > 3'
|
||||
v1023_t n1023_t 0 '2 > 2'
|
||||
|
||||
v1021_g n1021_g 0 '1'
|
||||
v1022_g n1022_g 0 '0'
|
||||
v1023_g n1023_g 0 '0'
|
||||
|
||||
|
||||
* ----------
|
||||
* '<'
|
||||
|
||||
v1024_t n1024_t 0 '3 < 2'
|
||||
v1025_t n1025_t 0 '2 < 3'
|
||||
v1026_t n1026_t 0 '2 < 2'
|
||||
|
||||
v1024_g n1024_g 0 '0'
|
||||
v1025_g n1025_g 0 '1'
|
||||
v1026_g n1026_g 0 '0'
|
||||
|
||||
|
||||
* ----------
|
||||
* '<='
|
||||
|
||||
v1027_t n1027_t 0 '3 >= 2'
|
||||
v1028_t n1028_t 0 '2 >= 3'
|
||||
v1029_t n1029_t 0 '2 >= 2'
|
||||
|
||||
v1027_g n1027_g 0 '1'
|
||||
v1028_g n1028_g 0 '0'
|
||||
v1029_g n1029_g 0 '1'
|
||||
|
||||
|
||||
* ----------
|
||||
* '>='
|
||||
|
||||
v1030_t n1030_t 0 '3 <= 2'
|
||||
v1031_t n1031_t 0 '2 <= 3'
|
||||
v1032_t n1032_t 0 '2 <= 2'
|
||||
|
||||
v1030_g n1030_g 0 '0'
|
||||
v1031_g n1031_g 0 '1'
|
||||
v1032_g n1032_g 0 '1'
|
||||
|
||||
|
||||
* ----------
|
||||
* '=='
|
||||
|
||||
v1033_t n1033_t 0 '3 == 2'
|
||||
v1034_t n1034_t 0 '2 == 3'
|
||||
v1035_t n1035_t 0 '2 == 2'
|
||||
|
||||
v1033_g n1033_g 0 '0'
|
||||
v1034_g n1034_g 0 '0'
|
||||
v1035_g n1035_g 0 '1'
|
||||
|
||||
|
||||
* ----------
|
||||
* '!='
|
||||
|
||||
v1036_t n1036_t 0 '3 != 2'
|
||||
v1037_t n1037_t 0 '2 != 3'
|
||||
v1038_t n1038_t 0 '2 != 2'
|
||||
|
||||
v1036_g n1036_g 0 '1'
|
||||
v1037_g n1037_g 0 '1'
|
||||
v1038_g n1038_g 0 '0'
|
||||
|
||||
|
||||
* ----------------------------------------
|
||||
* four variants of exponentiation
|
||||
|
||||
v1039_t n1039_t 0 '2 ^ 3'
|
||||
v1039_g n1039_g 0 '8'
|
||||
|
||||
v1040_t n1040_t 0 '2 ** 3'
|
||||
v1040_g n1040_g 0 '8'
|
||||
|
||||
v1041_t n1041_t 0 'pwr(2,3)'
|
||||
v1041_g n1041_g 0 '8'
|
||||
|
||||
v1042_t n1042_t 0 'pow(2,3)'
|
||||
v1042_g n1042_g 0 '8'
|
||||
|
||||
|
||||
* ----------------------------------------
|
||||
* ternary 'c ? x : y' operator
|
||||
* input: 0.0 is false, everything else is true
|
||||
|
||||
v1043_t n1043_t 0 ' 0.1 ? 42 : 43'
|
||||
v1044_t n1044_t 0 '-0.1 ? 42 : 43'
|
||||
v1045_t n1045_t 0 ' 0.0 ? 42 : 43'
|
||||
|
||||
v1043_g n1043_g 0 '42'
|
||||
v1044_g n1044_g 0 '42'
|
||||
v1045_g n1045_g 0 '43'
|
||||
|
||||
* assoziativity
|
||||
|
||||
v1046_t n1046_t 0 '1 ? 42 : 1 ? 41 : 40'
|
||||
v1047_t n1047_t 0 '1 ? 42 : 0 ? 41 : 40'
|
||||
v1048_t n1048_t 0 '0 ? 42 : 1 ? 41 : 40'
|
||||
v1049_t n1049_t 0 '0 ? 42 : 0 ? 41 : 40'
|
||||
|
||||
v1046_g n1046_g 0 '42'
|
||||
v1047_g n1047_g 0 '42'
|
||||
v1048_g n1048_g 0 '41'
|
||||
v1049_g n1049_g 0 '40'
|
||||
|
||||
* --------------------
|
||||
* regression tests
|
||||
* these failed in the past, due to incorrect transformations in inpcom.c
|
||||
|
||||
* was incorrectly transformed --> (3>2)||ternary_fcn((1<4),0.2,0.3)
|
||||
v1050_t n1050_t 0 '(3>2)||(1<4) ? 0.2 : 0.3'
|
||||
v1050_g n1050_g 0 '0.2'
|
||||
|
||||
* was incorrectly transformed --> controlled_exit()
|
||||
v1051_t n1051_t 0 '(3>2) ? (3+2)*((2>1)?1:1) : 42'
|
||||
v1051_g n1051_g 0 '5'
|
||||
|
||||
* was incorrectly transformed --> ternary_fcn((3>2),42,(2*2))3
|
||||
v1052_t n1052_t 0 '(3>2) ? 42 : (2*2)+3'
|
||||
v1052_g n1052_g 0 '42'
|
||||
|
||||
|
||||
* ----------------------------------------
|
||||
* functions
|
||||
|
||||
v1053_t n1053_t 0 'sin(0.3)'
|
||||
v1054_t n1054_t 0 'cos(0.3)'
|
||||
v1055_t n1055_t 0 'tan(0.3)'
|
||||
v1056_t n1056_t 0 'asin(0.3)'
|
||||
v1057_t n1057_t 0 'acos(0.3)'
|
||||
v1058_t n1058_t 0 'atan(0.3)'
|
||||
v1059_t n1059_t 0 'arctan(0.3)'
|
||||
v1060_t n1060_t 0 'sinh(0.3)'
|
||||
v1061_t n1061_t 0 'cosh(0.3)'
|
||||
v1062_t n1062_t 0 'tanh(0.3)'
|
||||
v1063_t n1063_t 0 'asinh(0.3)'
|
||||
v1064_t n1064_t 0 'acosh(1.3)'
|
||||
v1065_t n1065_t 0 'atanh(0.3)'
|
||||
|
||||
v1053_g n1053_g 0 '0.29552020666133955'
|
||||
v1054_g n1054_g 0 '0.955336489125606'
|
||||
v1055_g n1055_g 0 '0.30933624960962325'
|
||||
v1056_g n1056_g 0 '0.3046926540153975'
|
||||
v1057_g n1057_g 0 '1.266103672779499'
|
||||
v1058_g n1058_g 0 '0.29145679447786704'
|
||||
v1059_g n1059_g 0 '0.29145679447786704'
|
||||
v1060_g n1060_g 0 '0.3045202934471426'
|
||||
v1061_g n1061_g 0 '1.0453385141288605'
|
||||
v1062_g n1062_g 0 '0.2913126124515909'
|
||||
v1063_g n1063_g 0 '0.2956730475634223'
|
||||
v1064_g n1064_g 0 '0.7564329108569595'
|
||||
v1065_g n1065_g 0 '0.3095196042031116'
|
||||
|
||||
* ----------
|
||||
|
||||
v1066_t n1066_t 0 'exp(2.0)'
|
||||
v1067_t n1067_t 0 'exp(-2.0)'
|
||||
|
||||
v1066_g n1066_g 0 '7.38905609893065'
|
||||
v1067_g n1067_g 0 '0.1353352832366127'
|
||||
|
||||
* ----------
|
||||
|
||||
v1068_t n1068_t 0 'log(2.0)'
|
||||
v1069_t n1069_t 0 'log(0.5)'
|
||||
|
||||
v1068_g n1068_g 0 '0.6931471805599453'
|
||||
v1069_g n1069_g 0 '-0.6931471805599453'
|
||||
|
||||
v1070_t n1070_t 0 'ln(2.0)'
|
||||
v1071_t n1071_t 0 'ln(0.5)'
|
||||
|
||||
v1070_g n1070_g 0 '0.6931471805599453'
|
||||
v1071_g n1071_g 0 '-0.6931471805599453'
|
||||
|
||||
* ----------
|
||||
|
||||
v1072_t n1072_t 0 'sqrt(2.0)'
|
||||
v1072_g n1072_g 0 '1.4142135623730951'
|
||||
|
||||
v1073_t n1073_t 0 'sqr(2.0)'
|
||||
v1073_g n1073_g 0 '4.0'
|
||||
|
||||
|
||||
* ----------------------------------------
|
||||
* functions
|
||||
|
||||
v1074_t n1074_t 0 'abs(2.0)'
|
||||
v1075_t n1075_t 0 'abs(-2.0)'
|
||||
|
||||
v1074_g n1074_g 0 '2'
|
||||
v1075_g n1075_g 0 '2'
|
||||
|
||||
|
||||
v1076_t n1076_t 0 'sgn(2.0)'
|
||||
v1077_t n1077_t 0 'sgn(0.0)'
|
||||
v1078_t n1078_t 0 'sgn(-2.0)'
|
||||
|
||||
v1076_g n1076_g 0 '1'
|
||||
v1077_g n1077_g 0 '0'
|
||||
v1078_g n1078_g 0 '-1'
|
||||
|
||||
|
||||
v1079_t n1079_t 0 'int(2.1)'
|
||||
v1080_t n1080_t 0 'int(1.9)'
|
||||
v1081_t n1081_t 0 'int(0)'
|
||||
v1082_t n1082_t 0 'int(-1.9)'
|
||||
v1083_t n1083_t 0 'int(-2.1)'
|
||||
|
||||
v1079_g n1079_g 0 '2'
|
||||
v1080_g n1080_g 0 '1'
|
||||
v1081_g n1081_g 0 '0'
|
||||
v1082_g n1082_g 0 '-1'
|
||||
v1083_g n1083_g 0 '-2'
|
||||
|
||||
|
||||
v1084_t n1084_t 0 'floor(2.1)'
|
||||
v1085_t n1085_t 0 'floor(1.9)'
|
||||
v1086_t n1086_t 0 'floor(0)'
|
||||
v1087_t n1087_t 0 'floor(-1.9)'
|
||||
v1088_t n1088_t 0 'floor(-2.1)'
|
||||
|
||||
v1084_g n1084_g 0 '2'
|
||||
v1085_g n1085_g 0 '1'
|
||||
v1086_g n1086_g 0 '0'
|
||||
v1087_g n1087_g 0 '-2'
|
||||
v1088_g n1088_g 0 '-3'
|
||||
|
||||
|
||||
v1089_t n1089_t 0 'ceil(2.1)'
|
||||
v1090_t n1090_t 0 'ceil(1.9)'
|
||||
v1091_t n1091_t 0 'ceil(0)'
|
||||
v1092_t n1092_t 0 'ceil(-1.9)'
|
||||
v1093_t n1093_t 0 'ceil(-2.1)'
|
||||
|
||||
v1089_g n1089_g 0 '3'
|
||||
v1090_g n1090_g 0 '2'
|
||||
v1091_g n1091_g 0 '0'
|
||||
v1092_g n1092_g 0 '-1'
|
||||
v1093_g n1093_g 0 '-2'
|
||||
|
||||
|
||||
* ----------------------------------------
|
||||
* min(a,b) max(a,b)
|
||||
|
||||
v1094_t n1094_t 0 'min(1.1, 2.1)'
|
||||
v1095_t n1095_t 0 'min(2.1, 1.1)'
|
||||
|
||||
v1094_g n1094_g 0 '1.1'
|
||||
v1095_g n1095_g 0 '1.1'
|
||||
|
||||
|
||||
v1096_t n1096_t 0 'max(1.1, 2.1)'
|
||||
v1097_t n1097_t 0 'max(2.1, 1.1)'
|
||||
|
||||
v1096_g n1096_g 0 '2.1'
|
||||
v1097_g n1097_g 0 '2.1'
|
||||
|
||||
|
||||
* ----------------------------------------
|
||||
|
||||
.control
|
||||
|
||||
define mismatch(a,b,err) abs(a-b)>err
|
||||
|
||||
op
|
||||
|
||||
let total_count = 0
|
||||
let fail_count = 0
|
||||
|
||||
let tests = 1001 + vector(97)
|
||||
|
||||
foreach n $&tests
|
||||
set n_test = "n{$n}_t"
|
||||
set n_gold = "n{$n}_g"
|
||||
if mismatch(v($n_test), v($n_gold), 1e-9)
|
||||
let v_test = v($n_test)
|
||||
let v_gold = v($n_gold)
|
||||
echo "ERROR, test failure, v($n_test) = $&v_test but should be $&v_gold"
|
||||
let fail_count = fail_count + 1
|
||||
end
|
||||
let total_count = total_count + 1
|
||||
end
|
||||
|
||||
if fail_count > 0
|
||||
echo "ERROR: $&fail_count of $&total_count tests failed"
|
||||
quit 1
|
||||
else
|
||||
echo "INFO: $&fail_count of $&total_count tests failed"
|
||||
quit 0
|
||||
end
|
||||
|
||||
.endc
|
||||
|
||||
.end
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
Circuit: * 'xpressn-1' check xpressn.c parser
|
||||
|
||||
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
|
||||
|
||||
|
||||
|
||||
No. of Data Rows : 1
|
||||
INFO: 0 of 97 tests failed
|
||||
|
|
@ -0,0 +1,261 @@
|
|||
check precision of some functions
|
||||
|
||||
* do not change this file, its generated
|
||||
* (exec-spice "ngspice -b %s")
|
||||
|
||||
v0 n0 0 'sin(1.0e-9)'
|
||||
v1 n1 0 'sin(1.0e-1)'
|
||||
v2 n2 0 'sin(7.0e-1)'
|
||||
v3 n3 0 'cos(1.0e-9)'
|
||||
v4 n4 0 'cos(1.0e-1)'
|
||||
v5 n5 0 'cos(7.0e-1)'
|
||||
v6 n6 0 'tan(1.0e-9)'
|
||||
v7 n7 0 'tan(1.0e-1)'
|
||||
v8 n8 0 'tan(7.0e-1)'
|
||||
v9 n9 0 'asin(1.0e-9)'
|
||||
v10 n10 0 'asin(1.0e-1)'
|
||||
v11 n11 0 'asin(7.0e-1)'
|
||||
v12 n12 0 'acos(1.0e-9)'
|
||||
v13 n13 0 'acos(1.0e-1)'
|
||||
v14 n14 0 'acos(7.0e-1)'
|
||||
v15 n15 0 'atan(1.0e-9)'
|
||||
v16 n16 0 'atan(1.0e-1)'
|
||||
v17 n17 0 'atan(7.0e-1)'
|
||||
v18 n18 0 'sinh(1.0e-9)'
|
||||
v19 n19 0 'sinh(1.0e-1)'
|
||||
v20 n20 0 'sinh(7.0e-1)'
|
||||
v21 n21 0 'cosh(1.0e-9)'
|
||||
v22 n22 0 'cosh(1.0e-1)'
|
||||
v23 n23 0 'cosh(7.0e-1)'
|
||||
v24 n24 0 'tanh(1.0e-9)'
|
||||
v25 n25 0 'tanh(1.0e-1)'
|
||||
v26 n26 0 'tanh(7.0e-1)'
|
||||
v27 n27 0 'asinh(1.0e-9)'
|
||||
v28 n28 0 'asinh(1.0e-1)'
|
||||
v29 n29 0 'asinh(7.0e-1)'
|
||||
v30 n30 0 'acosh(1.2e+0)'
|
||||
v31 n31 0 'atanh(1.0e-9)'
|
||||
v32 n32 0 'atanh(1.0e-1)'
|
||||
v33 n33 0 'atanh(7.0e-1)'
|
||||
|
||||
|
||||
.control
|
||||
|
||||
op
|
||||
|
||||
let eps = 1.1102230246251568e-16
|
||||
|
||||
define mismatch(y,gold,err) abs(y-gold)>(err*gold)
|
||||
|
||||
define relerr_(y,gold) (y-gold)/(gold*eps)
|
||||
|
||||
|
||||
if mismatch(v(n0), 1.0e-9, 10*eps)
|
||||
let relerr = relerr_(v(n0), 1.0e-9)
|
||||
echo "ERROR, sin(1.0e-9) versus 1.0e-9 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n1), 9.983341664682815e-2, 10*eps)
|
||||
let relerr = relerr_(v(n1), 9.983341664682815e-2)
|
||||
echo "ERROR, sin(1.0e-1) versus 9.983341664682815e-2 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n2), 6.44217687237691e-1, 10*eps)
|
||||
let relerr = relerr_(v(n2), 6.44217687237691e-1)
|
||||
echo "ERROR, sin(7.0e-1) versus 6.44217687237691e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n3), 1.0e+0, 10*eps)
|
||||
let relerr = relerr_(v(n3), 1.0e+0)
|
||||
echo "ERROR, cos(1.0e-9) versus 1.0e+0 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n4), 9.950041652780258e-1, 10*eps)
|
||||
let relerr = relerr_(v(n4), 9.950041652780258e-1)
|
||||
echo "ERROR, cos(1.0e-1) versus 9.950041652780258e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n5), 7.648421872844885e-1, 10*eps)
|
||||
let relerr = relerr_(v(n5), 7.648421872844885e-1)
|
||||
echo "ERROR, cos(7.0e-1) versus 7.648421872844885e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n6), 1.0e-9, 10*eps)
|
||||
let relerr = relerr_(v(n6), 1.0e-9)
|
||||
echo "ERROR, tan(1.0e-9) versus 1.0e-9 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n7), 1.0033467208545055e-1, 10*eps)
|
||||
let relerr = relerr_(v(n7), 1.0033467208545055e-1)
|
||||
echo "ERROR, tan(1.0e-1) versus 1.0033467208545055e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n8), 8.422883804630794e-1, 10*eps)
|
||||
let relerr = relerr_(v(n8), 8.422883804630794e-1)
|
||||
echo "ERROR, tan(7.0e-1) versus 8.422883804630794e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n9), 1.0e-9, 10*eps)
|
||||
let relerr = relerr_(v(n9), 1.0e-9)
|
||||
echo "ERROR, asin(1.0e-9) versus 1.0e-9 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n10), 1.0016742116155979e-1, 10*eps)
|
||||
let relerr = relerr_(v(n10), 1.0016742116155979e-1)
|
||||
echo "ERROR, asin(1.0e-1) versus 1.0016742116155979e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n11), 7.753974966107529e-1, 10*eps)
|
||||
let relerr = relerr_(v(n11), 7.753974966107529e-1)
|
||||
echo "ERROR, asin(7.0e-1) versus 7.753974966107529e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n12), 1.5707963257948965e+0, 10*eps)
|
||||
let relerr = relerr_(v(n12), 1.5707963257948965e+0)
|
||||
echo "ERROR, acos(1.0e-9) versus 1.5707963257948965e+0 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n13), 1.470628905633337e+0, 10*eps)
|
||||
let relerr = relerr_(v(n13), 1.470628905633337e+0)
|
||||
echo "ERROR, acos(1.0e-1) versus 1.470628905633337e+0 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n14), 7.953988301841437e-1, 10*eps)
|
||||
let relerr = relerr_(v(n14), 7.953988301841437e-1)
|
||||
echo "ERROR, acos(7.0e-1) versus 7.953988301841437e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n15), 1.0e-9, 10*eps)
|
||||
let relerr = relerr_(v(n15), 1.0e-9)
|
||||
echo "ERROR, atan(1.0e-9) versus 1.0e-9 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n16), 9.966865249116206e-2, 10*eps)
|
||||
let relerr = relerr_(v(n16), 9.966865249116206e-2)
|
||||
echo "ERROR, atan(1.0e-1) versus 9.966865249116206e-2 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n17), 6.107259643892086e-1, 10*eps)
|
||||
let relerr = relerr_(v(n17), 6.107259643892086e-1)
|
||||
echo "ERROR, atan(7.0e-1) versus 6.107259643892086e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n18), 1.0e-9, 10*eps)
|
||||
let relerr = relerr_(v(n18), 1.0e-9)
|
||||
echo "ERROR, sinh(1.0e-9) versus 1.0e-9 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n19), 1.0016675001984403e-1, 10*eps)
|
||||
let relerr = relerr_(v(n19), 1.0016675001984403e-1)
|
||||
echo "ERROR, sinh(1.0e-1) versus 1.0016675001984403e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n20), 7.585837018395335e-1, 10*eps)
|
||||
let relerr = relerr_(v(n20), 7.585837018395335e-1)
|
||||
echo "ERROR, sinh(7.0e-1) versus 7.585837018395335e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n21), 1.0e+0, 10*eps)
|
||||
let relerr = relerr_(v(n21), 1.0e+0)
|
||||
echo "ERROR, cosh(1.0e-9) versus 1.0e+0 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n22), 1.0050041680558035e+0, 10*eps)
|
||||
let relerr = relerr_(v(n22), 1.0050041680558035e+0)
|
||||
echo "ERROR, cosh(1.0e-1) versus 1.0050041680558035e+0 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n23), 1.255169005630943e+0, 10*eps)
|
||||
let relerr = relerr_(v(n23), 1.255169005630943e+0)
|
||||
echo "ERROR, cosh(7.0e-1) versus 1.255169005630943e+0 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n24), 1.0e-9, 10*eps)
|
||||
let relerr = relerr_(v(n24), 1.0e-9)
|
||||
echo "ERROR, tanh(1.0e-9) versus 1.0e-9 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n25), 9.966799462495581e-2, 10*eps)
|
||||
let relerr = relerr_(v(n25), 9.966799462495581e-2)
|
||||
echo "ERROR, tanh(1.0e-1) versus 9.966799462495581e-2 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n26), 6.043677771171635e-1, 10*eps)
|
||||
let relerr = relerr_(v(n26), 6.043677771171635e-1)
|
||||
echo "ERROR, tanh(7.0e-1) versus 6.043677771171635e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n27), 1.0e-9, 10*eps)
|
||||
let relerr = relerr_(v(n27), 1.0e-9)
|
||||
echo "ERROR, asinh(1.0e-9) versus 1.0e-9 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n28), 9.983407889920759e-2, 10*eps)
|
||||
let relerr = relerr_(v(n28), 9.983407889920759e-2)
|
||||
echo "ERROR, asinh(1.0e-1) versus 9.983407889920759e-2 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n29), 6.526665660823557e-1, 10*eps)
|
||||
let relerr = relerr_(v(n29), 6.526665660823557e-1)
|
||||
echo "ERROR, asinh(7.0e-1) versus 6.526665660823557e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n30), 6.223625037147784e-1, 10*eps)
|
||||
let relerr = relerr_(v(n30), 6.223625037147784e-1)
|
||||
echo "ERROR, acosh(1.2e+0) versus 6.223625037147784e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n31), 1.0e-9, 10*eps)
|
||||
let relerr = relerr_(v(n31), 1.0e-9)
|
||||
echo "ERROR, atanh(1.0e-9) versus 1.0e-9 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n32), 1.0033534773107558e-1, 10*eps)
|
||||
let relerr = relerr_(v(n32), 1.0033534773107558e-1)
|
||||
echo "ERROR, atanh(1.0e-1) versus 1.0033534773107558e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
if mismatch(v(n33), 8.673005276940532e-1, 10*eps)
|
||||
let relerr = relerr_(v(n33), 8.673005276940532e-1)
|
||||
echo "ERROR, atanh(7.0e-1) versus 8.673005276940532e-1 mismatch"
|
||||
print relerr
|
||||
end
|
||||
|
||||
|
||||
quit 0
|
||||
|
||||
|
||||
.endc
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
Circuit: check precision of some functions
|
||||
|
||||
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
|
||||
|
||||
|
||||
|
||||
No. of Data Rows : 1
|
||||
Loading…
Reference in New Issue