Download web/node_modules/fraction.js/examples/valueOfPi.js from Amitkumar001/Law_Slm: direct link, hf CLI and curl.
- Browser
- Download file 1.18 kB
-
https://huggingface.co/Amitkumar001/Law_Slm/resolve/main/web/node_modules/fraction.js/examples/valueOfPi.js
- Command line
-
hf download hf://Amitkumar001/Law_Slm/web/node_modules/fraction.js/examples/valueOfPi.js
-
curl -L -o valueOfPi.js https://huggingface.co/Amitkumar001/Law_Slm/resolve/main/web/node_modules/fraction.js/examples/valueOfPi.js
1.18 kB
| /* | |
| Fraction.js v5.0.0 10/1/2024 | |
| https://raw.org/article/rational-numbers-in-javascript/ | |
| Copyright (c) 2024, Robert Eisele (https://raw.org/) | |
| Licensed under the MIT license. | |
| */ | |
| var Fraction = require("fraction.js") | |
| function valueOfPi(val) { | |
| let minLen = Infinity, minI = 0, min = null; | |
| const choose = [val, val * Math.PI, val / Math.PI]; | |
| for (let i = 0; i < choose.length; i++) { | |
| let el = new Fraction(choose[i]).simplify(1e-13); | |
| let len = Math.log(Number(el.n) + 1) + Math.log(Number(el.d)); | |
| if (len < minLen) { | |
| minLen = len; | |
| minI = i; | |
| min = el; | |
| } | |
| } | |
| if (minI == 2) { | |
| return min.toFraction().replace(/(\d+)(\/\d+)?/, (_, p, q) => | |
| (p == "1" ? "" : p) + "π" + (q || "")); | |
| } | |
| if (minI == 1) { | |
| return min.toFraction().replace(/(\d+)(\/\d+)?/, (_, p, q) => | |
| p + (!q ? "/π" : "/(" + q.slice(1) + "π)")); | |
| } | |
| return min.toFraction(); | |
| } | |
| console.log(valueOfPi(-3)); // -3 | |
| console.log(valueOfPi(4 * Math.PI)); // 4π | |
| console.log(valueOfPi(3.14)); // 157/50 | |
| console.log(valueOfPi(3 / 2 * Math.PI)); // 3π/2 | |
| console.log(valueOfPi(Math.PI / 2)); // π/2 | |
| console.log(valueOfPi(-1 / (2 * Math.PI))); // -1/(2π) | |