forked from Ynng/Starter-Hacks-2020
-
Notifications
You must be signed in to change notification settings - Fork 0
/
algebra.js
54 lines (46 loc) · 1.51 KB
/
algebra.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//PROVIDE INPUT TO THIS FILE
function gcd(a, b) {
return (b) ? gcd(b, a % b) : a;
}
function convert(_decimal) {
//console.log(_decimal);
if (_decimal == parseInt(_decimal)) {
return _decimal;
} else {
var top = _decimal.toString().includes(".") ? _decimal.toString().replace(/\d+[.]/, '') : 0;
var bottom = Math.pow(10, top.toString().replace('-', '').length);
if (_decimal >= 1) {
top = +top + (Math.floor(_decimal) * bottom);
} else if (_decimal <= -1) {
top = +top + (Math.ceil(_decimal) * bottom);
}
var x = Math.abs(gcd(top, bottom));
return top + "/" + bottom;
}
};
var input;
var key;
var Algebrite = require('algebrite');
function solve(functionName, varMap) {
var splitString = functionName.split(" ");
var substitutedStr = "";
for (var i = 0; i < splitString.length; i++) {
if (varMap.has(splitString[i])) {
//console.log(knowns.get(splitString[i]));
splitString[i] = convert(varMap.get(splitString[i]));
}
substitutedStr += splitString[i];
//console.log(substitutedStr);
}
//THIS IS WHERE YOU OUTPUT THJE SOLUTION TO THE UI
var sol = Algebrite.nroots(substitutedStr);
//console.log(sol);
if (sol.tensor == null) {
console.log(sol.d);
} else {
for (var i = 0; i < sol.tensor.elem.length; i++) {
//for when x has more than 1 answer
console.log(sol.tensor.elem[i].d);
}
}
}