/** * taylor-serie-exp.js * */ import {terminal} from "./dfhi.js"; window.main = function(...argv) { //const x = Number.parseFloat(argv[0]); //const x_rad = x * Math.PI / 180; const alpha = [0, 30, 45, 60, 90]; alpha.map(x => x*Math.PI/180).forEach( a => { makeTest("Sinus", a, sin, Math.sin); makeTest("Cosinus", a, cos, Math.cos); }); }; function makeTest(testName, value, impl, ref) { const result = impl(value); const expected = ref(value); terminal.print(`${testName} result: ${result} expected : ${expected}\n`); } function sin(x) { let sum = x; let term = -(x**3 / 6); const xsqr = x*x; let g = 1; for(let i = 4; sum + term !== sum; i+=2) { sum = sum + term; g = i*i + i; term = - term * (xsqr/g); } return sum; } function cos(x) { let sum = 1; const xsqr = x*x; let g = 2; let term = -1 * (xsqr / g); for(let i = 3; sum + term !== sum; i+=2) { sum = sum + term; g = i*i + i; term = -1 * term * (xsqr/g); } return sum; }