UNPKG

quintex

Version:

On your command line, run the following commands: ```bash npm install quintex ``` Write the following code in your Node.JS server JavaScript file: ```js const $ = require("quintex"); ```

557 lines (531 loc) 11 kB
//Quintex Normal Functions function add(nums=[]) { let sum = 0; nums.forEach((num) => { sum += num; }); return sum; } function sub(num1,num2) { let diff = num1 - num2; return diff; } function mult(num1=1,num2=1,nums=[]) { let prod = num1*num2; nums.forEach((num) => { prod*=num; }); return prod; } function div(num1,num2) { return num1/num2; } function pow(num1,num2) { return Math.pow(num1, num2); } function tpow(x) { return pow(10,x); } function percOf(x, of) { return (x/100)*of; } function sq(x) { return x*x; } function cb(x) { return x*x*x; } function rcp(x) { return 1/x; } function eX(x) { return pow(e, x); } function sqrt(x) { return pow(x, 1/2) } function cbrt(x) { return pow(x,1/3); } function log(base, x) { return (Math.log(x) / Math.log(base)); } function log10(x) { return log(10, x); } function log2(x) { return log(2, x); } function ln(x) { return Math.log(x); } function randInt(min, max) { return Math.floor((Math.random()) * (max + 1 - min)) + min; } function odd(x) { return x%2===1; } function even(x) { return x%2===0; } function oddOrEven(x) { return (x%2==0)?"Even":"Odd"; } function subify(x) { let stringX = String(x); let subbed = ""; for (var i = 0; i < stringX.length; i++) { let num = stringX[i]; let ac = ""; switch (num) { case "1": ac = "₁"; break; case "2": ac = "₂"; break; case "3": ac = "₃"; break; case "4": ac = "₄"; break; case "5": ac = "₅"; break; case "6": ac = "₆"; break; case "7": ac = "₇"; break; case "8": ac = "₈"; break; case "9": ac = "₉"; break; case "0": ac = "₀"; break; } subbed += ac; }; return subbed; } function supify(x) { let stringX = String(x); let supped = ""; for (var i = 0; i < stringX.length; i++) { let num = stringX[i]; let ac = ""; switch (num) { case "1": ac = "¹"; break; case "2": ac = "²"; break; case "3": ac = "³"; break; case "4": ac = "⁴"; break; case "5": ac = "⁵"; break; case "6": ac = "⁶"; break; case "7": ac = "⁷"; break; case "8": ac = "⁸"; break; case "9": ac = "⁹"; break; case "0": ac = "⁰"; break; } supped += ac; } return supped; } //Quintex Constants const pi=3.141592653589793238462; const e=2.718281828459045235360287471352662497757247; const tau=2*pi; const phi=1.61803398874989484820; function Polynomial(x) { this.degree = x.degree; this.coef = x.coef; } //Quintex Sections const trig = { sin: (x) => { const rad = x * (pi/180); return Math.sin(rad); }, cos: (x) => { const rad = x * (pi/180); return Math.cos(rad); }, tan: (x) => { const rad = x * (pi/180); return Math.tan(rad); }, sec: (x) => { const rad = x * (pi/180); return 1/Math.cos(rad); }, csc: (x) => { const rad = x * (pi/180); return 1/Math.sin(rad); }, cot: (x) => { const rad = x * (pi/180); return 1/Math.tan(rad); }, sinh: (x) => { const rad = x * (pi/180); return Math.sinh(rad); }, cosh: (x) => { const rad = x * (pi/180); return Math.cosh(rad); }, tanh: (x) => { const rad = x * (pi/180); return Math.tanh(rad); }, sech: (x) => { const rad = x * (pi/180); return 1/Math.cosh(rad); }, csch: (x) => { const rad = x * (pi/180); return 1/Math.sinh(rad); }, coth: (x) => { const rad = x * (pi/180); return 1/Math.tanh(rad); }, asin: (x) => { const rad = x * (pi/180); return Math.asin(rad); }, acos: (x) => { const rad = x * (pi/180); return Math.acos(rad); }, atan: (x) => { const rad = x * (pi/180); return Math.atan(rad); }, asec: (x) => { const rad = x * (pi/180); return 1/Math.acos(rad); }, acsc: (x) => { const rad = x * (pi/180); return 1/Math.asin(rad); }, acot: (x) => { const rad = x * (pi/180); return 1/Math.atan(rad); }, asinh: (x) => { const rad = x * (pi/180); return Math.asinh(rad); }, acosh: (x) => { const rad = x * (pi/180); return Math.acosh(rad); }, atanh: (x) => { const rad = x * (pi/180); return Math.atanh(rad); }, asech: (x) => { const rad = x * (pi/180); return 1/Math.acosh(rad); }, acsch: (x) => { const rad = x * (pi/180); return 1/Math.asinh(rad); }, acoth: (x) => { const rad = x * (pi/180); return 1/Math.atanh(rad); } } const area = { } const per = { } const vol = { } const stats = { mean: (list) => { let sum = 0; list.forEach((num) => { sum += num; }); const mode = sum / list.length; return mode; }, median: (list) => { if (oddOrEven(list.length)=="Odd"){ return list[((list.length + 1) / 2) - 1]; } else { return stats.mean([list[list.length/2-1],list[list.length]]); } }, mode: (list) => { let repetition = []; list .forEach((number) => { // Step 1: Create 'repetition' array let isThere = false; repetition.forEach((entry) => { if (entry[0] === number) { entry[1]++; isThere = true; } }); if (isThere === false) { repetition.push([number, 1]); } }); // Step 2: Create 'highest' array let highest = [[0, 0]]; repetition.forEach((entry) => { if (entry[1] > highest[0][1]) { highest = []; highest.push(entry); } else if (entry[1] === highest[0][1]) { highest.push(entry); } }); // Step 3: Return result let allHighest = []; highest.forEach((entry) => { allHighest.push(entry[0]); }); return allHighest; }, stdev: (list) => { // Step 1: Find the mean. let mean = stats.mean(list); // Step 2: For each data point, find the square of its distance to the mean. let squares = []; list.forEach((num) => { squares.push(sq(num - mean)); }); // Step 3: Sum the values from Step 2. let sum = add(squares); // Step 4: Divide by the number of data points. let step4 = sum / list.length; // Step 5: Take the square root. let ans = sqrt(step4); // Step 6: Return the result. return ans; }, variance: (list) => { return sq(stats.stdev(list)); } } const conv = { afn: 59.07, all: 76.38, dzd: 99.26, aoa: 474.81, arp: 71, amd: 366.5, awg: 1.33, aud: 0.99, azn: 1.26, bsd: 0.74, bhd: 0.28, bbd: 1.49, bdt: 62.45, byn: 1.89, bzd: 1.48, bmd: 0.74, btn: 54.89, bitcoin: 0.000023, bitcoinCash: 0.0016, bob: 5.09, bam: 1.22, bwp: 8.16, brl: 3.75, bnd: 1, bgn: 1.22, bif: 1458.93, cfp: 74.86, khr: 2998.35, cad: 0.93, cve: 68.84, kyd: 0.61, xaf: 409.76, clp: 550.81, clf: 0.019, cny: 4.78, cop: 2804.57, kmf: 307.81, cdf: 1478.42, money: (from, to, howMuch) => { } } const poly = { getPoly: (poly) => { let polynomial = ""; let deg = poly.degree; if ((deg + 1) != poly.coef.length) { console.error("$.math.poly.getPoly() ERROR: Degree must match coefficient array length"); } else { poly.coef.forEach((coefficient) => { if (coefficient === 0) { if ((deg) != poly.degree) { polynomial += "+"; } } else if (coefficient === 1) { if (deg === 1) { polynomial += (coefficient + "x" + "+"); } else if (deg === 0) { polynomial += (coefficient + "+"); } else { polynomial += ("x" + sup(deg) + "+"); } } else { if (deg === 1) { polynomial += (coefficient + "x" + "+"); } else if (deg === 0) { polynomial += (coefficient + "+"); } else { polynomial += (coefficient + "x" + sup(deg) + "+"); } } deg--; }); } // Format polynomial let arrayPoly = polynomial.split(""); arrayPoly.pop(); let rPOLY = ""; arrayPoly.forEach((char) => { rPOLY += char; }); return rPOLY; }, addPoly: (poly1, poly2) => { let a1POLY = poly1.coef.reverse(); let a2POLY = poly2.coef.reverse(); let resultPOLY = []; if (a1POLY.length >= a2POLY.length) { a1POLY.forEach((x) => { if (a1POLY.indexOf(x) in a2POLY) { resultPOLY.push(x + a2POLY[a1POLY.indexOf(x)]); } else { resultPOLY.push(x); } }); } else { a2POLY.forEach((y) => { if (a2POLY.indexOf(y) in a1POLY) { resultPOLY.push(y + a1POLY[a2POLY.indexOf(y)]); } else { resultPOLY.push(y); } }); } let rCoef = resultPOLY.reverse(); let rDeg = (resultPOLY.length - 1); let result = new Polynomial({ degree: rDeg, coef: rCoef }); return result; }, subPoly: (poly1, poly2) => { let a1POLY = poly1.coef.reverse(); let a2POLY = poly2.coef.reverse().map(x => x * -1); let resultPOLY = []; if (a1POLY.length >= a2POLY.length) { a1POLY.forEach((x) => { if (a1POLY.indexOf(x) in a2POLY) { resultPOLY.push(x + a2POLY[a1POLY.indexOf(x)]); } else { resultPOLY.push(x); } }); } else { a2POLY.forEach((y) => { if (a2POLY.indexOf(y) in a1POLY) { resultPOLY.push(y + a1POLY[a2POLY.indexOf(y)]); } else { resultPOLY.push(y); } }); } let rCoef = resultPOLY.reverse(); let rDeg = (resultPOLY.length - 1); let result = new Polynomial({ degree: rDeg, coef: rCoef }); return result; } } var x = new Polynomial({ degree: 3, coef: [3, 4, 1, 5] }); var y = new Polynomial({ degree: 3, coef: [1, 2, 5, 2] }); var z = new Polynomial({ degree: 3, coef: [4, 5, 2, 6] }); //console.log(poly.subPoly(x, y)); // module.exports initializations: exports.add = add; exports.sub = sub; exports.mult = mult; exports.div = div; exports.pow = pow; exports.tpow = tpow; exports.percOf = percOf; exports.sq = sq; exports.cb = cb; exports.rcp = rcp; exports.eX = eX; exports.sqrt = sqrt; exports.cbrt = cbrt; exports.log = log; exports.log10 = log10; exports.log2 = log2; exports.ln = ln; exports.randInt = randInt; exports.odd = odd; exports.even = even; exports.oddOrEven = oddOrEven; exports.subify = subify; exports.supify = supify; exports.pi = pi; exports.e = e; exports.tau = tau; exports.phi = phi; exports.Polynomial = Polynomial; exports.trig = trig; exports.area = area; exports.per = per; exports.vol = vol; exports.st = stats; exports.conv = conv; exports.poly = poly;