cleanup and reorganize factoriesNumber.js

This commit is contained in:
jos 2019-05-15 18:05:12 +02:00
parent 3e553e1d11
commit bd2e68e3ab

View File

@ -20,7 +20,8 @@ import {
bitOrNumber,
bitXorNumber,
cbrtNumber,
ceilNumber, combinationsNumber,
ceilNumber,
combinationsNumber,
coshNumber,
cosNumber,
cothNumber,
@ -32,7 +33,8 @@ import {
expm1Number,
expNumber,
fixNumber,
floorNumber, gammaNumber,
floorNumber,
gammaNumber,
gcdNumber,
isIntegerNumber,
isNaNNumber,
@ -75,46 +77,23 @@ import { noMatrix, noSubset } from './utils/noop'
// ----------------------------------------------------------------------------
// classes and functions
// class (1)
export { createResultSet } from './type/resultset/ResultSet'
// export const BigNumber = /* #__PURE__ */ createBigNumberClass({ config })
// export const Complex = /* #__PURE__ */ createComplexClass({ config })
// export const Fraction = /* #__PURE__ */ createFractionClass()
export { createRangeClass } from './type/matrix/Range'
// export const Matrix = /* #__PURE__ */ createMatrixClass()
// export const DenseMatrix = /* #__PURE__ */ createDenseMatrixClass({ Matrix })
// core (1)
// core
export { createTyped } from './core/function/typed'
// utils (1)
export { createClone } from './function/utils/clone'
export const createIsInteger = /* #__PURE__ */ createNumberFactory('isInteger', isIntegerNumber)
export const createIsNegative = /* #__PURE__ */ createNumberFactory('isNegative', isNegativeNumber)
export { createIsNumeric } from './function/utils/isNumeric'
export { createHasNumericValue } from './function/utils/hasNumericValue'
export const createIsPositive = /* #__PURE__ */ createNumberFactory('isPositive', isPositiveNumber)
export const createIsZero = /* #__PURE__ */ createNumberFactory('isZero', isZeroNumber)
export const createIsNaN = /* #__PURE__ */ createNumberFactory('isNaN', isNaNNumber)
export { createTypeOf } from './function/utils/typeOf'
// classes
export { createResultSet } from './type/resultset/ResultSet'
export { createRangeClass } from './type/matrix/Range'
export { createHelpClass } from './expression/Help'
export { createChainClass } from './type/chain/Chain'
export { createHelp } from './expression/function/help'
export { createChain } from './type/chain/function/chain'
// relational (1)
export { createEqualScalarNumber as createEqualScalar } from './function/relational/equalScalar'
// algebra
export { createSimplify } from './function/algebra/simplify'
export { createDerivative } from './function/algebra/derivative'
export { createRationalize } from './function/algebra/rationalize'
// classes (1.1)
// export const SparseMatrix = /* #__PURE__ */ createSparseMatrixClass({ typed, equalScalar, Matrix })
// create (1)
export { createNumber } from './type/number'
export { createString } from './type/string'
export { createBoolean } from './type/boolean'
// export const bignumber = /* #__PURE__ */ createBignumber({ typed, BigNumber })
// export const complex = /* #__PURE__ */ createComplex({ typed, Complex })
// export const fraction = /* #__PURE__ */ createFraction({ typed, Fraction })
export const createMatrix = /* #__PURE__ */ factory('matrix', [], () => noMatrix) // FIXME: needed now because subset transform needs it. Remove the need for it in subset
// export const splitUnit = /* #__PURE__ */ createSplitUnit({ typed })
// arithmetic (1)
// arithmetic
export const createUnaryMinus = /* #__PURE__ */ createNumberFactory('unaryMinus', unaryMinusNumber)
export const createUnaryPlus = /* #__PURE__ */ createNumberFactory('unaryPlus', unaryPlusNumber)
export const createAbs = /* #__PURE__ */ createNumberFactory('abs', absNumber)
@ -139,136 +118,30 @@ export const createSqrt = /* #__PURE__ */ createNumberFactory('sqrt', sqrtNumber
export const createSquare = /* #__PURE__ */ createNumberFactory('square', squareNumber)
export const createSubtract = /* #__PURE__ */ createNumberFactory('subtract', subtractNumber)
export const createXgcd = /* #__PURE__ */ createNumberFactory('xgcd', xgcdNumber)
// export const dotMultiply = /* #__PURE__ */ createDotMultiply({ typed, matrix, equalScalar, multiplyScalar })
// bitwise (1)
export const createBitAnd = /* #__PURE__ */ createNumberFactory('bitAnd', bitAndNumber)
export const createBitNot = /* #__PURE__ */ createNumberFactory('bitNot', bitNotNumber)
export const createBitOr = /* #__PURE__ */ createNumberFactory('bitOr', bitOrNumber)
export const createBitXor = /* #__PURE__ */ createNumberFactory('bitXor', bitXorNumber)
// complex (1)
// export const arg = /* #__PURE__ */ createArg({ typed })
// export const conj = /* #__PURE__ */ createConj({ typed })
// export const im = /* #__PURE__ */ createIm({ typed })
// export const re = /* #__PURE__ */ createRe({ typed })
// logical (1)
export const createNot = /* #__PURE__ */ createNumberFactory('not', notNumber)
export const createOr = /* #__PURE__ */ createNumberFactory('or', orNumber)
export const createXor = /* #__PURE__ */ createNumberFactory('xor', xorNumber)
// matrix (1)
export { createApply } from './function/matrix/apply'
// export const concat = /* #__PURE__ */ createConcat({ typed, matrix, isInteger })
// export const cross = /* #__PURE__ */ createCross({ typed, matrix, subtract, multiply })
// export const diag = /* #__PURE__ */ createDiag({ typed, matrix, DenseMatrix, SparseMatrix })
// export const eye = /* #__PURE__ */ createEye({ typed, matrix })
export { createFilter } from './function/matrix/filter'
// export const flatten = /* #__PURE__ */ createFlatten({ typed, matrix })
export { createForEach } from './function/matrix/forEach'
// export const getMatrixDataType = /* #__PURE__ */ createGetMatrixDataType({ typed })
// export const identity = /* #__PURE__ */ createIdentity({ config, typed, matrix, BigNumber, DenseMatrix, SparseMatrix })
// export const kron = /* #__PURE__ */ createKron({ typed, matrix, multiplyScalar })
export { createMap } from './function/matrix/map'
// export const ones = /* #__PURE__ */ createOnes({ config, typed, matrix, BigNumber })
export { createRange } from './function/matrix/range'
// export const reshape = /* #__PURE__ */ createReshape({ typed, isInteger, matrix })
// export const resize = /* #__PURE__ */ createResize({ config, matrix })
// export const size = /* #__PURE__ */ createSize({ config, typed, matrix })
// export const squeeze = /* #__PURE__ */ createSqueeze({ typed, matrix })
// FIXME: create a lightweight "number" implementation of subset only supporting plain objects/arrays
export const createSubset = /* #__PURE__ */ factory('subset', [], () => noSubset)
// export const transpose = /* #__PURE__ */ createTranspose({ typed, matrix })
// export const ctranspose = /* #__PURE__ */ createCtranspose({ typed, transpose, conj })
// export const zeros = /* #__PURE__ */ createZeros({ config, typed, matrix, BigNumber })
// TODO: provide number+array implementations for map, filter, forEach, zeros, ...?
// TODO: create range implementation for range?
// special (1)
export { createErf } from './function/special/erf'
// statistics (1)
export { createMode } from './function/statistics/mode'
export { createProd } from './function/statistics/prod'
// string (1)
export { createFormat } from './function/string/format'
export { createPrint } from './function/string/print'
// unit (1)
// export const to = /* #__PURE__ */ createTo({ typed, matrix })
// utils (2)
export { createIsPrime } from './function/utils/isPrime'
export { createNumeric } from './function/utils/numeric'
// arithmetic (2)
export const createDivideScalar = /* #__PURE__ */ createNumberFactory('divideScalar', divideNumber)
export const createPow = /* #__PURE__ */ createNumberFactory('pow', powNumber)
export { createRoundNumber as createRound } from './function/arithmetic/round'
export const createLog = /* #__PURE__ */ createNumberFactory('log', logNumber)
export const createLog1p = /* #__PURE__ */ createNumberFactory('log1p', log1pNumber)
// export const nthRoots = /* #__PURE__ */ createNthRoots({ config, typed, divideScalar, Complex })
// export const dotPow = /* #__PURE__ */ createDotPow({ typed, equalScalar, matrix, pow, DenseMatrix })
// export const dotDivide = /* #__PURE__ */ createDotDivide({ typed, matrix, equalScalar, divideScalar, DenseMatrix })
export const createAdd = /* #__PURE__ */ createNumberFactory('add', addNumber)
export { createHypot } from './function/arithmetic/hypot'
export const createNorm = /* #__PURE__ */ createNumberFactory('norm', normNumber)
export const createDivide = /* #__PURE__ */ createNumberFactory('divide', divideNumber)
// algebra (2)
// export const lsolve = /* #__PURE__ */ createLsolve({ typed, matrix, divideScalar, multiplyScalar, subtract, equalScalar, DenseMatrix })
// export const usolve = /* #__PURE__ */ createUsolve({ typed, matrix, divideScalar, multiplyScalar, subtract, equalScalar, DenseMatrix })
// bitwise (2)
// bitwise
export const createBitAnd = /* #__PURE__ */ createNumberFactory('bitAnd', bitAndNumber)
export const createBitNot = /* #__PURE__ */ createNumberFactory('bitNot', bitNotNumber)
export const createBitOr = /* #__PURE__ */ createNumberFactory('bitOr', bitOrNumber)
export const createBitXor = /* #__PURE__ */ createNumberFactory('bitXor', bitXorNumber)
export const createLeftShift = /* #__PURE__ */ createNumberFactory('leftShift', leftShiftNumber)
export const createRightArithShift = /* #__PURE__ */ createNumberFactory('rightArithShift', rightArithShiftNumber)
export const createRightLogShift = /* #__PURE__ */ createNumberFactory('rightLogShift', rightLogShiftNumber)
// logical (2)
export const createAnd = /* #__PURE__ */ createNumberFactory('and', andNumber)
// relational (2)
export { createCompareNumber as createCompare } from './function/relational/compare'
export { createCompareNatural } from './function/relational/compareNatural'
export { createCompareTextNumber as createCompareText } from './function/relational/compareText'
export { createEqualNumber as createEqual } from './function/relational/equal'
export { createEqualText } from './function/relational/equalText'
export { createSmallerNumber as createSmaller } from './function/relational/smaller'
export { createSmallerEqNumber as createSmallerEq } from './function/relational/smallerEq'
export { createLargerNumber as createLarger } from './function/relational/larger'
export { createLargerEqNumber as createLargerEq } from './function/relational/largerEq'
export { createDeepEqual } from './function/relational/deepEqual'
export { createUnequalNumber as createUnequal } from './function/relational/unequal'
// matrix (2)
export { createPartitionSelect } from './function/matrix/partitionSelect'
// export { createSort } from './function/matrix/sort'
// statistics (2)
export { createMax } from './function/statistics/max'
export { createMin } from './function/statistics/min'
// class (2)
// export const ImmutableDenseMatrix = /* #__PURE__ */ createImmutableDenseMatrixClass({ smaller, DenseMatrix })
// export const Index = /* #__PURE__ */ createIndexClass({ ImmutableDenseMatrix })
// export const FibonacciHeap = /* #__PURE__ */ createFibonacciHeapClass({ smaller, larger })
// export const Spa = /* #__PURE__ */ createSpaClass({ addScalar, equalScalar, FibonacciHeap })
// export const Unit = /* #__PURE__ */ createUnitClass({
// config,
// addScalar,
// subtract,
// multiplyScalar,
// divideScalar,
// pow,
// abs,
// fix,
// round,
// equal,
// isNumeric,
// format,
// number,
// Complex,
// BigNumber,
// Fraction
// })
// combinatorics
export { createStirlingS2 } from './function/combinatorics/stirlingS2'
export { createBellNumbers } from './function/combinatorics/bellNumbers'
export { createCatalan } from './function/combinatorics/catalan'
export { createComposition } from './function/combinatorics/composition'
// constants
export {
@ -293,81 +166,98 @@ export {
createVersion
} from './constants'
// // physical constants
// const pyhiscalConstantsDependencies = {
// config,
// BigNumber,
// Unit
// }
//
// // Universal constants
// export const speedOfLight = /* #__PURE__ */ createSpeedOfLight(pyhiscalConstantsDependencies)
// export const gravitationConstant = /* #__PURE__ */ createGravitationConstant(pyhiscalConstantsDependencies)
// export const planckConstant = /* #__PURE__ */ createPlanckConstant(pyhiscalConstantsDependencies)
// export const reducedPlanckConstant = /* #__PURE__ */ createReducedPlanckConstant(pyhiscalConstantsDependencies)
//
// // Electromagnetic constants
// export const magneticConstant = /* #__PURE__ */ createMagneticConstant(pyhiscalConstantsDependencies)
// export const electricConstant = /* #__PURE__ */ createElectricConstant(pyhiscalConstantsDependencies)
// export const vacuumImpedance = /* #__PURE__ */ createVacuumImpedance(pyhiscalConstantsDependencies)
// export const coulomb = /* #__PURE__ */ createCoulomb(pyhiscalConstantsDependencies)
// export const elementaryCharge = /* #__PURE__ */ createElementaryCharge(pyhiscalConstantsDependencies)
// export const bohrMagneton = /* #__PURE__ */ createBohrMagneton(pyhiscalConstantsDependencies)
// export const conductanceQuantum = /* #__PURE__ */ createConductanceQuantum(pyhiscalConstantsDependencies)
// export const inverseConductanceQuantum = /* #__PURE__ */ createInverseConductanceQuantum(pyhiscalConstantsDependencies)
// export const magneticFluxQuantum = /* #__PURE__ */ createMagneticFluxQuantum(pyhiscalConstantsDependencies)
// export const nuclearMagneton = /* #__PURE__ */ createNuclearMagneton(pyhiscalConstantsDependencies)
// export const klitzing = /* #__PURE__ */ createKlitzing(pyhiscalConstantsDependencies)
//
// // Atomic and nuclear constants
// export const bohrRadius = /* #__PURE__ */ createBohrRadius(pyhiscalConstantsDependencies)
// export const classicalElectronRadius = /* #__PURE__ */ createClassicalElectronRadius(pyhiscalConstantsDependencies)
// export const electronMass = /* #__PURE__ */ createElectronMass(pyhiscalConstantsDependencies)
// export const fermiCoupling = /* #__PURE__ */ createFermiCoupling(pyhiscalConstantsDependencies)
// export const fineStructure = /* #__PURE__ */ createFineStructure(pyhiscalConstantsDependencies)
// export const hartreeEnergy = /* #__PURE__ */ createHartreeEnergy(pyhiscalConstantsDependencies)
// export const protonMass = /* #__PURE__ */ createProtonMass(pyhiscalConstantsDependencies)
// export const deuteronMass = /* #__PURE__ */ createDeuteronMass(pyhiscalConstantsDependencies)
// export const neutronMass = /* #__PURE__ */ createNeutronMass(pyhiscalConstantsDependencies)
// export const quantumOfCirculation = /* #__PURE__ */ createQuantumOfCirculation(pyhiscalConstantsDependencies)
// export const rydberg = /* #__PURE__ */ createRydberg(pyhiscalConstantsDependencies)
// export const thomsonCrossSection = /* #__PURE__ */ createThomsonCrossSection(pyhiscalConstantsDependencies)
// export const weakMixingAngle = /* #__PURE__ */ createWeakMixingAngle(pyhiscalConstantsDependencies)
// export const efimovFactor = /* #__PURE__ */ createEfimovFactor(pyhiscalConstantsDependencies)
//
// // Physico-chemical constants
// export const atomicMass = /* #__PURE__ */ createAtomicMass(pyhiscalConstantsDependencies)
// export const avogadro = /* #__PURE__ */ createAvogadro(pyhiscalConstantsDependencies)
// export const boltzmann = /* #__PURE__ */ createBoltzmann(pyhiscalConstantsDependencies)
// export const faraday = /* #__PURE__ */ createFaraday(pyhiscalConstantsDependencies)
// export const firstRadiation = /* #__PURE__ */ createFirstRadiation(pyhiscalConstantsDependencies)
// export const loschmidt = /* #__PURE__ */ createLoschmidt(pyhiscalConstantsDependencies)
// export const gasConstant = /* #__PURE__ */ createGasConstant(pyhiscalConstantsDependencies)
// export const molarPlanckConstant = /* #__PURE__ */ createMolarPlanckConstant(pyhiscalConstantsDependencies)
// export const molarVolume = /* #__PURE__ */ createMolarVolume(pyhiscalConstantsDependencies)
// export const sackurTetrode = /* #__PURE__ */ createSackurTetrode(pyhiscalConstantsDependencies)
// export const secondRadiation = /* #__PURE__ */ createSecondRadiation(pyhiscalConstantsDependencies)
// export const stefanBoltzmann = /* #__PURE__ */ createStefanBoltzmann(pyhiscalConstantsDependencies)
// export const wienDisplacement = /* #__PURE__ */ createWienDisplacement(pyhiscalConstantsDependencies)
//
// // Adopted values
// export const molarMass = /* #__PURE__ */ createMolarMass(pyhiscalConstantsDependencies)
// export const molarMassC12 = /* #__PURE__ */ createMolarMassC12(pyhiscalConstantsDependencies)
// export const gravity = /* #__PURE__ */ createGravity(pyhiscalConstantsDependencies)
//
// // Natural units
// export const planckLength = /* #__PURE__ */ createPlanckLength(pyhiscalConstantsDependencies)
// export const planckMass = /* #__PURE__ */ createPlanckMass(pyhiscalConstantsDependencies)
// export const planckTime = /* #__PURE__ */ createPlanckTime(pyhiscalConstantsDependencies)
// export const planckCharge = /* #__PURE__ */ createPlanckCharge(pyhiscalConstantsDependencies)
// export const planckTemperature = /* #__PURE__ */ createPlanckTemperature(pyhiscalConstantsDependencies)
// create
export { createNumber } from './type/number'
export { createString } from './type/string'
export { createBoolean } from './type/boolean'
export { createParser } from './expression/function/parser'
export const createMatrix = /* #__PURE__ */ factory('matrix', [], () => noMatrix) // FIXME: needed now because subset transform needs it. Remove the need for it in subset
// create (2)
// export const sparse = /* #__PURE__ */ createSparse({ typed, SparseMatrix })
// export const unit = /* #__PURE__ */ createUnitFactory({ typed, Unit })
// export const createUnit = /* #__PURE__ */ createCreateUnit({ typed, Unit })
// expression
export { createNode } from './expression/node/Node'
export { createAccessorNode } from './expression/node/AccessorNode'
export { createArrayNode } from './expression/node/ArrayNode'
export { createAssignmentNode } from './expression/node/AssignmentNode'
export { createBlockNode } from './expression/node/BlockNode'
export { createConditionalNode } from './expression/node/ConditionalNode'
export { createConstantNode } from './expression/node/ConstantNode'
export { createFunctionAssignmentNode } from './expression/node/FunctionAssignmentNode'
export { createIndexNode } from './expression/node/IndexNode'
export { createObjectNode } from './expression/node/ObjectNode'
export { createOperatorNode } from './expression/node/OperatorNode'
export { createParenthesisNode } from './expression/node/ParenthesisNode'
export { createRangeNode } from './expression/node/RangeNode'
export { createRelationalNode } from './expression/node/RelationalNode'
export { createSymbolNode } from './expression/node/SymbolNode'
export { createFunctionNode } from './expression/node/FunctionNode'
export { createParse } from './expression/parse'
export { createCompile } from './expression/function/compile'
export { createEvaluate } from './expression/function/evaluate'
export { createParserClass } from './expression/Parser'
// trigonometry (2)
// logical
export const createAnd = /* #__PURE__ */ createNumberFactory('and', andNumber)
export const createNot = /* #__PURE__ */ createNumberFactory('not', notNumber)
export const createOr = /* #__PURE__ */ createNumberFactory('or', orNumber)
export const createXor = /* #__PURE__ */ createNumberFactory('xor', xorNumber)
// matrix
export { createApply } from './function/matrix/apply'
export { createFilter } from './function/matrix/filter'
export { createForEach } from './function/matrix/forEach'
export { createMap } from './function/matrix/map'
export { createRange } from './function/matrix/range'
// FIXME: create a lightweight "number" implementation of subset only supporting plain objects/arrays
export const createSubset = /* #__PURE__ */ factory('subset', [], () => noSubset)
// TODO: provide number+array implementations for map, filter, forEach, zeros, ...?
// TODO: create range implementation for range?
export { createPartitionSelect } from './function/matrix/partitionSelect'
// probability
export const createCombinations = createNumberFactory('combinations', combinationsNumber)
export const createGamma = createNumberFactory('gamma', gammaNumber)
export { createFactorial } from './function/probability/factorial'
export { createMultinomial } from './function/probability/multinomial'
export { createPermutations } from './function/probability/permutations'
export { createPickRandom } from './function/probability/pickRandom'
export { createRandomNumber as createRandom } from './function/probability/random'
export { createRandomInt } from './function/probability/randomInt'
// relational
export { createEqualScalarNumber as createEqualScalar } from './function/relational/equalScalar'
export { createCompareNumber as createCompare } from './function/relational/compare'
export { createCompareNatural } from './function/relational/compareNatural'
export { createCompareTextNumber as createCompareText } from './function/relational/compareText'
export { createEqualNumber as createEqual } from './function/relational/equal'
export { createEqualText } from './function/relational/equalText'
export { createSmallerNumber as createSmaller } from './function/relational/smaller'
export { createSmallerEqNumber as createSmallerEq } from './function/relational/smallerEq'
export { createLargerNumber as createLarger } from './function/relational/larger'
export { createLargerEqNumber as createLargerEq } from './function/relational/largerEq'
export { createDeepEqual } from './function/relational/deepEqual'
export { createUnequalNumber as createUnequal } from './function/relational/unequal'
// special
export { createErf } from './function/special/erf'
// statistics
export { createMode } from './function/statistics/mode'
export { createProd } from './function/statistics/prod'
export { createMax } from './function/statistics/max'
export { createMin } from './function/statistics/min'
export { createSum } from './function/statistics/sum'
export { createMean } from './function/statistics/mean'
export { createMedian } from './function/statistics/median'
export { createMad } from './function/statistics/mad'
export { createVariance } from './function/statistics/variance'
export { createQuantileSeq } from './function/statistics/quantileSeq'
export { createStd } from './function/statistics/std'
// string
export { createFormat } from './function/string/format'
export { createPrint } from './function/string/print'
// trigonometry
export const createAcos = /* #__PURE__ */ createNumberFactory('acos', acosNumber)
export const createAcosh = /* #__PURE__ */ createNumberFactory('acosh', acoshNumber)
export const createAcot = /* #__PURE__ */ createNumberFactory('acot', acotNumber)
@ -394,159 +284,34 @@ export const createSinh = /* #__PURE__ */ createNumberFactory('sinh', sinhNumber
export const createTan = /* #__PURE__ */ createNumberFactory('tan', tanNumber)
export const createTanh = /* #__PURE__ */ createNumberFactory('tanh', tanhNumber)
// set (2)
// export const setCartesian = /* #__PURE__ */ createSetCartesian({ typed, size, subset, compareNatural, Index, DenseMatrix })
// export const setDifference = /* #__PURE__ */ createSetDifference({ typed, size, subset, compareNatural, Index, DenseMatrix })
// export const setDistinct = /* #__PURE__ */ createSetDistinct({ typed, size, subset, compareNatural, Index, DenseMatrix })
// export const setIntersect = /* #__PURE__ */ createSetIntersect({ typed, size, subset, compareNatural, Index, DenseMatrix })
// export const setIsSubset = /* #__PURE__ */ createSetIsSubset({ typed, size, subset, compareNatural, Index })
// export const setMultiplicity = /* #__PURE__ */ createSetMultiplicity({ typed, size, subset, compareNatural, Index })
// export const setPowerset = /* #__PURE__ */ createSetPowerset({ typed, size, subset, compareNatural, Index })
// export const setSize = /* #__PURE__ */ createSetSize({ typed, compareNatural })
// export const setSymDifference = /* #__PURE__ */ createSetSymDifference({ typed, size, concat, subset, setDifference, Index })
// export const setUnion = /* #__PURE__ */ createSetUnion({ typed, size, concat, subset, setIntersect, setSymDifference, Index })
// arithmetic (3)
export const createAdd = /* #__PURE__ */ createNumberFactory('add', addNumber)
export { createHypot } from './function/arithmetic/hypot'
export const createNorm = /* #__PURE__ */ createNumberFactory('norm', normNumber)
// matrix (3)
// export const dot = /* #__PURE__ */ createDot({ typed, add, multiply })
// export const trace = /* #__PURE__ */ createTrace({ typed, matrix, add })
// export const index = /* #__PURE__ */ createIndex({ typed, Index })
// algebra (3)
// export const lup = /* #__PURE__ */ createLup({
// typed,
// matrix,
// abs,
// addScalar,
// divideScalar,
// multiplyScalar,
// subtract,
// larger,
// equalScalar,
// unaryMinus,
// DenseMatrix,
// SparseMatrix,
// Spa
// })
// export const qr = /* #__PURE__ */ createQr({
// typed,
// matrix,
// zeros,
// identity,
// isZero,
// unequal,
// sign,
// sqrt,
// conj,
// unaryMinus,
// addScalar,
// divideScalar,
// multiplyScalar,
// subtract
// })
// export const slu = /* #__PURE__ */ createSlu({ typed, abs, add, multiply, transpose, divideScalar, subtract, larger, largerEq, SparseMatrix })
// export const lusolve = /* #__PURE__ */ createLusolve({ typed, matrix, lup, slu, usolve, lsolve, DenseMatrix })
// matrix (4)
// export const det = /* #__PURE__ */ createDet({ typed, matrix, subtract, multiply, unaryMinus, lup })
// export const inv = /* #__PURE__ */ createInv({ typed, matrix, divideScalar, addScalar, multiply, unaryMinus, det, identity, abs })
// export const expm = /* #__PURE__ */ createExpm({ typed, abs, add, identity, inv, multiply })
// export const sqrtm = /* #__PURE__ */ createSqrtm({ typed, abs, add, multiply, sqrt, subtract, inv, size, max, identity })
// arithmetic (4)
export const createDivide = /* #__PURE__ */ createNumberFactory('divide', divideNumber)
// geometry (4)
// export const distance = /* #__PURE__ */ createDistance({ typed, addScalar, subtract, multiplyScalar, divideScalar, unaryMinus, sqrt, abs })
// export const intersect = /* #__PURE__ */ createIntersect({ config, typed, abs, add, addScalar, matrix, multiply, multiplyScalar, divideScalar, subtract, smaller, equalScalar })
// statistics (4)
export { createSum } from './function/statistics/sum'
export { createMean } from './function/statistics/mean'
export { createMedian } from './function/statistics/median'
export { createMad } from './function/statistics/mad'
export { createVariance } from './function/statistics/variance'
export { createQuantileSeq } from './function/statistics/quantileSeq'
export { createStd } from './function/statistics/std'
// probability (4)
export const createCombinations = createNumberFactory('combinations', combinationsNumber)
export const createGamma = createNumberFactory('gamma', gammaNumber)
export { createFactorial } from './function/probability/factorial'
// export { createKldivergence } from './function/probability/kldivergence'
export { createMultinomial } from './function/probability/multinomial'
export { createPermutations } from './function/probability/permutations'
export { createPickRandom } from './function/probability/pickRandom'
export { createRandomNumber as createRandom } from './function/probability/random'
export { createRandomInt } from './function/probability/randomInt'
// combinatorics (4)
export { createStirlingS2 } from './function/combinatorics/stirlingS2'
export { createBellNumbers } from './function/combinatorics/bellNumbers'
export { createCatalan } from './function/combinatorics/catalan'
export { createComposition } from './function/combinatorics/composition'
// transforms
export { createApplyTransform } from './expression/transform/apply.transform'
export { createFilterTransform } from './expression/transform/filter.transform'
export { createForEachTransform } from './expression/transform/forEach.transform'
// export { createIndexTransform } from './expression/transform/index.transform'
export { createMapTransform } from './expression/transform/map.transform'
export { createMaxTransform } from './expression/transform/max.transform'
export { createMeanTransform } from './expression/transform/mean.transform'
export { createMinTransform } from './expression/transform/min.transform'
export { createRangeTransform } from './expression/transform/range.transform'
export { createSubsetTransform } from './expression/transform/subset.transform'
// export { createConcatTransform } from './expression/transform/concat.transform'
export { createStdTransform } from './expression/transform/std.transform'
export { createSumTransform } from './expression/transform/sum.transform'
export { createVarianceTransform } from './expression/transform/variance.transform'
// expression (4)
export { createNode } from './expression/node/Node'
export { createAccessorNode } from './expression/node/AccessorNode'
export { createArrayNode } from './expression/node/ArrayNode'
export { createAssignmentNode } from './expression/node/AssignmentNode'
export { createBlockNode } from './expression/node/BlockNode'
export { createConditionalNode } from './expression/node/ConditionalNode'
export { createConstantNode } from './expression/node/ConstantNode'
export { createFunctionAssignmentNode } from './expression/node/FunctionAssignmentNode'
export { createIndexNode } from './expression/node/IndexNode'
export { createObjectNode } from './expression/node/ObjectNode'
export { createOperatorNode } from './expression/node/OperatorNode'
export { createParenthesisNode } from './expression/node/ParenthesisNode'
export { createRangeNode } from './expression/node/RangeNode'
export { createRelationalNode } from './expression/node/RelationalNode'
export { createSymbolNode } from './expression/node/SymbolNode'
export { createFunctionNode } from './expression/node/FunctionNode'
export { createParse } from './expression/parse'
export { createCompile } from './expression/function/compile'
export { createEvaluate } from './expression/function/evaluate'
export { createParserClass } from './expression/Parser'
// utils
export { createClone } from './function/utils/clone'
export const createIsInteger = /* #__PURE__ */ createNumberFactory('isInteger', isIntegerNumber)
export const createIsNegative = /* #__PURE__ */ createNumberFactory('isNegative', isNegativeNumber)
export { createIsNumeric } from './function/utils/isNumeric'
export { createHasNumericValue } from './function/utils/hasNumericValue'
export const createIsPositive = /* #__PURE__ */ createNumberFactory('isPositive', isPositiveNumber)
export const createIsZero = /* #__PURE__ */ createNumberFactory('isZero', isZeroNumber)
export const createIsNaN = /* #__PURE__ */ createNumberFactory('isNaN', isNaNNumber)
export { createTypeOf } from './function/utils/typeOf'
export { createIsPrime } from './function/utils/isPrime'
export { createNumeric } from './function/utils/numeric'
// create (4)
export { createParser } from './expression/function/parser'
// class (4)
export { createHelpClass } from './expression/Help'
export { createChainClass } from './type/chain/Chain'
// type (4)
export { createHelp } from './expression/function/help'
export { createChain } from './type/chain/function/chain'
// algebra (4)
export { createSimplify } from './function/algebra/simplify'
export { createDerivative } from './function/algebra/derivative'
export { createRationalize } from './function/algebra/rationalize'
// ----------------------------------------------------------------------------
// json
export { createReviver } from './json/reviver'
// helper function to create a factory function for a function which only needs typed-function