constants.js (1416B)
1 import { memoize } from '../function.js'; 2 /** 3 * Calculate BigNumber e 4 * @param {function} BigNumber BigNumber constructor 5 * @returns {BigNumber} Returns e 6 */ 7 8 export var createBigNumberE = memoize(function (BigNumber) { 9 return new BigNumber(1).exp(); 10 }, { 11 hasher 12 }); 13 /** 14 * Calculate BigNumber golden ratio, phi = (1+sqrt(5))/2 15 * @param {function} BigNumber BigNumber constructor 16 * @returns {BigNumber} Returns phi 17 */ 18 19 export var createBigNumberPhi = memoize(function (BigNumber) { 20 return new BigNumber(1).plus(new BigNumber(5).sqrt()).div(2); 21 }, { 22 hasher 23 }); 24 /** 25 * Calculate BigNumber pi. 26 * @param {function} BigNumber BigNumber constructor 27 * @returns {BigNumber} Returns pi 28 */ 29 30 export var createBigNumberPi = memoize(function (BigNumber) { 31 return BigNumber.acos(-1); 32 }, { 33 hasher 34 }); 35 /** 36 * Calculate BigNumber tau, tau = 2 * pi 37 * @param {function} BigNumber BigNumber constructor 38 * @returns {BigNumber} Returns tau 39 */ 40 41 export var createBigNumberTau = memoize(function (BigNumber) { 42 return createBigNumberPi(BigNumber).times(2); 43 }, { 44 hasher 45 }); 46 /** 47 * Create a hash for a BigNumber constructor function. The created has is 48 * the configured precision 49 * @param {Array} args Supposed to contain a single entry with 50 * a BigNumber constructor 51 * @return {number} precision 52 * @private 53 */ 54 55 function hasher(args) { 56 return args[0].precision; 57 }