diff --git a/ivtest/gold/test_va_math-vvp-stdout.gold b/ivtest/gold/test_va_math-vvp-stdout.gold new file mode 100644 index 000000000..a269057f6 --- /dev/null +++ b/ivtest/gold/test_va_math-vvp-stdout.gold @@ -0,0 +1,328 @@ +Using +0 = 0.000000, -0 = -0.000000, nan = nan, inf = inf and -inf = -inf. + +NaN != comparison works correctly. +NaN == comparison works correctly. + +--- Checking the $sqrt function --- +The square root of 2.0 is 1.414214. +The square root of 1.0 is 1.000000. +The square root of 0.0 is 0.000000. +The square root of -0.0 is -0.000000. +The square root of -1.0 is nan. +The square root of inf is inf. +The square root of -inf is nan. +The square root of nan is nan. + +--- Checking the $ln function --- +The natural log of 10.0 is 2.302585. +The natural log of 1.0 is 0.000000. +The natural log of 0.5 is -0.693147. +The natural log of 0.0 is -inf. +The natural log of -0.0 is -inf. +The natural log of -1.0 is nan. +The natural log of inf is inf. +The natural log of -inf is nan. +The natural log of nan is nan. + +--- Checking the $log10 function --- +The log base 10 of 10.0 is 1.000000. +The log base 10 of 1.0 is 0.000000. +The log base 10 of 0.5 is -0.301030. +The log base 10 of 0.0 is -inf. +The log base 10 of -0.0 is -inf. +The log base 10 of -1.0 is nan. +The log base 10 of inf is inf. +The log base 10 of -inf is nan. +The log base 10 of nan is nan. + +--- Checking the $exp function --- +The exponential of 1.0 is 2.718282. +The exponential of 0.0 is 1.000000. +The exponential of -0.0 is 1.000000. +The exponential of -1.0 is 0.367879. +The exponential of inf is inf. +The exponential of -inf is 0.000000. +The exponential of nan is nan. + +--- Checking the $abs function --- +The absolute value of 1.0 is 1.000000. +The absolute value of 0.0 is 0.000000. +The absolute value of -0.0 is 0.000000. +The absolute value of -1.0 is 1.000000. +The absolute value of inf is inf. +The absolute value of -inf is inf. +The absolute value of nan is nan. + +--- Checking the $ceil function --- +The ceiling of 2.1 is 3.000000. +The ceiling of 0.5 is 1.000000. +The ceiling of -0.5 is 0.000000. +The ceiling of -1.1 is -1.000000. +The ceiling of inf is inf. +The ceiling of -inf is -inf. +The ceiling of nan is nan. + +--- Checking the $floor function --- +The floor of 2.1 is 2.000000. +The floor of 0.5 is 0.000000. +The floor of -0.5 is -1.000000. +The floor of -1.1 is -2.000000. +The floor of inf is inf. +The floor of -inf is -inf. +The floor of nan is nan. + +--- Checking the $sin function --- +The sin of 4.0 is -0.756802. +The sin of 1.0 is 0.841471. +The sin of 0.0 is 0.000000. +The sin of -0.0 is -0.000000. +The sin of -1.0 is -0.841471. +The sin of -4.0 is 0.756802. +The sin of inf is nan. +The sin of -inf is nan. +The sin of nan is nan. + +--- Checking the $cos function --- +The cos of 4.0 is -0.653644. +The cos of 1.0 is 0.540302. +The cos of 0.0 is 1.000000. +The cos of -0.0 is 1.000000. +The cos of -1.0 is 0.540302. +The cos of -4.0 is -0.653644. +The cos of inf is nan. +The cos of -inf is nan. +The cos of nan is nan. + +--- Checking the $tan function --- +The tan of 4.0 is 1.157821. +The tan of 1.0 is 1.557408. +The tan of 0.0 is 0.000000. +The tan of -0.0 is -0.000000. +The tan of -1.0 is -1.557408. +The tan of -4.0 is -1.157821. +The tan of pi/2 is 1.633e+16. +The tan of -pi/2 is -1.633e+16. +The tan of inf is nan. +The tan of -inf is nan. +The tan of nan is nan. + +--- Checking the $asin function --- +The asin of 1.1 is nan. +The asin of 1.0 is 1.570796. +The asin of 0.5 is 0.523599. +The asin of 0.0 is 0.000000. +The asin of -0.0 is -0.000000. +The asin of -0.5 is -0.523599. +The asin of -1.0 is -1.570796. +The asin of -1.1 is nan. +The asin of inf is nan. +The asin of -inf is nan. +The asin of nan is nan. + +--- Checking the $acos function --- +The acos of 1.1 is nan. +The acos of 1.0 is 0.000000. +The acos of 0.5 is 1.047198. +The acos of 0.0 is 1.570796. +The acos of -0.0 is 1.570796. +The acos of -0.5 is 2.094395. +The acos of -1.0 is 3.141593. +The acos of -1.1 is nan. +The acos of inf is nan. +The acos of -inf is nan. +The acos of nan is nan. + +--- Checking the $atan function --- +The atan of 2.0 is 1.107149. +The atan of 0.5 is 0.463648. +The atan of 0.0 is 0.000000. +The atan of -0.0 is -0.000000. +The atan of -0.5 is -0.463648. +The atan of -2.0 is -1.107149. +The atan of inf is 1.570796. +The atan of -inf is -1.570796. +The atan of nan is nan. + +--- Checking the $sinh function --- +The sinh of 2.0 is 3.626860. +The sinh of 1.0 is 1.175201. +The sinh of 0.5 is 0.521095. +The sinh of 0.0 is 0.000000. +The sinh of -0.0 is -0.000000. +The sinh of -0.5 is -0.521095. +The sinh of -1.0 is -1.175201. +The sinh of -2.0 is -3.626860. +The sinh of inf is inf. +The sinh of -inf is -inf. +The sinh of nan is nan. + +--- Checking the $cosh function --- +The cosh of 2.0 is 3.762196. +The cosh of 1.0 is 1.543081. +The cosh of 0.5 is 1.127626. +The cosh of 0.0 is 1.000000. +The cosh of -0.0 is 1.000000. +The cosh of -0.5 is 1.127626. +The cosh of -1.0 is 1.543081. +The cosh of -2.0 is 3.762196. +The cosh of inf is inf. +The cosh of -inf is inf. +The cosh of nan is nan. + +--- Checking the $tanh function --- +The tanh of 2.0 is 0.964028. +The tanh of 1.0 is 0.761594. +The tanh of 0.5 is 0.462117. +The tanh of 0.0 is 0.000000. +The tanh of -0.0 is -0.000000. +The tanh of -0.5 is -0.462117. +The tanh of -1.0 is -0.761594. +The tanh of -2.0 is -0.964028. +The tanh of inf is 1.000000. +The tanh of -inf is -1.000000. +The tanh of nan is nan. + +--- Checking the $asinh function --- +The asinh of 2.0 is 1.443635. +The asinh of 1.0 is 0.881374. +The asinh of 0.5 is 0.481212. +The asinh of 0.0 is 0.000000. +The asinh of -0.0 is -0.000000. +The asinh of -0.5 is -0.481212. +The asinh of -1.0 is -0.881374. +The asinh of -2.0 is -1.443635. +The asinh of inf is inf. +The asinh of -inf is -inf. +The asinh of nan is nan. + +--- Checking the $acosh function --- +The acosh of 2.0 is 1.316958. +The acosh of 1.0 is 0.000000. +The acosh of 0.5 is nan. +The acosh of 0 is nan. +The acosh of -0 is nan. +The acosh of -0.5 is nan. +The acosh of -1.0 is nan. +The acosh of -2.0 is nan. +The acosh of inf is inf. +The acosh of -inf is nan. +The acosh of nan is nan. + +--- Checking the $atanh function --- +The atanh of 2.0 is nan. +The atanh of 1.0 is inf. +The atanh of 0.5 is 0.549306. +The atanh of 0.0 is 0.000000. +The atanh of -0.0 is -0.000000. +The atanh of -0.5 is -0.549306. +The atanh of -1.0 is -inf. +The atanh of -2.0 is nan. +The atanh of inf is nan. +The atanh of -inf is nan. +The atanh of nan is nan. + +--- Checking the $min function --- +The minimum of 1.0 and 2.0 is 1.000000. +The minimum of 2.0 and 1.0 is 1.000000. +The minimum of 1.0 and -1.0 is -1.000000. +The minimum of -1.0 and -2.0 is -2.000000. +The minimum of 2.0 and inf is 2.000000. +The minimum of inf and 2.0 is 2.000000. +The minimum of 2.0 and -inf is -inf. +The minimum of -inf and 2.0 is -inf. +The minimum of 2.0 and nan is 2.000000. +The minimum of nan and 2.0 is 2.000000. + +--- Checking the $max function --- +The maximum of 1.0 and 2.0 is 2.000000. +The maximum of 2.0 and 1.0 is 2.000000. +The maximum of 1.0 and -1.0 is 1.000000. +The maximum of -1.0 and -2.0 is -1.000000. +The maximum of 2.0 and inf is inf. +The maximum of inf and 2.0 is inf. +The maximum of 2.0 and -inf is 2.000000. +The maximum of -inf and 2.0 is 2.000000. +The maximum of 2.0 and nan is 2.000000. +The maximum of nan and 2.0 is 2.000000. + +--- Checking the $pow function --- + 0.0 to the power of 0.0 is 1.000000. + 1.0 to the power of 0.0 is 1.000000. +-1.0 to the power of 0.0 is 1.000000. + 0.0 to the power of 1.0 is 0.000000. + 1.0 to the power of 1.0 is 1.000000. +-1.0 to the power of 1.0 is -1.000000. + 8.0 to the power of 1/3 is 2.000000. + 8.0 to the power of -1/3 is 0.500000. + 2.0 to the power of 3.0 is 8.000000. + 2.0 to the power of 5000 is inf. +-2.0 to the power of 5001 is -inf. + 2.0 to the power of -5000 is 0.000000. + inf to the power of 0.0 is 1.000000. +-inf to the power of 0.0 is 1.000000. + inf to the power of 1.0 is inf. +-inf to the power of 1.0 is -inf. + inf to the power of 2.0 is inf. +-inf to the power of 2.0 is inf. + 1.0 to the power of inf is 1.000000. +-1.0 to the power of inf is 1.000000. + 0.5 to the power of inf is 0.000000. + 2.0 to the power of inf is inf. + 1.0 to the power of -inf is 1.000000. +-1.0 to the power of -inf is 1.000000. + 0.5 to the power of -inf is inf. + 2.0 to the power of -inf is 0.000000. +-1.0 to the power of -1/3 is nan. + 1.0 to the power of nan is 1.000000. + nan to the power of 1.0 is nan. + nan to the power of 0.0 is 1.000000. + nan to the power of nan is nan. + +--- Checking the $atan2 function --- +The atan of 0.0/ 0.0 is 0.000000. +The atan of -0.0/ 0.0 is -0.000000. +The atan of 0.0/-0.0 is 3.141593. +The atan of -0.0/-0.0 is -3.141593. +The atan of 0.0/ 1.0 is 0.000000. +The atan of 1.0/ 0.0 is 1.570796. +The atan of 1.0/ 1.0 is 0.785398. +The atan of 0.0/-1.0 is 3.141593. +The atan of -1.0/ 0.0 is -1.570796. +The atan of -1.0/-1.0 is -2.356194. +The atan of inf/ 0.0 is 1.570796. +The atan of 0.0/ inf is 0.000000. +The atan of inf/ inf is 0.785398. +The atan of -inf/ 0.0 is -1.570796. +The atan of 0.0/-inf is 3.141593. +The atan of -inf/-inf is -2.356194. +The atan of nan/ 0.0 is nan. +The atan of nan/ 1.0 is nan. +The atan of 1.0/ nan is nan. + +--- Checking the $hypot function --- +The distance to ( 0.0, 0.0) is 0.000000. +The distance to ( 2.0, 0.0) is 2.000000. +The distance to ( -2.0, 0.0) is 2.000000. +The distance to ( 0.0, 2.0) is 2.000000. +The distance to ( 0.0, -2.0) is 2.000000. +The distance to ( inf, 0.0) is inf. +The distance to ( 0.0, inf) is inf. +The distance to ( -inf, 0.0) is inf. +The distance to ( nan, 0.0) is nan. +The distance to ( 0.0, nan) is nan. + +--- Checking the mathematical constants --- + Pi is 3.1415926535897931. + 2*Pi is 6.2831853071795862. + Pi/2 is 1.5707963267948966. + Pi/4 is 0.7853981633974483. + 1/Pi is 0.3183098861837907. + 2/Pi is 0.6366197723675814. +2/sqrt(Pi) is 1.1283791670955126. + e is 2.7182818284590451. + log2(e) is 1.4426950408889634. + log10(e) is 0.4342944819032518. + loge(2) is 0.6931471805599453. + loge(10) is 2.3025850929940459. + sqrt(2) is 1.4142135623730951. + 1/sqrt(2) is 0.7071067811865476. diff --git a/ivtest/gold/test_vams_math-vvp-stdout.gold b/ivtest/gold/test_vams_math-vvp-stdout.gold new file mode 100644 index 000000000..7ae8821ca --- /dev/null +++ b/ivtest/gold/test_vams_math-vvp-stdout.gold @@ -0,0 +1,328 @@ +Using +0 = 0.000000, -0 = -0.000000, nan = nan, inf = inf and -inf = -inf. + +NaN != comparison works correctly. +NaN == comparison works correctly. + +--- Checking the sqrt function --- +The square root of 2.0 is 1.414214. +The square root of 1.0 is 1.000000. +The square root of 0.0 is 0.000000. +The square root of -0.0 is -0.000000. +The square root of -1.0 is nan. +The square root of inf is inf. +The square root of -inf is nan. +The square root of nan is nan. + +--- Checking the ln function --- +The natural log of 10.0 is 2.302585. +The natural log of 1.0 is 0.000000. +The natural log of 0.5 is -0.693147. +The natural log of 0.0 is -inf. +The natural log of -0.0 is -inf. +The natural log of -1.0 is nan. +The natural log of inf is inf. +The natural log of -inf is nan. +The natural log of nan is nan. + +--- Checking the log function --- +The log base 10 of 10.0 is 1.000000. +The log base 10 of 1.0 is 0.000000. +The log base 10 of 0.5 is -0.301030. +The log base 10 of 0.0 is -inf. +The log base 10 of -0.0 is -inf. +The log base 10 of -1.0 is nan. +The log base 10 of inf is inf. +The log base 10 of -inf is nan. +The log base 10 of nan is nan. + +--- Checking the exp function --- +The exponential of 1.0 is 2.718282. +The exponential of 0.0 is 1.000000. +The exponential of -0.0 is 1.000000. +The exponential of -1.0 is 0.367879. +The exponential of inf is inf. +The exponential of -inf is 0.000000. +The exponential of nan is nan. + +--- Checking the abs function --- +The absolute value of 1.0 is 1.000000. +The absolute value of 0.0 is 0.000000. +The absolute value of -0.0 is 0.000000. +The absolute value of -1.0 is 1.000000. +The absolute value of inf is inf. +The absolute value of -inf is inf. +The absolute value of nan is nan. + +--- Checking the ceil function --- +The ceiling of 2.1 is 3.000000. +The ceiling of 0.5 is 1.000000. +The ceiling of -0.5 is 0.000000. +The ceiling of -1.1 is -1.000000. +The ceiling of inf is inf. +The ceiling of -inf is -inf. +The ceiling of nan is nan. + +--- Checking the floor function --- +The floor of 2.1 is 2.000000. +The floor of 0.5 is 0.000000. +The floor of -0.5 is -1.000000. +The floor of -1.1 is -2.000000. +The floor of inf is inf. +The floor of -inf is -inf. +The floor of nan is nan. + +--- Checking the sin function --- +The sin of 4.0 is -0.756802. +The sin of 1.0 is 0.841471. +The sin of 0.0 is 0.000000. +The sin of -0.0 is -0.000000. +The sin of -1.0 is -0.841471. +The sin of -4.0 is 0.756802. +The sin of inf is nan. +The sin of -inf is nan. +The sin of nan is nan. + +--- Checking the cos function --- +The cos of 4.0 is -0.653644. +The cos of 1.0 is 0.540302. +The cos of 0.0 is 1.000000. +The cos of -0.0 is 1.000000. +The cos of -1.0 is 0.540302. +The cos of -4.0 is -0.653644. +The cos of inf is nan. +The cos of -inf is nan. +The cos of nan is nan. + +--- Checking the tan function --- +The tan of 4.0 is 1.157821. +The tan of 1.0 is 1.557408. +The tan of 0.0 is 0.000000. +The tan of -0.0 is -0.000000. +The tan of -1.0 is -1.557408. +The tan of -4.0 is -1.157821. +The tan of pi/2 is 1.633e+16. +The tan of -pi/2 is -1.633e+16. +The tan of inf is nan. +The tan of -inf is nan. +The tan of nan is nan. + +--- Checking the asin function --- +The asin of 1.1 is nan. +The asin of 1.0 is 1.570796. +The asin of 0.5 is 0.523599. +The asin of 0.0 is 0.000000. +The asin of -0.0 is -0.000000. +The asin of -0.5 is -0.523599. +The asin of -1.0 is -1.570796. +The asin of -1.1 is nan. +The asin of inf is nan. +The asin of -inf is nan. +The asin of nan is nan. + +--- Checking the acos function --- +The acos of 1.1 is nan. +The acos of 1.0 is 0.000000. +The acos of 0.5 is 1.047198. +The acos of 0.0 is 1.570796. +The acos of -0.0 is 1.570796. +The acos of -0.5 is 2.094395. +The acos of -1.0 is 3.141593. +The acos of -1.1 is nan. +The acos of inf is nan. +The acos of -inf is nan. +The acos of nan is nan. + +--- Checking the atan function --- +The atan of 2.0 is 1.107149. +The atan of 0.5 is 0.463648. +The atan of 0.0 is 0.000000. +The atan of -0.0 is -0.000000. +The atan of -0.5 is -0.463648. +The atan of -2.0 is -1.107149. +The atan of inf is 1.570796. +The atan of -inf is -1.570796. +The atan of nan is nan. + +--- Checking the sinh function --- +The sinh of 2.0 is 3.626860. +The sinh of 1.0 is 1.175201. +The sinh of 0.5 is 0.521095. +The sinh of 0.0 is 0.000000. +The sinh of -0.0 is -0.000000. +The sinh of -0.5 is -0.521095. +The sinh of -1.0 is -1.175201. +The sinh of -2.0 is -3.626860. +The sinh of inf is inf. +The sinh of -inf is -inf. +The sinh of nan is nan. + +--- Checking the cosh function --- +The cosh of 2.0 is 3.762196. +The cosh of 1.0 is 1.543081. +The cosh of 0.5 is 1.127626. +The cosh of 0.0 is 1.000000. +The cosh of -0.0 is 1.000000. +The cosh of -0.5 is 1.127626. +The cosh of -1.0 is 1.543081. +The cosh of -2.0 is 3.762196. +The cosh of inf is inf. +The cosh of -inf is inf. +The cosh of nan is nan. + +--- Checking the tanh function --- +The tanh of 2.0 is 0.964028. +The tanh of 1.0 is 0.761594. +The tanh of 0.5 is 0.462117. +The tanh of 0.0 is 0.000000. +The tanh of -0.0 is -0.000000. +The tanh of -0.5 is -0.462117. +The tanh of -1.0 is -0.761594. +The tanh of -2.0 is -0.964028. +The tanh of inf is 1.000000. +The tanh of -inf is -1.000000. +The tanh of nan is nan. + +--- Checking the asinh function --- +The asinh of 2.0 is 1.443635. +The asinh of 1.0 is 0.881374. +The asinh of 0.5 is 0.481212. +The asinh of 0.0 is 0.000000. +The asinh of -0.0 is -0.000000. +The asinh of -0.5 is -0.481212. +The asinh of -1.0 is -0.881374. +The asinh of -2.0 is -1.443635. +The asinh of inf is inf. +The asinh of -inf is -inf. +The asinh of nan is nan. + +--- Checking the acosh function --- +The acosh of 2.0 is 1.316958. +The acosh of 1.0 is 0.000000. +The acosh of 0.5 is nan. +The acosh of 0 is nan. +The acosh of -0 is nan. +The acosh of -0.5 is nan. +The acosh of -1.0 is nan. +The acosh of -2.0 is nan. +The acosh of inf is inf. +The acosh of -inf is nan. +The acosh of nan is nan. + +--- Checking the atanh function --- +The atanh of 2.0 is nan. +The atanh of 1.0 is inf. +The atanh of 0.5 is 0.549306. +The atanh of 0.0 is 0.000000. +The atanh of -0.0 is -0.000000. +The atanh of -0.5 is -0.549306. +The atanh of -1.0 is -inf. +The atanh of -2.0 is nan. +The atanh of inf is nan. +The atanh of -inf is nan. +The atanh of nan is nan. + +--- Checking the min function --- +The minimum of 1.0 and 2.0 is 1.000000. +The minimum of 2.0 and 1.0 is 1.000000. +The minimum of 1.0 and -1.0 is -1.000000. +The minimum of -1.0 and -2.0 is -2.000000. +The minimum of 2.0 and inf is 2.000000. +The minimum of inf and 2.0 is 2.000000. +The minimum of 2.0 and -inf is -inf. +The minimum of -inf and 2.0 is -inf. +The minimum of 2.0 and nan is 2.000000. +The minimum of nan and 2.0 is 2.000000. + +--- Checking the max function --- +The maximum of 1.0 and 2.0 is 2.000000. +The maximum of 2.0 and 1.0 is 2.000000. +The maximum of 1.0 and -1.0 is 1.000000. +The maximum of -1.0 and -2.0 is -1.000000. +The maximum of 2.0 and inf is inf. +The maximum of inf and 2.0 is inf. +The maximum of 2.0 and -inf is 2.000000. +The maximum of -inf and 2.0 is 2.000000. +The maximum of 2.0 and nan is 2.000000. +The maximum of nan and 2.0 is 2.000000. + +--- Checking the pow function --- + 0.0 to the power of 0.0 is 1.000000. + 1.0 to the power of 0.0 is 1.000000. +-1.0 to the power of 0.0 is 1.000000. + 0.0 to the power of 1.0 is 0.000000. + 1.0 to the power of 1.0 is 1.000000. +-1.0 to the power of 1.0 is -1.000000. + 8.0 to the power of 1/3 is 2.000000. + 8.0 to the power of -1/3 is 0.500000. + 2.0 to the power of 3.0 is 8.000000. + 2.0 to the power of 5000 is inf. +-2.0 to the power of 5001 is -inf. + 2.0 to the power of -5000 is 0.000000. + inf to the power of 0.0 is 1.000000. +-inf to the power of 0.0 is 1.000000. + inf to the power of 1.0 is inf. +-inf to the power of 1.0 is -inf. + inf to the power of 2.0 is inf. +-inf to the power of 2.0 is inf. + 1.0 to the power of inf is 1.000000. +-1.0 to the power of inf is 1.000000. + 0.5 to the power of inf is 0.000000. + 2.0 to the power of inf is inf. + 1.0 to the power of -inf is 1.000000. +-1.0 to the power of -inf is 1.000000. + 0.5 to the power of -inf is inf. + 2.0 to the power of -inf is 0.000000. +-1.0 to the power of -1/3 is nan. + 1.0 to the power of nan is 1.000000. + nan to the power of 1.0 is nan. + nan to the power of 0.0 is 1.000000. + nan to the power of nan is nan. + +--- Checking the atan2 function --- +The atan of 0.0/ 0.0 is 0.000000. +The atan of -0.0/ 0.0 is -0.000000. +The atan of 0.0/-0.0 is 3.141593. +The atan of -0.0/-0.0 is -3.141593. +The atan of 0.0/ 1.0 is 0.000000. +The atan of 1.0/ 0.0 is 1.570796. +The atan of 1.0/ 1.0 is 0.785398. +The atan of 0.0/-1.0 is 3.141593. +The atan of -1.0/ 0.0 is -1.570796. +The atan of -1.0/-1.0 is -2.356194. +The atan of inf/ 0.0 is 1.570796. +The atan of 0.0/ inf is 0.000000. +The atan of inf/ inf is 0.785398. +The atan of -inf/ 0.0 is -1.570796. +The atan of 0.0/-inf is 3.141593. +The atan of -inf/-inf is -2.356194. +The atan of nan/ 0.0 is nan. +The atan of nan/ 1.0 is nan. +The atan of 1.0/ nan is nan. + +--- Checking the hypot function --- +The distance to ( 0.0, 0.0) is 0.000000. +The distance to ( 2.0, 0.0) is 2.000000. +The distance to ( -2.0, 0.0) is 2.000000. +The distance to ( 0.0, 2.0) is 2.000000. +The distance to ( 0.0, -2.0) is 2.000000. +The distance to ( inf, 0.0) is inf. +The distance to ( 0.0, inf) is inf. +The distance to ( -inf, 0.0) is inf. +The distance to ( nan, 0.0) is nan. +The distance to ( 0.0, nan) is nan. + +--- Checking the mathematical constants --- + Pi is 3.1415926535897931. + 2*Pi is 6.2831853071795862. + Pi/2 is 1.5707963267948966. + Pi/4 is 0.7853981633974483. + 1/Pi is 0.3183098861837907. + 2/Pi is 0.6366197723675814. +2/sqrt(Pi) is 1.1283791670955126. + e is 2.7182818284590451. + log2(e) is 1.4426950408889634. + log10(e) is 0.4342944819032518. + loge(2) is 0.6931471805599453. + loge(10) is 2.3025850929940459. + sqrt(2) is 1.4142135623730951. + 1/sqrt(2) is 0.7071067811865476. diff --git a/ivtest/regress-ivl1.list b/ivtest/regress-ivl1.list index 58b96326c..400515599 100644 --- a/ivtest/regress-ivl1.list +++ b/ivtest/regress-ivl1.list @@ -91,13 +91,6 @@ pr2002443 CO,-E ivltests # Icarus language extensions #------------------------------------------------------------------------------ -# $abs, $min and $max to match VAMS abs, min and max -constfunc6_ams normal ivltests -non-polymorphic-abs normal ivltests -pr3270320_ams CE ivltests -test_va_math normal,-mva_math ivltests gold=test_va_math.gold -va_math normal ivltests - # $abstime from VAMS abstime normal ivltests pr2590274a normal ivltests gold=pr2590274.gold diff --git a/ivtest/regress-vams.list b/ivtest/regress-vams.list deleted file mode 100644 index 35f5b2ff1..000000000 --- a/ivtest/regress-vams.list +++ /dev/null @@ -1,91 +0,0 @@ -# This test list contains tests that should work using any simulator that -# supports Verilog-AMS. - -# -# Copyright (c) 1999-2014 Guy Hutchison (ghutchis@pacbell.net) -# -# This source code is free software; you can redistribute it -# and/or modify it in source code form under the terms of the GNU -# General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA -# -# Format of the file -# -# testname testtype directory -# -# The is the verilog file name minus an extension. -# -# The can be one of the following: -# -# normal: Normal results expected, i.e it should compile and execute -# producing at least a single line with PASSED. -# -# CO: Compile Only - Compile the file to the default output type. -# -# CN: Compile Null - Compile with the null target. Similar to CO. -# -# CE: Compile with Errors - We EXPECT errors - we're checking -# illegal syntax -# -# RE: Runtime with Errors - We EXPECT errors - we're checking -# illegal syntax -# -# EF: Expected Fail - We EXPECT this test to fail - only use -# with older versions of Icarus. -# -# TE: Translation Error - We EXPECT the translated code to fail - -# only supported in the vlog95 checker. -# -# NI: Not implemented. Only use for version specific tests. -# -# is where the .v file is located. -# -# An optional fourth and fifth argument can be supplied. -# -# The fourth argument may be one of the following. -# -# modulename - Defines the top level module -# gold=filename - Compare a gold file against the -# generated log file. -# unordered=filename - Compare a gold file against the -# generated log file, allowing for lines -# to appear in any order -# diff=filename1:filename2:skip_ln - Compare the two files for equality. -# Skip the first lines or none. -# -# If a is given you can supply a fifth argument for the -# gold or diff commands. -# - -#analog1 normal,-gverilog-ams ivltests -#analog2 normal,-gverilog-ams ivltests -analog1 NI ivltests -analog2 NI ivltests -br_gh99c normal,-gverilog-ams ivltests -cast_int_ams normal,-gverilog-ams ivltests -constfunc4_ams normal,-gverilog-ams ivltests -scaled_real normal,-gverilog-ams ivltests -test_vams_math normal,-gverilog-ams ivltests gold=test_vams_math.gold -value_range1 normal,-gverilog-ams ivltests -value_range2 normal,-gverilog-ams ivltests -value_range3 CE,-gverilog-ams ivltests -vams_abs1 normal,-gverilog-ams ivltests -vams_abs2 normal,-gverilog-ams ivltests -vams_abs3 normal,-gverilog-ams ivltests -wreal normal,-gverilog-ams ivltests -# Verilog functions added in a VAMS simulator -constfunc6_ams normal ivltests -non-polymorphic-abs normal ivltests -pr3270320_ams CE ivltests -test_va_math normal,-mva_math ivltests gold=test_va_math.gold -va_math normal ivltests diff --git a/ivtest/regress-vlog95.list b/ivtest/regress-vlog95.list index 5e9106762..2f350d183 100644 --- a/ivtest/regress-vlog95.list +++ b/ivtest/regress-vlog95.list @@ -157,11 +157,8 @@ real_wire_array CE ivltests real_wire_force_rel CE ivltests tern8 CE ivltests v2005_math CE ivltests -vams_abs2 CE,-gverilog-ams,-pallowsigned=1 ivltests -vams_abs3 CE,-gverilog-ams,-pallowsigned=1 ivltests vhdl_real CE,-g2009,ivltests/vhdl_real.vhd ivltests vhdl_unbounded CE,-g2009,ivltests/vhdl_unbounded.vhd ivltests -wreal CE ivltests # Real modulus is an Icarus extension. pr1528093 CE ivltests @@ -860,7 +857,6 @@ br943_944 normal,-g2009,-pallowsigned=1,ivltests/br943_944.vhd ivltests br985 normal,-g2009,-pallowsigned=1,ivltests/br985.vhd ivltests br1025 normal,-g2009,-pallowsigned=1 ivltests br_gh8 normal,-pallowsigned=1 ivltests -br_gh99c normal,-gverilog-ams,-pallowsigned=1 ivltests br_gh99r normal,-pallowsigned=1 ivltests br_gh112e normal,-g2009,-pallowsigned=1 ivltests br_gh112f normal,-g2009,-pallowsigned=1 ivltests @@ -884,12 +880,9 @@ br_gh801 normal,-g2009,-pallowsigned=1 ivltests br_gh801b normal,-g2009,-pallowsigned=1 ivltests ca_mult normal,-pallowsigned=1 ivltests gold=ca_mult.gold cast_int normal,-pallowsigned=1 ivltests -cast_int_ams normal,-gverilog-ams,-pallowsigned=1 ivltests cfunc_assign_op_vec normal,-g2009,-pallowsigned=1 ivltests constfunc4 normal,-pallowsigned=1 ivltests -constfunc4_ams normal,-gverilog-ams,-pallowsigned=1 ivltests constfunc6 normal,-pallowsigned=1 ivltests -constfunc6_ams normal,-pallowsigned=1 ivltests constfunc7 normal,-pallowsigned=1 ivltests constfunc13 normal,-pallowsigned=1 ivltests constfunc14 normal,-pallowsigned=1 ivltests @@ -1030,7 +1023,6 @@ vhdl_test8 normal,-g2005-sv,-pallowsigned=1,ivltests/vhdl_test8.vhd ivltests vhdl_test9 normal,-g2005-sv,-pallowsigned=1,ivltests/vhdl_test9.vhd ivltests two_state_display normal,-g2009,-pallowsigned=1 ivltests gold=two_state_display.gold undefined_shift normal,-pallowsigned=1 ivltests -vams_abs1 normal,-gverilog-ams,-pallowsigned=1 ivltests vhdl_concurrent_assert normal,-g2005-sv,-pallowsigned=1,ivltests/vhdl_concurrent_assert.vhd ivltests gold=vhdl_concurrent_assert.gold vhdl_const_record normal,-g2005-sv,-pallowsigned=1,ivltests/vhdl_const_record.vhd ivltests vhdl_delay_assign normal,-g2005-sv,-pallowsigned=1,-fivltests/vhdl_timescale_1ns.cfg,ivltests/vhdl_delay_assign.vhd ivltests diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index ca3a4efe7..5a7633278 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -16,12 +16,20 @@ br_gh383b vvp_tests/br_gh383b.json br_gh383c vvp_tests/br_gh383c.json br_gh383d vvp_tests/br_gh383d.json br_gh939 vvp_tests/br_gh939.json +br_gh99c vvp_tests/br_gh99c.json +br_gh99c-vlog95 vvp_tests/br_gh99c-vlog95.json ca_time_real` vvp_tests/ca_time_real.json case1 vvp_tests/case1.json case2 vvp_tests/case2.json case2-S vvp_tests/case2-S.json case3 vvp_tests/case3.json casex_synth vvp_tests/casex_synth.json +cast_int_ams vvp_tests/cast_int_ams.json +cast_int_ams-vlog95 vvp_tests/cast_int_ams-vlog95.json +constfunc4_ams vvp_tests/constfunc4_ams.json +constfunc4_ams-vlog95 vvp_tests/constfunc4_ams-vlog95.json +constfunc6_ams vvp_tests/constfunc6_ams.json +constfunc6_ams-vlog95 vvp_tests/constfunc6_ams-vlog95.json constfunc16 vvp_tests/constfunc16.json constfunc17 vvp_tests/constfunc17.json constfunc18 vvp_tests/constfunc18.json @@ -50,6 +58,7 @@ module_ordered_list1 vvp_tests/module_ordered_list1.json module_ordered_list2 vvp_tests/module_ordered_list2.json module_port_array1 vvp_tests/module_port_array1.json module_port_array_init1 vvp_tests/module_port_array_init1.json +non-polymorphic-abs vvp_tests/non-polymorphic-abs.json param-width vvp_tests/param-width.json param-width-vlog95 vvp_tests/param-width-vlog95.json parameter_type vvp_tests/parameter_type.json @@ -60,10 +69,16 @@ pr1701890 vvp_tests/pr1701890.json pr1864110a vvp_tests/pr1864110a.json pr1864110b vvp_tests/pr1864110b.json pr1864115 vvp_tests/pr1864115.json +pr3270320_ams vvp_tests/pr3270320_ams.json pr903 vvp_tests/pr903.json pr903-vlog95 vvp_tests/pr903-vlog95.json pv_wr_fn_vec2 vvp_tests/pv_wr_fn_vec2.json pv_wr_fn_vec4 vvp_tests/pv_wr_fn_vec4.json +scaled_real vvp_tests/scaled_real.json +sdf_interconnect1 vvp_tests/sdf_interconnect1.json +sdf_interconnect2 vvp_tests/sdf_interconnect2.json +sdf_interconnect3 vvp_tests/sdf_interconnect3.json +sdf_interconnect4 vvp_tests/sdf_interconnect4.json struct_enum_partsel vvp_tests/struct_enum_partsel.json struct_field_left_right vvp_tests/struct_field_left_right.json struct_packed_write_read vvp_tests/struct_packed_write_read.json @@ -115,9 +130,18 @@ task_return1 vvp_tests/task_return1.json task_return2 vvp_tests/task_return2.json task_return_fail1 vvp_tests/task_return_fail1.json task_return_fail2 vvp_tests/task_return_fail2.json +test_va_math vvp_tests/test_va_math.json +test_vams_math vvp_tests/test_vams_math.json timing_check_syntax vvp_tests/timing_check_syntax.json timing_check_delayed_signals vvp_tests/timing_check_delayed_signals.json -sdf_interconnect1 vvp_tests/sdf_interconnect1.json -sdf_interconnect2 vvp_tests/sdf_interconnect2.json -sdf_interconnect3 vvp_tests/sdf_interconnect3.json -sdf_interconnect4 vvp_tests/sdf_interconnect4.json +value_range1 vvp_tests/value_range1.json +value_range2 vvp_tests/value_range2.json +value_range3 vvp_tests/value_range3.json +vams_abs1 vvp_tests/vams_abs1.json +vams_abs1-vlog95 vvp_tests/vams_abs1-vlog95.json +vams_abs2 vvp_tests/vams_abs2.json +vams_abs2-vlog95 vvp_tests/vams_abs2-vlog95.json +vams_abs3 vvp_tests/vams_abs3.json +vams_abs3-vlog95 vvp_tests/vams_abs3-vlog95.json +va_math vvp_tests/va_math.json +wreal vvp_tests/wreal.json diff --git a/ivtest/vvp_reg.pl b/ivtest/vvp_reg.pl index 76233312b..8585261b5 100755 --- a/ivtest/vvp_reg.pl +++ b/ivtest/vvp_reg.pl @@ -54,7 +54,6 @@ if ($#ARGV != -1) { &read_regression_list("regress-v$ver.list", $ver, $force_sv, ""); &read_regression_list("regress-ivl1.list", $ver, $force_sv, ""); &read_regression_list("regress-vlg.list", $ver, $force_sv, ""); - &read_regression_list("regress-vams.list", $ver, $force_sv, ""); if ($ver >= 10) { &read_regression_list("regress-sv.list", $ver, $force_sv, ""); &read_regression_list("regress-vhdl.list", $ver, $force_sv, ""); diff --git a/ivtest/vvp_tests/br_gh99c-vlog95.json b/ivtest/vvp_tests/br_gh99c-vlog95.json new file mode 100644 index 000000000..dc96a4a4e --- /dev/null +++ b/ivtest/vvp_tests/br_gh99c-vlog95.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal-vlog95", + "source" : "br_gh99c.v", + "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] +} diff --git a/ivtest/vvp_tests/br_gh99c.json b/ivtest/vvp_tests/br_gh99c.json new file mode 100644 index 000000000..060960c72 --- /dev/null +++ b/ivtest/vvp_tests/br_gh99c.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "br_gh99c.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/cast_int_ams-vlog95.json b/ivtest/vvp_tests/cast_int_ams-vlog95.json new file mode 100644 index 000000000..3502cc2d1 --- /dev/null +++ b/ivtest/vvp_tests/cast_int_ams-vlog95.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal-vlog95", + "source" : "cast_int_ams.v", + "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] +} diff --git a/ivtest/vvp_tests/cast_int_ams.json b/ivtest/vvp_tests/cast_int_ams.json new file mode 100644 index 000000000..872d81225 --- /dev/null +++ b/ivtest/vvp_tests/cast_int_ams.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "cast_int_ams.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/constfunc4_ams-vlog95.json b/ivtest/vvp_tests/constfunc4_ams-vlog95.json new file mode 100644 index 000000000..05ba98c09 --- /dev/null +++ b/ivtest/vvp_tests/constfunc4_ams-vlog95.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal-vlog95", + "source" : "constfunc4_ams.v", + "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] +} diff --git a/ivtest/vvp_tests/constfunc4_ams.json b/ivtest/vvp_tests/constfunc4_ams.json new file mode 100644 index 000000000..d4ccaf755 --- /dev/null +++ b/ivtest/vvp_tests/constfunc4_ams.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "constfunc4_ams.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/constfunc6_ams-vlog95.json b/ivtest/vvp_tests/constfunc6_ams-vlog95.json new file mode 100644 index 000000000..3e4219379 --- /dev/null +++ b/ivtest/vvp_tests/constfunc6_ams-vlog95.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal-vlog95", + "source" : "constfunc6_ams.v", + "iverilog-args" : [ "-pallowsigned=1" ] +} diff --git a/ivtest/vvp_tests/constfunc6_ams.json b/ivtest/vvp_tests/constfunc6_ams.json new file mode 100644 index 000000000..7254d7ed8 --- /dev/null +++ b/ivtest/vvp_tests/constfunc6_ams.json @@ -0,0 +1,5 @@ + +{ + "type" : "normal", + "source" : "constfunc6_ams.v" +} diff --git a/ivtest/vvp_tests/non-polymorphic-abs.json b/ivtest/vvp_tests/non-polymorphic-abs.json new file mode 100644 index 000000000..fc9fa8a17 --- /dev/null +++ b/ivtest/vvp_tests/non-polymorphic-abs.json @@ -0,0 +1,5 @@ + +{ + "type" : "normal", + "source" : "non-polymorphic-abs.v" +} diff --git a/ivtest/vvp_tests/pr3270320_ams.json b/ivtest/vvp_tests/pr3270320_ams.json new file mode 100644 index 000000000..b87507064 --- /dev/null +++ b/ivtest/vvp_tests/pr3270320_ams.json @@ -0,0 +1,5 @@ + +{ + "type" : "CE", + "source" : "pr3270320_ams.v" +} diff --git a/ivtest/vvp_tests/scaled_real.json b/ivtest/vvp_tests/scaled_real.json new file mode 100644 index 000000000..8aafbae5e --- /dev/null +++ b/ivtest/vvp_tests/scaled_real.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "scaled_real.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/test_va_math.json b/ivtest/vvp_tests/test_va_math.json new file mode 100644 index 000000000..e5d9e309e --- /dev/null +++ b/ivtest/vvp_tests/test_va_math.json @@ -0,0 +1,7 @@ + +{ + "type" : "normal", + "source" : "test_va_math.v", + "iverilog-args" : [ "-mva_math" ], + "gold" : "test_va_math" +} diff --git a/ivtest/vvp_tests/test_vams_math.json b/ivtest/vvp_tests/test_vams_math.json new file mode 100644 index 000000000..6d54386fd --- /dev/null +++ b/ivtest/vvp_tests/test_vams_math.json @@ -0,0 +1,7 @@ + +{ + "type" : "normal", + "source" : "test_vams_math.v", + "iverilog-args" : [ "-gverilog-ams" ], + "gold" : "test_vams_math" +} diff --git a/ivtest/vvp_tests/va_math.json b/ivtest/vvp_tests/va_math.json new file mode 100644 index 000000000..4a386835d --- /dev/null +++ b/ivtest/vvp_tests/va_math.json @@ -0,0 +1,5 @@ + +{ + "type" : "normal", + "source" : "va_math.v" +} diff --git a/ivtest/vvp_tests/value_range1.json b/ivtest/vvp_tests/value_range1.json new file mode 100644 index 000000000..342e9eec1 --- /dev/null +++ b/ivtest/vvp_tests/value_range1.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "value_range1.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/value_range2.json b/ivtest/vvp_tests/value_range2.json new file mode 100644 index 000000000..884d13fd7 --- /dev/null +++ b/ivtest/vvp_tests/value_range2.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "value_range2.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/value_range3.json b/ivtest/vvp_tests/value_range3.json new file mode 100644 index 000000000..4225b9d54 --- /dev/null +++ b/ivtest/vvp_tests/value_range3.json @@ -0,0 +1,6 @@ + +{ + "type" : "CE", + "source" : "value_range3.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/vams_abs1-vlog95.json b/ivtest/vvp_tests/vams_abs1-vlog95.json new file mode 100644 index 000000000..671b1ebb0 --- /dev/null +++ b/ivtest/vvp_tests/vams_abs1-vlog95.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal-vlog95", + "source" : "vams_abs1.v", + "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] +} diff --git a/ivtest/vvp_tests/vams_abs1.json b/ivtest/vvp_tests/vams_abs1.json new file mode 100644 index 000000000..de10797fa --- /dev/null +++ b/ivtest/vvp_tests/vams_abs1.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "vams_abs1.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/vams_abs2-vlog95.json b/ivtest/vvp_tests/vams_abs2-vlog95.json new file mode 100644 index 000000000..a8f9f87b6 --- /dev/null +++ b/ivtest/vvp_tests/vams_abs2-vlog95.json @@ -0,0 +1,7 @@ + +{ + "__comment" : "The initial compiler works, but generates bad vlog95 code.", + "type" : "NI", + "source" : "vams_abs2.v", + "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] +} diff --git a/ivtest/vvp_tests/vams_abs2.json b/ivtest/vvp_tests/vams_abs2.json new file mode 100644 index 000000000..78274a51a --- /dev/null +++ b/ivtest/vvp_tests/vams_abs2.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "vams_abs2.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/vams_abs3-vlog95.json b/ivtest/vvp_tests/vams_abs3-vlog95.json new file mode 100644 index 000000000..78b571115 --- /dev/null +++ b/ivtest/vvp_tests/vams_abs3-vlog95.json @@ -0,0 +1,7 @@ + +{ + "__comment" : "The initial compiler works, but generates bad vlog95 code.", + "type" : "NI", + "source" : "vams_abs3.v", + "iverilog-args" : [ "-gverilog-ams", "-pallowsigned=1" ] +} diff --git a/ivtest/vvp_tests/vams_abs3.json b/ivtest/vvp_tests/vams_abs3.json new file mode 100644 index 000000000..c5110a338 --- /dev/null +++ b/ivtest/vvp_tests/vams_abs3.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "vams_abs3.v", + "iverilog-args" : [ "-gverilog-ams" ] +} diff --git a/ivtest/vvp_tests/wreal.json b/ivtest/vvp_tests/wreal.json new file mode 100644 index 000000000..b1654c111 --- /dev/null +++ b/ivtest/vvp_tests/wreal.json @@ -0,0 +1,6 @@ + +{ + "type" : "normal", + "source" : "wreal.v", + "iverilog-args" : [ "-gverilog-ams" ] +}