#! /usr/bin/perl -w # Checks all mathematical functions implemented in ff3d require 'check.ph'; $pi = 3.1415926; Run(<< 'EOF'); // abs cout << "abs(1.234e-5) = " << abs(1.234e-5) << "\n"; cout << "abs(0.0) = " << abs(0.0) << "\n"; cout << "abs(-1.234e-5) = " << abs(-1.234e-5) << "\n"; // exp cout << "exp(0.0) = " << exp(0.0) << "\n"; cout << "exp(1.0) = " << exp(1.0) << "\n"; cout << "exp(-1.234e-5) = " << exp(-1.234e-5) << "\n"; // sin double pi = 3.1415926; cout << "pi = " << pi << "\n"; cout << "sin(-pi/2) = " << sin(-pi/2) << "\n"; cout << "sin(0.0) = " << sin(0.0) << "\n"; cout << "sin(pi/6) = " << sin(pi/6) << "\n"; cout << "sin(pi/2) = " << sin(pi/2) << "\n"; cout << "sin(5*pi/6) = " << sin(5*pi/6) << "\n"; cout << "sin(pi) = " << sin(pi) << "\n"; cout << "sin(2*pi) = " << sin(2*pi) << "\n"; // cos cout << "cos(-pi) = " << cos(-pi) << "\n"; cout << "cos(-pi/2) = " << cos(-pi/2) << "\n"; cout << "cos(0.0) = " << cos(0.0) << "\n"; cout << "cos(pi/3) = " << cos(pi/3) << "\n"; cout << "cos(pi/2) = " << cos(pi/2) << "\n"; cout << "cos(2*pi/3) = " << cos(2*pi/3) << "\n"; cout << "cos(pi) = " << cos(pi) << "\n"; cout << "cos(2*pi) = " << cos(2*pi) << "\n"; // tan cout << "tan(-pi/4) = " << tan(-pi/4) << "\n"; cout << "tan(0.0) = " << tan(0.0) << "\n"; cout << "tan(pi/4) = " << tan(pi/4) << "\n"; // asin cout << "asin(-0.5) + pi/6 = " << asin(-0.5) + pi/6 << "\n"; cout << "asin(0) = " << asin(0) << "\n"; cout << "asin(0.5) - pi/6 = " << asin(0.5) - pi/6 << "\n"; cout << "asin(1) - pi/2 = " << asin(1) - pi/2 << "\n"; // acos cout << "acos(-0.5) = " << acos(-0.5) << "\n"; cout << "acos(0) = " << acos(0) << "\n"; cout << "acos(0.5) = " << acos(0.5) << "\n"; cout << "acos(1) = " << acos(1) << "\n"; // atan cout << "atan(-1) = " << atan(-1) << "\n"; cout << "atan(0) = " << atan(0) << "\n"; cout << "atan(1) = " << atan(1) << "\n"; // a^b cout << "0^0 = " << 0^0 << "\n"; cout << "0^1 = " << 0^1 << "\n"; cout << "2^-1 = " << 2^-1 << "\n"; cout << "2^0 = " << 2^0 << "\n"; // Composed functions cout << "sin(1.23)^2 + cos(1.23)^2 = " << sin(1.23)^2 + cos(1.23)^2 << "\n"; EOF # abs NumCheck('abs\(1\.234e-5\) = ',1.234e-5); NumCheck('abs\(0\.0\) = ',0); NumCheck('abs\(-1\.234e-5\) = ',1.234e-5); # exp NumCheck('exp\(0\.0\) = ',1); NumCheck('exp\(1\.0\) = ',2.71828,1e-5); NumCheck('exp\(-1\.234e-5\) = ',1,1e-3); # sin NumCheck('sin\(-pi\/2\) = ',-1); NumCheck('sin\(0\.0\) = ',0); NumCheck('sin\(pi\/6\) = ',0.5); NumCheck('sin\(pi\/2\) = ',1); NumCheck('sin\(5\*pi\/6\) = ',0.5); NumCheck('sin\(pi\) = ',0,1e-6); NumCheck('sin\(2\*pi\) = ',0,1e-6); # cos NumCheck('cos\(-pi\) = ',-1); NumCheck('cos\(-pi\/2\) = ',0,1e-6); NumCheck('cos\(0\.0\) = ',1); NumCheck('cos\(pi\/3\) = ',0.5); NumCheck('cos\(pi\/2\) = ',0,1e-6); NumCheck('cos\(2\*pi\/3\) = ',-0.5); NumCheck('cos\(pi\) = ',-1); NumCheck('cos\(2\*pi\) = ',1); # tan NumCheck('tan\(-pi\/4\) = ',-1); NumCheck('tan\(0\.0\) = ',0); NumCheck('tan\(pi\/4\) = ',1); # asin NumCheck('asin\(-0\.5\) \+ pi\/6 = ',0,1e-6); NumCheck('asin\(0\) = ',0); NumCheck('asin\(0\.5\) - pi\/6 = ',0,1e-6); NumCheck('asin\(1\) - pi\/2 = ',0,1e-6); # acos NumCheck('acos\(-0\.5\) = ',2*$pi/3,1e-4); NumCheck('acos\(0\) = ',$pi/2,1e-4); NumCheck('acos\(0\.5\) = ',$pi/3,1e-4); NumCheck('acos\(1\) = ',0); # atan NumCheck('atan\(-1\) = ',-$pi/4,1e-6); NumCheck('atan\(0\) = ',0); NumCheck('atan\(1\) = ',$pi/4,1e-6); # a^b NumCheck('0\^0 = ',1); NumCheck('0\^1 = ',0); NumCheck('2\^-1 = ',0.5); NumCheck('2\^0 = ',1); # Composed functions NumCheck('sin\(1\.23\)\^2 \+ cos\(1\.23\)\^2 = ',1); Report();