123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import { memoize } from '../function.js';
- /**
- * Calculate BigNumber e
- * @param {function} BigNumber BigNumber constructor
- * @returns {BigNumber} Returns e
- */
- export var createBigNumberE = memoize(function (BigNumber) {
- return new BigNumber(1).exp();
- }, {
- hasher
- });
- /**
- * Calculate BigNumber golden ratio, phi = (1+sqrt(5))/2
- * @param {function} BigNumber BigNumber constructor
- * @returns {BigNumber} Returns phi
- */
- export var createBigNumberPhi = memoize(function (BigNumber) {
- return new BigNumber(1).plus(new BigNumber(5).sqrt()).div(2);
- }, {
- hasher
- });
- /**
- * Calculate BigNumber pi.
- * @param {function} BigNumber BigNumber constructor
- * @returns {BigNumber} Returns pi
- */
- export var createBigNumberPi = memoize(function (BigNumber) {
- return BigNumber.acos(-1);
- }, {
- hasher
- });
- /**
- * Calculate BigNumber tau, tau = 2 * pi
- * @param {function} BigNumber BigNumber constructor
- * @returns {BigNumber} Returns tau
- */
- export var createBigNumberTau = memoize(function (BigNumber) {
- return createBigNumberPi(BigNumber).times(2);
- }, {
- hasher
- });
- /**
- * Create a hash for a BigNumber constructor function. The created has is
- * the configured precision
- * @param {Array} args Supposed to contain a single entry with
- * a BigNumber constructor
- * @return {number} precision
- * @private
- */
- function hasher(args) {
- return args[0].precision;
- }
|