UNPKG

1.81 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.createBigNumberTau = exports.createBigNumberPi = exports.createBigNumberPhi = exports.createBigNumberE = void 0;
7
8var _function = require("../function");
9
10/**
11 * Calculate BigNumber e
12 * @param {function} BigNumber BigNumber constructor
13 * @returns {BigNumber} Returns e
14 */
15var createBigNumberE = (0, _function.memoize)(function (BigNumber) {
16 return new BigNumber(1).exp();
17}, hasher);
18/**
19 * Calculate BigNumber golden ratio, phi = (1+sqrt(5))/2
20 * @param {function} BigNumber BigNumber constructor
21 * @returns {BigNumber} Returns phi
22 */
23
24exports.createBigNumberE = createBigNumberE;
25var createBigNumberPhi = (0, _function.memoize)(function (BigNumber) {
26 return new BigNumber(1).plus(new BigNumber(5).sqrt()).div(2);
27}, hasher);
28/**
29 * Calculate BigNumber pi.
30 * @param {function} BigNumber BigNumber constructor
31 * @returns {BigNumber} Returns pi
32 */
33
34exports.createBigNumberPhi = createBigNumberPhi;
35var createBigNumberPi = (0, _function.memoize)(function (BigNumber) {
36 return BigNumber.acos(-1);
37}, hasher);
38/**
39 * Calculate BigNumber tau, tau = 2 * pi
40 * @param {function} BigNumber BigNumber constructor
41 * @returns {BigNumber} Returns tau
42 */
43
44exports.createBigNumberPi = createBigNumberPi;
45var createBigNumberTau = (0, _function.memoize)(function (BigNumber) {
46 return createBigNumberPi(BigNumber).times(2);
47}, hasher);
48/**
49 * Create a hash for a BigNumber constructor function. The created has is
50 * the configured precision
51 * @param {Array} args Supposed to contain a single entry with
52 * a BigNumber constructor
53 * @return {number} precision
54 * @private
55 */
56
57exports.createBigNumberTau = createBigNumberTau;
58
59function hasher(args) {
60 return args[0].precision;
61}
\No newline at end of file