constants.js 1.8 KB

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