constants.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import { factory } from './utils/factory.js';
  2. import { version } from './version.js';
  3. import { createBigNumberE, createBigNumberPhi, createBigNumberPi, createBigNumberTau } from './utils/bignumber/constants.js';
  4. import { pi, tau, e, phi } from './plain/number/index.js';
  5. export var createTrue = /* #__PURE__ */factory('true', [], () => true);
  6. export var createFalse = /* #__PURE__ */factory('false', [], () => false);
  7. export var createNull = /* #__PURE__ */factory('null', [], () => null);
  8. export var createInfinity = /* #__PURE__ */recreateFactory('Infinity', ['config', '?BigNumber'], _ref => {
  9. var {
  10. config,
  11. BigNumber
  12. } = _ref;
  13. return config.number === 'BigNumber' ? new BigNumber(Infinity) : Infinity;
  14. });
  15. export var createNaN = /* #__PURE__ */recreateFactory('NaN', ['config', '?BigNumber'], _ref2 => {
  16. var {
  17. config,
  18. BigNumber
  19. } = _ref2;
  20. return config.number === 'BigNumber' ? new BigNumber(NaN) : NaN;
  21. });
  22. export var createPi = /* #__PURE__ */recreateFactory('pi', ['config', '?BigNumber'], _ref3 => {
  23. var {
  24. config,
  25. BigNumber
  26. } = _ref3;
  27. return config.number === 'BigNumber' ? createBigNumberPi(BigNumber) : pi;
  28. });
  29. export var createTau = /* #__PURE__ */recreateFactory('tau', ['config', '?BigNumber'], _ref4 => {
  30. var {
  31. config,
  32. BigNumber
  33. } = _ref4;
  34. return config.number === 'BigNumber' ? createBigNumberTau(BigNumber) : tau;
  35. });
  36. export var createE = /* #__PURE__ */recreateFactory('e', ['config', '?BigNumber'], _ref5 => {
  37. var {
  38. config,
  39. BigNumber
  40. } = _ref5;
  41. return config.number === 'BigNumber' ? createBigNumberE(BigNumber) : e;
  42. });
  43. // golden ratio, (1+sqrt(5))/2
  44. export var createPhi = /* #__PURE__ */recreateFactory('phi', ['config', '?BigNumber'], _ref6 => {
  45. var {
  46. config,
  47. BigNumber
  48. } = _ref6;
  49. return config.number === 'BigNumber' ? createBigNumberPhi(BigNumber) : phi;
  50. });
  51. export var createLN2 = /* #__PURE__ */recreateFactory('LN2', ['config', '?BigNumber'], _ref7 => {
  52. var {
  53. config,
  54. BigNumber
  55. } = _ref7;
  56. return config.number === 'BigNumber' ? new BigNumber(2).ln() : Math.LN2;
  57. });
  58. export var createLN10 = /* #__PURE__ */recreateFactory('LN10', ['config', '?BigNumber'], _ref8 => {
  59. var {
  60. config,
  61. BigNumber
  62. } = _ref8;
  63. return config.number === 'BigNumber' ? new BigNumber(10).ln() : Math.LN10;
  64. });
  65. export var createLOG2E = /* #__PURE__ */recreateFactory('LOG2E', ['config', '?BigNumber'], _ref9 => {
  66. var {
  67. config,
  68. BigNumber
  69. } = _ref9;
  70. return config.number === 'BigNumber' ? new BigNumber(1).div(new BigNumber(2).ln()) : Math.LOG2E;
  71. });
  72. export var createLOG10E = /* #__PURE__ */recreateFactory('LOG10E', ['config', '?BigNumber'], _ref10 => {
  73. var {
  74. config,
  75. BigNumber
  76. } = _ref10;
  77. return config.number === 'BigNumber' ? new BigNumber(1).div(new BigNumber(10).ln()) : Math.LOG10E;
  78. });
  79. export var createSQRT1_2 = /* #__PURE__ */recreateFactory(
  80. // eslint-disable-line camelcase
  81. 'SQRT1_2', ['config', '?BigNumber'], _ref11 => {
  82. var {
  83. config,
  84. BigNumber
  85. } = _ref11;
  86. return config.number === 'BigNumber' ? new BigNumber('0.5').sqrt() : Math.SQRT1_2;
  87. });
  88. export var createSQRT2 = /* #__PURE__ */recreateFactory('SQRT2', ['config', '?BigNumber'], _ref12 => {
  89. var {
  90. config,
  91. BigNumber
  92. } = _ref12;
  93. return config.number === 'BigNumber' ? new BigNumber(2).sqrt() : Math.SQRT2;
  94. });
  95. export var createI = /* #__PURE__ */recreateFactory('i', ['Complex'], _ref13 => {
  96. var {
  97. Complex
  98. } = _ref13;
  99. return Complex.I;
  100. });
  101. // for backward compatibility with v5
  102. export var createUppercasePi = /* #__PURE__ */factory('PI', ['pi'], _ref14 => {
  103. var {
  104. pi
  105. } = _ref14;
  106. return pi;
  107. });
  108. export var createUppercaseE = /* #__PURE__ */factory('E', ['e'], _ref15 => {
  109. var {
  110. e
  111. } = _ref15;
  112. return e;
  113. });
  114. export var createVersion = /* #__PURE__ */factory('version', [], () => version);
  115. // helper function to create a factory with a flag recreateOnConfigChange
  116. // idea: allow passing optional properties to be attached to the factory function as 4th argument?
  117. function recreateFactory(name, dependencies, create) {
  118. return factory(name, dependencies, create, {
  119. recreateOnConfigChange: true
  120. });
  121. }