simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

constants.js (4165B)


      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 }); // golden ratio, (1+sqrt(5))/2
     43 
     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( // eslint-disable-line camelcase
     80 'SQRT1_2', ['config', '?BigNumber'], _ref11 => {
     81   var {
     82     config,
     83     BigNumber
     84   } = _ref11;
     85   return config.number === 'BigNumber' ? new BigNumber('0.5').sqrt() : Math.SQRT1_2;
     86 });
     87 export var createSQRT2 = /* #__PURE__ */recreateFactory('SQRT2', ['config', '?BigNumber'], _ref12 => {
     88   var {
     89     config,
     90     BigNumber
     91   } = _ref12;
     92   return config.number === 'BigNumber' ? new BigNumber(2).sqrt() : Math.SQRT2;
     93 });
     94 export var createI = /* #__PURE__ */recreateFactory('i', ['Complex'], _ref13 => {
     95   var {
     96     Complex
     97   } = _ref13;
     98   return Complex.I;
     99 }); // for backward compatibility with v5
    100 
    101 export var createUppercasePi = /* #__PURE__ */factory('PI', ['pi'], _ref14 => {
    102   var {
    103     pi
    104   } = _ref14;
    105   return pi;
    106 });
    107 export var createUppercaseE = /* #__PURE__ */factory('E', ['e'], _ref15 => {
    108   var {
    109     e
    110   } = _ref15;
    111   return e;
    112 });
    113 export var createVersion = /* #__PURE__ */factory('version', [], () => version); // helper function to create a factory with a flag recreateOnConfigChange
    114 // idea: allow passing optional properties to be attached to the factory function as 4th argument?
    115 
    116 function recreateFactory(name, dependencies, create) {
    117   return factory(name, dependencies, create, {
    118     recreateOnConfigChange: true
    119   });
    120 }