simple-squiggle

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

factoriesNumber.js (16282B)


      1 import { absNumber, acoshNumber, acosNumber, acothNumber, acotNumber, acschNumber, acscNumber, addNumber, andNumber, asechNumber, asecNumber, asinhNumber, asinNumber, atan2Number, atanhNumber, atanNumber, bitAndNumber, bitNotNumber, bitOrNumber, bitXorNumber, cbrtNumber, ceilNumber, combinationsNumber, coshNumber, cosNumber, cothNumber, cotNumber, cschNumber, cscNumber, cubeNumber, divideNumber, expm1Number, expNumber, fixNumber, floorNumber, gammaNumber, gcdNumber, isIntegerNumber, isNaNNumber, isNegativeNumber, isPositiveNumber, isZeroNumber, lcmNumber, leftShiftNumber, log10Number, log1pNumber, log2Number, logNumber, modNumber, multiplyNumber, normNumber, notNumber, orNumber, powNumber, rightArithShiftNumber, rightLogShiftNumber, sechNumber, secNumber, signNumber, sinhNumber, sinNumber, sqrtNumber, squareNumber, subtractNumber, tanhNumber, tanNumber, unaryMinusNumber, unaryPlusNumber, xgcdNumber, xorNumber } from './plain/number/index.js';
      2 import { factory } from './utils/factory.js';
      3 import { noIndex, noMatrix, noSubset } from './utils/noop.js'; // ----------------------------------------------------------------------------
      4 // classes and functions
      5 // core
      6 
      7 export { createTyped } from './core/function/typed.js'; // classes
      8 
      9 export { createResultSet } from './type/resultset/ResultSet.js';
     10 export { createRangeClass } from './type/matrix/Range.js';
     11 export { createHelpClass } from './expression/Help.js';
     12 export { createChainClass } from './type/chain/Chain.js';
     13 export { createHelp } from './expression/function/help.js';
     14 export { createChain } from './type/chain/function/chain.js'; // algebra
     15 
     16 export { createResolve } from './function/algebra/resolve.js';
     17 export { createSimplify } from './function/algebra/simplify.js';
     18 export { createSimplifyCore } from './function/algebra/simplifyCore.js';
     19 export { createDerivative } from './function/algebra/derivative.js';
     20 export { createRationalize } from './function/algebra/rationalize.js'; // arithmetic
     21 
     22 export var createUnaryMinus = /* #__PURE__ */createNumberFactory('unaryMinus', unaryMinusNumber);
     23 export var createUnaryPlus = /* #__PURE__ */createNumberFactory('unaryPlus', unaryPlusNumber);
     24 export var createAbs = /* #__PURE__ */createNumberFactory('abs', absNumber);
     25 export var createAddScalar = /* #__PURE__ */createNumberFactory('addScalar', addNumber);
     26 export var createCbrt = /* #__PURE__ */createNumberFactory('cbrt', cbrtNumber);
     27 export var createCeil = /* #__PURE__ */createNumberFactory('ceil', ceilNumber);
     28 export var createCube = /* #__PURE__ */createNumberFactory('cube', cubeNumber);
     29 export var createExp = /* #__PURE__ */createNumberFactory('exp', expNumber);
     30 export var createExpm1 = /* #__PURE__ */createNumberFactory('expm1', expm1Number);
     31 export var createFix = /* #__PURE__ */createNumberFactory('fix', fixNumber);
     32 export var createFloor = /* #__PURE__ */createNumberFactory('floor', floorNumber);
     33 export var createGcd = /* #__PURE__ */createNumberFactory('gcd', gcdNumber);
     34 export var createLcm = /* #__PURE__ */createNumberFactory('lcm', lcmNumber);
     35 export var createLog10 = /* #__PURE__ */createNumberFactory('log10', log10Number);
     36 export var createLog2 = /* #__PURE__ */createNumberFactory('log2', log2Number);
     37 export var createMod = /* #__PURE__ */createNumberFactory('mod', modNumber);
     38 export var createMultiplyScalar = /* #__PURE__ */createNumberFactory('multiplyScalar', multiplyNumber);
     39 export var createMultiply = /* #__PURE__ */createNumberFactory('multiply', multiplyNumber);
     40 export { createNthRootNumber as createNthRoot } from './function/arithmetic/nthRoot.js';
     41 export var createSign = /* #__PURE__ */createNumberFactory('sign', signNumber);
     42 export var createSqrt = /* #__PURE__ */createNumberFactory('sqrt', sqrtNumber);
     43 export var createSquare = /* #__PURE__ */createNumberFactory('square', squareNumber);
     44 export var createSubtract = /* #__PURE__ */createNumberFactory('subtract', subtractNumber);
     45 export var createXgcd = /* #__PURE__ */createNumberFactory('xgcd', xgcdNumber);
     46 export var createDivideScalar = /* #__PURE__ */createNumberFactory('divideScalar', divideNumber);
     47 export var createPow = /* #__PURE__ */createNumberFactory('pow', powNumber);
     48 export { createRoundNumber as createRound } from './function/arithmetic/round.js';
     49 export var createLog = /* #__PURE__ */createNumberOptionalSecondArgFactory('log', logNumber);
     50 export var createLog1p = /* #__PURE__ */createNumberFactory('log1p', log1pNumber);
     51 export var createAdd = /* #__PURE__ */createNumberFactory('add', addNumber);
     52 export { createHypot } from './function/arithmetic/hypot.js';
     53 export var createNorm = /* #__PURE__ */createNumberFactory('norm', normNumber);
     54 export var createDivide = /* #__PURE__ */createNumberFactory('divide', divideNumber); // bitwise
     55 
     56 export var createBitAnd = /* #__PURE__ */createNumberFactory('bitAnd', bitAndNumber);
     57 export var createBitNot = /* #__PURE__ */createNumberFactory('bitNot', bitNotNumber);
     58 export var createBitOr = /* #__PURE__ */createNumberFactory('bitOr', bitOrNumber);
     59 export var createBitXor = /* #__PURE__ */createNumberFactory('bitXor', bitXorNumber);
     60 export var createLeftShift = /* #__PURE__ */createNumberFactory('leftShift', leftShiftNumber);
     61 export var createRightArithShift = /* #__PURE__ */createNumberFactory('rightArithShift', rightArithShiftNumber);
     62 export var createRightLogShift = /* #__PURE__ */createNumberFactory('rightLogShift', rightLogShiftNumber); // combinatorics
     63 
     64 export { createStirlingS2 } from './function/combinatorics/stirlingS2.js';
     65 export { createBellNumbers } from './function/combinatorics/bellNumbers.js';
     66 export { createCatalan } from './function/combinatorics/catalan.js';
     67 export { createComposition } from './function/combinatorics/composition.js'; // constants
     68 
     69 export { createE, createUppercaseE, createFalse, // createI,
     70 createInfinity, createLN10, createLN2, createLOG10E, createLOG2E, createNaN, createNull, createPhi, createPi, createUppercasePi, createSQRT1_2, // eslint-disable-line camelcase
     71 createSQRT2, createTau, createTrue, createVersion } from './constants.js'; // create
     72 
     73 export { createNumber } from './type/number.js';
     74 export { createString } from './type/string.js';
     75 export { createBoolean } from './type/boolean.js';
     76 export { createParser } from './expression/function/parser.js'; // expression
     77 
     78 export { createNode } from './expression/node/Node.js';
     79 export { createAccessorNode } from './expression/node/AccessorNode.js';
     80 export { createArrayNode } from './expression/node/ArrayNode.js';
     81 export { createAssignmentNode } from './expression/node/AssignmentNode.js';
     82 export { createBlockNode } from './expression/node/BlockNode.js';
     83 export { createConditionalNode } from './expression/node/ConditionalNode.js';
     84 export { createConstantNode } from './expression/node/ConstantNode.js';
     85 export { createFunctionAssignmentNode } from './expression/node/FunctionAssignmentNode.js';
     86 export { createIndexNode } from './expression/node/IndexNode.js';
     87 export { createObjectNode } from './expression/node/ObjectNode.js';
     88 export { createOperatorNode } from './expression/node/OperatorNode.js';
     89 export { createParenthesisNode } from './expression/node/ParenthesisNode.js';
     90 export { createRangeNode } from './expression/node/RangeNode.js';
     91 export { createRelationalNode } from './expression/node/RelationalNode.js';
     92 export { createSymbolNode } from './expression/node/SymbolNode.js';
     93 export { createFunctionNode } from './expression/node/FunctionNode.js';
     94 export { createParse } from './expression/parse.js';
     95 export { createCompile } from './expression/function/compile.js';
     96 export { createEvaluate } from './expression/function/evaluate.js';
     97 export { createParserClass } from './expression/Parser.js'; // logical
     98 
     99 export var createAnd = /* #__PURE__ */createNumberFactory('and', andNumber);
    100 export var createNot = /* #__PURE__ */createNumberFactory('not', notNumber);
    101 export var createOr = /* #__PURE__ */createNumberFactory('or', orNumber);
    102 export var createXor = /* #__PURE__ */createNumberFactory('xor', xorNumber); // matrix
    103 
    104 export { createApply } from './function/matrix/apply.js';
    105 export { createFilter } from './function/matrix/filter.js';
    106 export { createForEach } from './function/matrix/forEach.js';
    107 export { createMap } from './function/matrix/map.js';
    108 export { createRange } from './function/matrix/range.js';
    109 export { createSize } from './function/matrix/size.js'; // FIXME: create a lightweight "number" implementation of subset only supporting plain objects/arrays
    110 
    111 export var createIndex = /* #__PURE__ */factory('index', [], () => noIndex);
    112 export var createMatrix = /* #__PURE__ */factory('matrix', [], () => noMatrix); // FIXME: needed now because subset transform needs it. Remove the need for it in subset
    113 
    114 export var createSubset = /* #__PURE__ */factory('subset', [], () => noSubset); // TODO: provide number+array implementations for map, filter, forEach, zeros, ...?
    115 // TODO: create range implementation for range?
    116 
    117 export { createPartitionSelect } from './function/matrix/partitionSelect.js'; // probability
    118 
    119 export var createCombinations = createNumberFactory('combinations', combinationsNumber);
    120 export var createGamma = createNumberFactory('gamma', gammaNumber);
    121 export { createCombinationsWithRep } from './function/probability/combinationsWithRep.js';
    122 export { createFactorial } from './function/probability/factorial.js';
    123 export { createMultinomial } from './function/probability/multinomial.js';
    124 export { createPermutations } from './function/probability/permutations.js';
    125 export { createPickRandom } from './function/probability/pickRandom.js';
    126 export { createRandomNumber as createRandom } from './function/probability/random.js';
    127 export { createRandomInt } from './function/probability/randomInt.js'; // relational
    128 
    129 export { createEqualScalarNumber as createEqualScalar } from './function/relational/equalScalar.js';
    130 export { createCompareNumber as createCompare } from './function/relational/compare.js';
    131 export { createCompareNatural } from './function/relational/compareNatural.js';
    132 export { createCompareTextNumber as createCompareText } from './function/relational/compareText.js';
    133 export { createEqualNumber as createEqual } from './function/relational/equal.js';
    134 export { createEqualText } from './function/relational/equalText.js';
    135 export { createSmallerNumber as createSmaller } from './function/relational/smaller.js';
    136 export { createSmallerEqNumber as createSmallerEq } from './function/relational/smallerEq.js';
    137 export { createLargerNumber as createLarger } from './function/relational/larger.js';
    138 export { createLargerEqNumber as createLargerEq } from './function/relational/largerEq.js';
    139 export { createDeepEqual } from './function/relational/deepEqual.js';
    140 export { createUnequalNumber as createUnequal } from './function/relational/unequal.js'; // special
    141 
    142 export { createErf } from './function/special/erf.js'; // statistics
    143 
    144 export { createMode } from './function/statistics/mode.js';
    145 export { createProd } from './function/statistics/prod.js';
    146 export { createMax } from './function/statistics/max.js';
    147 export { createMin } from './function/statistics/min.js';
    148 export { createSum } from './function/statistics/sum.js';
    149 export { createCumSum } from './function/statistics/cumsum.js';
    150 export { createMean } from './function/statistics/mean.js';
    151 export { createMedian } from './function/statistics/median.js';
    152 export { createMad } from './function/statistics/mad.js';
    153 export { createVariance } from './function/statistics/variance.js';
    154 export { createQuantileSeq } from './function/statistics/quantileSeq.js';
    155 export { createStd } from './function/statistics/std.js'; // string
    156 
    157 export { createFormat } from './function/string/format.js';
    158 export { createPrint } from './function/string/print.js'; // trigonometry
    159 
    160 export var createAcos = /* #__PURE__ */createNumberFactory('acos', acosNumber);
    161 export var createAcosh = /* #__PURE__ */createNumberFactory('acosh', acoshNumber);
    162 export var createAcot = /* #__PURE__ */createNumberFactory('acot', acotNumber);
    163 export var createAcoth = /* #__PURE__ */createNumberFactory('acoth', acothNumber);
    164 export var createAcsc = /* #__PURE__ */createNumberFactory('acsc', acscNumber);
    165 export var createAcsch = /* #__PURE__ */createNumberFactory('acsch', acschNumber);
    166 export var createAsec = /* #__PURE__ */createNumberFactory('asec', asecNumber);
    167 export var createAsech = /* #__PURE__ */createNumberFactory('asech', asechNumber);
    168 export var createAsin = /* #__PURE__ */createNumberFactory('asin', asinNumber);
    169 export var createAsinh = /* #__PURE__ */createNumberFactory('asinh', asinhNumber);
    170 export var createAtan = /* #__PURE__ */createNumberFactory('atan', atanNumber);
    171 export var createAtan2 = /* #__PURE__ */createNumberFactory('atan2', atan2Number);
    172 export var createAtanh = /* #__PURE__ */createNumberFactory('atanh', atanhNumber);
    173 export var createCos = /* #__PURE__ */createNumberFactory('cos', cosNumber);
    174 export var createCosh = /* #__PURE__ */createNumberFactory('cosh', coshNumber);
    175 export var createCot = /* #__PURE__ */createNumberFactory('cot', cotNumber);
    176 export var createCoth = /* #__PURE__ */createNumberFactory('coth', cothNumber);
    177 export var createCsc = /* #__PURE__ */createNumberFactory('csc', cscNumber);
    178 export var createCsch = /* #__PURE__ */createNumberFactory('csch', cschNumber);
    179 export var createSec = /* #__PURE__ */createNumberFactory('sec', secNumber);
    180 export var createSech = /* #__PURE__ */createNumberFactory('sech', sechNumber);
    181 export var createSin = /* #__PURE__ */createNumberFactory('sin', sinNumber);
    182 export var createSinh = /* #__PURE__ */createNumberFactory('sinh', sinhNumber);
    183 export var createTan = /* #__PURE__ */createNumberFactory('tan', tanNumber);
    184 export var createTanh = /* #__PURE__ */createNumberFactory('tanh', tanhNumber); // transforms
    185 
    186 export { createApplyTransform } from './expression/transform/apply.transform.js';
    187 export { createFilterTransform } from './expression/transform/filter.transform.js';
    188 export { createForEachTransform } from './expression/transform/forEach.transform.js';
    189 export { createMapTransform } from './expression/transform/map.transform.js';
    190 export { createMaxTransform } from './expression/transform/max.transform.js';
    191 export { createMeanTransform } from './expression/transform/mean.transform.js';
    192 export { createMinTransform } from './expression/transform/min.transform.js';
    193 export { createRangeTransform } from './expression/transform/range.transform.js';
    194 export var createSubsetTransform = /* #__PURE__ */factory('subset', [], () => noSubset, {
    195   isTransformFunction: true
    196 });
    197 export { createStdTransform } from './expression/transform/std.transform.js';
    198 export { createSumTransform } from './expression/transform/sum.transform.js';
    199 export { createCumSumTransform } from './expression/transform/cumsum.transform.js';
    200 export { createVarianceTransform } from './expression/transform/variance.transform.js'; // utils
    201 
    202 export { createClone } from './function/utils/clone.js';
    203 export var createIsInteger = /* #__PURE__ */createNumberFactory('isInteger', isIntegerNumber);
    204 export var createIsNegative = /* #__PURE__ */createNumberFactory('isNegative', isNegativeNumber);
    205 export { createIsNumeric } from './function/utils/isNumeric.js';
    206 export { createHasNumericValue } from './function/utils/hasNumericValue.js';
    207 export var createIsPositive = /* #__PURE__ */createNumberFactory('isPositive', isPositiveNumber);
    208 export var createIsZero = /* #__PURE__ */createNumberFactory('isZero', isZeroNumber);
    209 export var createIsNaN = /* #__PURE__ */createNumberFactory('isNaN', isNaNNumber);
    210 export { createTypeOf } from './function/utils/typeOf.js';
    211 export { createIsPrime } from './function/utils/isPrime.js';
    212 export { createNumeric } from './function/utils/numeric.js'; // json
    213 
    214 export { createReviver } from './json/reviver.js';
    215 export { createReplacer } from './json/replacer.js'; // helper functions to create a factory function for a function which only needs typed-function
    216 
    217 function createNumberFactory(name, fn) {
    218   return factory(name, ['typed'], _ref => {
    219     var {
    220       typed
    221     } = _ref;
    222     return typed(fn);
    223   });
    224 }
    225 
    226 function createNumberOptionalSecondArgFactory(name, fn) {
    227   return factory(name, ['typed'], _ref2 => {
    228     var {
    229       typed
    230     } = _ref2;
    231     return typed({
    232       number: fn,
    233       'number,number': fn
    234     });
    235   });
    236 }