simple-squiggle

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

constants.js (1874B)


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