"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "pi", {
  enumerable: true,
  get: function get() {
    return _number.pi;
  }
});
Object.defineProperty(exports, "tau", {
  enumerable: true,
  get: function get() {
    return _number.tau;
  }
});
Object.defineProperty(exports, "e", {
  enumerable: true,
  get: function get() {
    return _number.e;
  }
});
Object.defineProperty(exports, "phi", {
  enumerable: true,
  get: function get() {
    return _number.phi;
  }
});
Object.defineProperty(exports, "isAccessorNode", {
  enumerable: true,
  get: function get() {
    return _is.isAccessorNode;
  }
});
Object.defineProperty(exports, "isArray", {
  enumerable: true,
  get: function get() {
    return _is.isArray;
  }
});
Object.defineProperty(exports, "isArrayNode", {
  enumerable: true,
  get: function get() {
    return _is.isArrayNode;
  }
});
Object.defineProperty(exports, "isAssignmentNode", {
  enumerable: true,
  get: function get() {
    return _is.isAssignmentNode;
  }
});
Object.defineProperty(exports, "isBigNumber", {
  enumerable: true,
  get: function get() {
    return _is.isBigNumber;
  }
});
Object.defineProperty(exports, "isBlockNode", {
  enumerable: true,
  get: function get() {
    return _is.isBlockNode;
  }
});
Object.defineProperty(exports, "isBoolean", {
  enumerable: true,
  get: function get() {
    return _is.isBoolean;
  }
});
Object.defineProperty(exports, "isChain", {
  enumerable: true,
  get: function get() {
    return _is.isChain;
  }
});
Object.defineProperty(exports, "isComplex", {
  enumerable: true,
  get: function get() {
    return _is.isComplex;
  }
});
Object.defineProperty(exports, "isConditionalNode", {
  enumerable: true,
  get: function get() {
    return _is.isConditionalNode;
  }
});
Object.defineProperty(exports, "isConstantNode", {
  enumerable: true,
  get: function get() {
    return _is.isConstantNode;
  }
});
Object.defineProperty(exports, "isDate", {
  enumerable: true,
  get: function get() {
    return _is.isDate;
  }
});
Object.defineProperty(exports, "isDenseMatrix", {
  enumerable: true,
  get: function get() {
    return _is.isDenseMatrix;
  }
});
Object.defineProperty(exports, "isFraction", {
  enumerable: true,
  get: function get() {
    return _is.isFraction;
  }
});
Object.defineProperty(exports, "isFunction", {
  enumerable: true,
  get: function get() {
    return _is.isFunction;
  }
});
Object.defineProperty(exports, "isFunctionAssignmentNode", {
  enumerable: true,
  get: function get() {
    return _is.isFunctionAssignmentNode;
  }
});
Object.defineProperty(exports, "isFunctionNode", {
  enumerable: true,
  get: function get() {
    return _is.isFunctionNode;
  }
});
Object.defineProperty(exports, "isHelp", {
  enumerable: true,
  get: function get() {
    return _is.isHelp;
  }
});
Object.defineProperty(exports, "isIndex", {
  enumerable: true,
  get: function get() {
    return _is.isIndex;
  }
});
Object.defineProperty(exports, "isIndexNode", {
  enumerable: true,
  get: function get() {
    return _is.isIndexNode;
  }
});
Object.defineProperty(exports, "isMatrix", {
  enumerable: true,
  get: function get() {
    return _is.isMatrix;
  }
});
Object.defineProperty(exports, "isNode", {
  enumerable: true,
  get: function get() {
    return _is.isNode;
  }
});
Object.defineProperty(exports, "isNull", {
  enumerable: true,
  get: function get() {
    return _is.isNull;
  }
});
Object.defineProperty(exports, "isNumber", {
  enumerable: true,
  get: function get() {
    return _is.isNumber;
  }
});
Object.defineProperty(exports, "isString", {
  enumerable: true,
  get: function get() {
    return _is.isString;
  }
});
Object.defineProperty(exports, "isUndefined", {
  enumerable: true,
  get: function get() {
    return _is.isUndefined;
  }
});
Object.defineProperty(exports, "isObject", {
  enumerable: true,
  get: function get() {
    return _is.isObject;
  }
});
Object.defineProperty(exports, "isObjectNode", {
  enumerable: true,
  get: function get() {
    return _is.isObjectNode;
  }
});
Object.defineProperty(exports, "isOperatorNode", {
  enumerable: true,
  get: function get() {
    return _is.isOperatorNode;
  }
});
Object.defineProperty(exports, "isParenthesisNode", {
  enumerable: true,
  get: function get() {
    return _is.isParenthesisNode;
  }
});
Object.defineProperty(exports, "isRange", {
  enumerable: true,
  get: function get() {
    return _is.isRange;
  }
});
Object.defineProperty(exports, "isRangeNode", {
  enumerable: true,
  get: function get() {
    return _is.isRangeNode;
  }
});
Object.defineProperty(exports, "isRegExp", {
  enumerable: true,
  get: function get() {
    return _is.isRegExp;
  }
});
Object.defineProperty(exports, "isResultSet", {
  enumerable: true,
  get: function get() {
    return _is.isResultSet;
  }
});
Object.defineProperty(exports, "isSparseMatrix", {
  enumerable: true,
  get: function get() {
    return _is.isSparseMatrix;
  }
});
Object.defineProperty(exports, "isSymbolNode", {
  enumerable: true,
  get: function get() {
    return _is.isSymbolNode;
  }
});
Object.defineProperty(exports, "isUnit", {
  enumerable: true,
  get: function get() {
    return _is.isUnit;
  }
});
Object.defineProperty(exports, "version", {
  enumerable: true,
  get: function get() {
    return _version.version;
  }
});
exports.acoth = exports.acot = exports.acosh = exports.acos = exports.SQRT2 = exports.SQRT1_2 = exports.LOG10E = exports.LOG2E = exports.LN10 = exports.LN2 = exports._NaN = exports._Infinity = exports._null = exports._false = exports._true = exports.min = exports.max = exports.range = exports.partitionSelect = exports.unequal = exports.deepEqual = exports.largerEq = exports.larger = exports.smallerEq = exports.smaller = exports.equalText = exports.equal = exports.compareText = exports.compareNatural = exports.compare = exports.and = exports.rightLogShift = exports.rightArithShift = exports.leftShift = exports.log1p = exports.log = exports.round = exports.pow = exports.divideScalar = exports.numeric = exports.isPrime = exports.print = exports.format = exports.prod = exports.mode = exports.erf = exports.subset = exports.map = exports.forEach = exports.filter = exports.apply = exports.xor = exports.or = exports.not = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.xgcd = exports.subtract = exports.square = exports.sqrt = exports.sign = exports.nthRoot = exports.multiply = exports.multiplyScalar = exports.mod = exports.log2 = exports.log10 = exports.lcm = exports.gcd = exports.floor = exports.fix = exports.expm1 = exports.exp = exports.cube = exports.ceil = exports.cbrt = exports.addScalar = exports.abs = exports.unaryPlus = exports.unaryMinus = exports.matrix = exports["boolean"] = exports.string = exports.number = exports.equalScalar = exports.typeOf = exports.isNaN = exports.isZero = exports.isPositive = exports.hasNumericValue = exports.isNumeric = exports.isNegative = exports.isInteger = exports.clone = exports.typed = exports.Range = exports.ResultSet = exports.config = void 0;
exports.composition = exports.catalan = exports.bellNumbers = exports.stirlingS2 = exports.randomInt = exports.random = exports.pickRandom = exports.permutations = exports.multinomial = exports.factorial = exports.gamma = exports.combinations = exports.std = exports.quantileSeq = exports.variance = exports.mad = exports.median = exports.mean = exports.sum = exports.divide = exports.norm = exports.hypot = exports.add = exports.tanh = exports.tan = exports.sinh = exports.sin = exports.sech = exports.sec = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.acsch = exports.acsc = void 0;

var _number = require("../plain/number");

var _config = require("../core/config");

var _ResultSet = require("../type/resultset/ResultSet");

var _Range = require("../type/matrix/Range");

var _typed = require("../core/function/typed");

var _clone = require("../function/utils/clone");

var _isNumeric = require("../function/utils/isNumeric");

var _hasNumericValue = require("../function/utils/hasNumericValue");

var _typeOf = require("../function/utils/typeOf");

var _equalScalar = require("../function/relational/equalScalar");

var _number2 = require("../type/number");

var _string = require("../type/string");

var _boolean2 = require("../type/boolean");

var _nthRoot = require("../function/arithmetic/nthRoot");

var _erf = require("../function/special/erf");

var _mode = require("../function/statistics/mode");

var _prod = require("../function/statistics/prod");

var _format = require("../function/string/format");

var _print = require("../function/string/print");

var _isPrime = require("../function/utils/isPrime");

var _round = require("../function/arithmetic/round");

var _compare = require("../function/relational/compare");

var _compareNatural = require("../function/relational/compareNatural");

var _compareText = require("../function/relational/compareText");

var _equalText = require("../function/relational/equalText");

var _smaller = require("../function/relational/smaller");

var _smallerEq = require("../function/relational/smallerEq");

var _larger = require("../function/relational/larger");

var _largerEq = require("../function/relational/largerEq");

var _deepEqual = require("../function/relational/deepEqual");

var _unequal = require("../function/relational/unequal");

var _partitionSelect = require("../function/matrix/partitionSelect");

var _max = require("../function/statistics/max");

var _min = require("../function/statistics/min");

var _hypot = require("../function/arithmetic/hypot");

var _sum = require("../function/statistics/sum");

var _mean = require("../function/statistics/mean");

var _median = require("../function/statistics/median");

var _mad = require("../function/statistics/mad");

var _variance = require("../function/statistics/variance");

var _quantileSeq = require("../function/statistics/quantileSeq");

var _std = require("../function/statistics/std");

var _factorial = require("../function/probability/factorial");

var _multinomial = require("../function/probability/multinomial");

var _permutations = require("../function/probability/permutations");

var _pickRandom = require("../function/probability/pickRandom");

var _random = require("../function/probability/random");

var _randomInt = require("../function/probability/randomInt");

var _stirlingS = require("../function/combinatorics/stirlingS2");

var _bellNumbers = require("../function/combinatorics/bellNumbers");

var _catalan = require("../function/combinatorics/catalan");

var _composition = require("../function/combinatorics/composition");

var _config2 = require("../core/function/config");

var _numeric = require("../function/utils/numeric");

var _equal = require("../function/relational/equal");

var _filter = require("../function/matrix/filter");

var _forEach = require("../function/matrix/forEach");

var _map = require("../function/matrix/map");

var _range = require("../function/matrix/range");

var _factoriesNumber = require("../factoriesNumber");

var _noop = require("../utils/noop");

var _apply = require("../function/matrix/apply");

var _is = require("../utils/is");

var _version = require("../version");

function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

// create a read-only version of config
var config =
/* #__PURE__ */
function config(options) {
  if (options) {
    throw new Error('The global config is readonly. ' + 'Please create a mathjs instance if you want to change the default configuration.');
  }

  return Object.freeze(_config.DEFAULT_CONFIG);
};

exports.config = config;

_extends(config, _config.DEFAULT_CONFIG, {
  MATRIX_OPTIONS: _config2.MATRIX_OPTIONS,
  NUMBER_OPTIONS: _config2.NUMBER_OPTIONS
}); // util functions


// ----------------------------------------------------------------------------
// classes and functions
// class (1)
var ResultSet =
/* #__PURE__ */
(0, _ResultSet.createResultSet)(); // export const BigNumber = /* #__PURE__ */ createBigNumberClass({ config })
// export const Complex = /* #__PURE__ */ createComplexClass({ config })
// export const Fraction = /* #__PURE__ */ createFractionClass()

exports.ResultSet = ResultSet;
var Range =
/* #__PURE__ */
(0, _Range.createRangeClass)(); // export const Matrix = /* #__PURE__ */ createMatrixClass()
// export const DenseMatrix = /* #__PURE__ */ createDenseMatrixClass({ Matrix })
// core (1)

exports.Range = Range;
var typed =
/* #__PURE__ */
(0, _typed.createTyped)({}); // utils (1)

exports.typed = typed;
var clone =
/* #__PURE__ */
(0, _clone.createClone)({
  typed: typed
});
exports.clone = clone;
var isInteger =
/* #__PURE__ */
typed(_number.isIntegerNumber);
exports.isInteger = isInteger;
var isNegative =
/* #__PURE__ */
typed(_number.isNegativeNumber);
exports.isNegative = isNegative;
var isNumeric =
/* #__PURE__ */
(0, _isNumeric.createIsNumeric)({
  typed: typed
});
exports.isNumeric = isNumeric;
var hasNumericValue =
/* #__PURE__ */
(0, _hasNumericValue.createHasNumericValue)({
  typed: typed,
  isNumeric: isNumeric
});
exports.hasNumericValue = hasNumericValue;
var isPositive =
/* #__PURE__ */
typed(_number.isPositiveNumber);
exports.isPositive = isPositive;
var isZero =
/* #__PURE__ */
typed(_number.isZeroNumber);
exports.isZero = isZero;
var isNaN =
/* #__PURE__ */
typed(_number.isNaNNumber);
exports.isNaN = isNaN;
var typeOf =
/* #__PURE__ */
(0, _typeOf.createTypeOf)({
  typed: typed
}); // relational (1)

exports.typeOf = typeOf;
var equalScalar =
/* #__PURE__ */
(0, _equalScalar.createEqualScalarNumber)({
  config: config,
  typed: typed
}); // classes (1.1)
// export const SparseMatrix = /* #__PURE__ */ createSparseMatrixClass({ typed, equalScalar, Matrix })
// create (1)

exports.equalScalar = equalScalar;
var number =
/* #__PURE__ */
(0, _number2.createNumber)({
  typed: typed
});
exports.number = number;
var string =
/* #__PURE__ */
(0, _string.createString)({
  typed: typed
});
exports.string = string;

var _boolean =
/* #__PURE__ */
(0, _boolean2.createBoolean)({
  typed: typed
}); // export const bignumber = /* #__PURE__ */ createBignumber({ typed, BigNumber })
// export const complex = /* #__PURE__ */ createComplex({ typed, Complex })
// export const fraction = /* #__PURE__ */ createFraction({ typed, Fraction })


exports["boolean"] = _boolean;
var matrix =
/* #__PURE__ */
_noop.noMatrix; // FIXME: remove export, currently required because of subset.transform dependency
// export const splitUnit = /* #__PURE__ */ createSplitUnit({ typed })
// arithmetic (1)

exports.matrix = matrix;
var unaryMinus =
/* #__PURE__ */
typed(_number.unaryMinusNumber);
exports.unaryMinus = unaryMinus;
var unaryPlus =
/* #__PURE__ */
typed(_number.unaryPlusNumber);
exports.unaryPlus = unaryPlus;
var abs =
/* #__PURE__ */
typed(_number.absNumber);
exports.abs = abs;
var addScalar =
/* #__PURE__ */
typed(_number.addNumber);
exports.addScalar = addScalar;
var cbrt =
/* #__PURE__ */
typed(_number.cbrtNumber);
exports.cbrt = cbrt;
var ceil =
/* #__PURE__ */
typed(_number.ceilNumber);
exports.ceil = ceil;
var cube =
/* #__PURE__ */
typed(_number.cubeNumber);
exports.cube = cube;
var exp =
/* #__PURE__ */
typed(_number.expNumber);
exports.exp = exp;
var expm1 =
/* #__PURE__ */
typed(_number.expm1Number);
exports.expm1 = expm1;
var fix =
/* #__PURE__ */
typed(_number.fixNumber);
exports.fix = fix;
var floor =
/* #__PURE__ */
typed(_number.floorNumber);
exports.floor = floor;
var gcd =
/* #__PURE__ */
typed(_number.gcdNumber);
exports.gcd = gcd;
var lcm =
/* #__PURE__ */
typed(_number.lcmNumber);
exports.lcm = lcm;
var log10 =
/* #__PURE__ */
typed(_number.log10Number);
exports.log10 = log10;
var log2 =
/* #__PURE__ */
typed(_number.log2Number);
exports.log2 = log2;
var mod =
/* #__PURE__ */
typed(_number.modNumber);
exports.mod = mod;
var multiplyScalar =
/* #__PURE__ */
typed(_number.multiplyNumber);
exports.multiplyScalar = multiplyScalar;
var multiply =
/* #__PURE__ */
multiplyScalar;
exports.multiply = multiply;
var nthRoot =
/* #__PURE__ */
(0, _nthRoot.createNthRootNumber)({
  typed: typed
});
exports.nthRoot = nthRoot;
var sign =
/* #__PURE__ */
typed(_number.signNumber);
exports.sign = sign;
var sqrt =
/* #__PURE__ */
typed(_number.sqrtNumber);
exports.sqrt = sqrt;
var square =
/* #__PURE__ */
typed(_number.squareNumber);
exports.square = square;
var subtract =
/* #__PURE__ */
typed(_number.subtractNumber);
exports.subtract = subtract;
var xgcd =
/* #__PURE__ */
typed(_number.xgcdNumber); // export const dotMultiply = /* #__PURE__ */ createDotMultiply({ typed, matrix, equalScalar, multiplyScalar })
// bitwise (1)

exports.xgcd = xgcd;
var bitAnd =
/* #__PURE__ */
typed(_number.bitAndNumber);
exports.bitAnd = bitAnd;
var bitNot =
/* #__PURE__ */
typed(_number.bitNotNumber);
exports.bitNot = bitNot;
var bitOr =
/* #__PURE__ */
typed(_number.bitOrNumber);
exports.bitOr = bitOr;
var bitXor =
/* #__PURE__ */
typed(_number.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)

exports.bitXor = bitXor;
var not =
/* #__PURE__ */
typed(_number.notNumber);
exports.not = not;
var or =
/* #__PURE__ */
typed(_number.orNumber);
exports.or = or;
var xor =
/* #__PURE__ */
typed(_number.xorNumber); // matrix (1)

exports.xor = xor;
var apply =
/* #__PURE__ */
(0, _apply.createApply)({
  typed: typed,
  isInteger: isInteger
}); // 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 })

exports.apply = apply;
var filter =
/* #__PURE__ */
(0, _filter.createFilter)({
  typed: typed
}); // export const flatten = /* #__PURE__ */ createFlatten({ typed, matrix })

exports.filter = filter;
var forEach =
/* #__PURE__ */
(0, _forEach.createForEach)({
  typed: typed
}); // 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 })

exports.forEach = forEach;
var map =
/* #__PURE__ */
(0, _map.createMap)({
  typed: typed
}); // export const ones = /* #__PURE__ */ createOnes({ config, typed, matrix, BigNumber })
// 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: have a light weight implementation of subset

exports.map = map;
var subset =
/* #__PURE__ */
(0, _factoriesNumber.createSubset)({
  typed: typed,
  matrix: matrix
}); // 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)

exports.subset = subset;
var erf =
/* #__PURE__ */
(0, _erf.createErf)({
  typed: typed
}); // statistics (1)

exports.erf = erf;
var mode =
/* #__PURE__ */
(0, _mode.createMode)({
  typed: typed,
  isNaN: isNaN,
  isNumeric: isNumeric
});
exports.mode = mode;
var prod =
/* #__PURE__ */
(0, _prod.createProd)({
  typed: typed,
  multiply: multiply
}); // string (1)

exports.prod = prod;
var format =
/* #__PURE__ */
(0, _format.createFormat)({
  typed: typed
});
exports.format = format;
var print =
/* #__PURE__ */
(0, _print.createPrint)({
  typed: typed
}); // unit (1)
// export const to = /* #__PURE__ */ createTo({ typed, matrix })
// utils (2)

exports.print = print;
var isPrime =
/* #__PURE__ */
(0, _isPrime.createIsPrime)({
  typed: typed
});
exports.isPrime = isPrime;
var numeric =
/* #__PURE__ */
(0, _numeric.createNumeric)({
  typed: typed,
  number: number
}); // arithmetic (2)

exports.numeric = numeric;
var divideScalar =
/* #__PURE__ */
typed(_number.divideNumber);
exports.divideScalar = divideScalar;
var pow =
/* #__PURE__ */
typed(_number.powNumber);
exports.pow = pow;
var round =
/* #__PURE__ */
(0, _round.createRoundNumber)({
  typed: typed
});
exports.round = round;
var log =
/* #__PURE__ */
typed(_number.logNumber);
exports.log = log;
var log1p =
/* #__PURE__ */
typed(_number.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 })
// 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)

exports.log1p = log1p;
var leftShift =
/* #__PURE__ */
typed(_number.leftShiftNumber);
exports.leftShift = leftShift;
var rightArithShift =
/* #__PURE__ */
typed(_number.rightArithShiftNumber);
exports.rightArithShift = rightArithShift;
var rightLogShift =
/* #__PURE__ */
typed(_number.rightLogShiftNumber); // logical (2)

exports.rightLogShift = rightLogShift;
var and =
/* #__PURE__ */
typed(_number.andNumber); // relational (2)

exports.and = and;
var compare =
/* #__PURE__ */
(0, _compare.createCompareNumber)({
  config: config,
  typed: typed
});
exports.compare = compare;
var compareNatural =
/* #__PURE__ */
(0, _compareNatural.createCompareNatural)({
  typed: typed,
  compare: compare
});
exports.compareNatural = compareNatural;
var compareText =
/* #__PURE__ */
(0, _compareText.createCompareTextNumber)({
  typed: typed
});
exports.compareText = compareText;
var equal =
/* #__PURE__ */
(0, _equal.createEqualNumber)({
  typed: typed,
  equalScalar: equalScalar
});
exports.equal = equal;
var equalText =
/* #__PURE__ */
(0, _equalText.createEqualText)({
  typed: typed,
  compareText: compareText,
  isZero: isZero
});
exports.equalText = equalText;
var smaller =
/* #__PURE__ */
(0, _smaller.createSmallerNumber)({
  config: config,
  typed: typed
});
exports.smaller = smaller;
var smallerEq =
/* #__PURE__ */
(0, _smallerEq.createSmallerEqNumber)({
  config: config,
  typed: typed
});
exports.smallerEq = smallerEq;
var larger =
/* #__PURE__ */
(0, _larger.createLargerNumber)({
  config: config,
  typed: typed
});
exports.larger = larger;
var largerEq =
/* #__PURE__ */
(0, _largerEq.createLargerEqNumber)({
  config: config,
  typed: typed
});
exports.largerEq = largerEq;
var deepEqual =
/* #__PURE__ */
(0, _deepEqual.createDeepEqual)({
  config: config,
  typed: typed,
  equal: equal
});
exports.deepEqual = deepEqual;
var unequal =
/* #__PURE__ */
(0, _unequal.createUnequalNumber)({
  config: config,
  typed: typed,
  equalScalar: equalScalar
}); // matrix (2)

exports.unequal = unequal;
var partitionSelect =
/* #__PURE__ */
(0, _partitionSelect.createPartitionSelect)({
  typed: typed,
  isNumeric: isNumeric,
  isNaN: isNaN,
  compare: compare
});
exports.partitionSelect = partitionSelect;
var range =
/* #__PURE__ */
(0, _range.createRange)({
  config: config,
  typed: typed,
  smaller: smaller,
  smallerEq: smallerEq,
  larger: larger,
  largerEq: largerEq
}); // export const sort = /* #__PURE__ */ createSort({ typed, matrix, compare, compareNatural })
// statistics (2)

exports.range = range;
var max =
/* #__PURE__ */
(0, _max.createMax)({
  typed: typed,
  larger: larger
});
exports.max = max;
var min =
/* #__PURE__ */
(0, _min.createMin)({
  typed: typed,
  smaller: smaller
}); // 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
// })
// constants

exports.min = min;
var _true = true;
exports._true = _true;
var _false = false;
exports._false = _false;
var _null = null;
exports._null = _null;
var _Infinity = Infinity;
exports._Infinity = _Infinity;
var _NaN = NaN;
exports._NaN = _NaN;
var LN2 = Math.LN2;
exports.LN2 = LN2;
var LN10 = Math.LN10;
exports.LN10 = LN10;
var LOG2E = Math.LOG2E;
exports.LOG2E = LOG2E;
var LOG10E = Math.LOG10E;
exports.LOG10E = LOG10E;
var SQRT1_2 = Math.SQRT1_2;
exports.SQRT1_2 = SQRT1_2;
var SQRT2 = Math.SQRT2; // export const i = /* #__PURE__ */ createI({ config, Complex })

exports.SQRT2 = SQRT2;
// // 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 (2)
// export const sparse = /* #__PURE__ */ createSparse({ typed, SparseMatrix })
// export const unit = /* #__PURE__ */ createUnitFactory({ typed, Unit })
// export const createUnit = /* #__PURE__ */ createCreateUnit({ typed, Unit })
// trigonometry (2)
var acos =
/* #__PURE__ */
typed(_number.acosNumber);
exports.acos = acos;
var acosh =
/* #__PURE__ */
typed(_number.acoshNumber);
exports.acosh = acosh;
var acot =
/* #__PURE__ */
typed(_number.acotNumber);
exports.acot = acot;
var acoth =
/* #__PURE__ */
typed(_number.acothNumber);
exports.acoth = acoth;
var acsc =
/* #__PURE__ */
typed(_number.acscNumber);
exports.acsc = acsc;
var acsch =
/* #__PURE__ */
typed(_number.acschNumber);
exports.acsch = acsch;
var asec =
/* #__PURE__ */
typed(_number.asecNumber);
exports.asec = asec;
var asech =
/* #__PURE__ */
typed(_number.asechNumber);
exports.asech = asech;
var asin =
/* #__PURE__ */
typed(_number.asinNumber);
exports.asin = asin;
var asinh =
/* #__PURE__ */
typed(_number.asinhNumber);
exports.asinh = asinh;
var atan =
/* #__PURE__ */
typed(_number.atanNumber);
exports.atan = atan;
var atan2 =
/* #__PURE__ */
typed(_number.atan2Number);
exports.atan2 = atan2;
var atanh =
/* #__PURE__ */
typed(_number.atanhNumber);
exports.atanh = atanh;
var cos =
/* #__PURE__ */
typed(_number.cosNumber);
exports.cos = cos;
var cosh =
/* #__PURE__ */
typed(_number.coshNumber);
exports.cosh = cosh;
var cot =
/* #__PURE__ */
typed(_number.cotNumber);
exports.cot = cot;
var coth =
/* #__PURE__ */
typed(_number.cothNumber);
exports.coth = coth;
var csc =
/* #__PURE__ */
typed(_number.cscNumber);
exports.csc = csc;
var csch =
/* #__PURE__ */
typed(_number.cschNumber);
exports.csch = csch;
var sec =
/* #__PURE__ */
typed(_number.secNumber);
exports.sec = sec;
var sech =
/* #__PURE__ */
typed(_number.sechNumber);
exports.sech = sech;
var sin =
/* #__PURE__ */
typed(_number.sinNumber);
exports.sin = sin;
var sinh =
/* #__PURE__ */
typed(_number.sinhNumber);
exports.sinh = sinh;
var tan =
/* #__PURE__ */
typed(_number.tanNumber);
exports.tan = tan;
var tanh =
/* #__PURE__ */
typed(_number.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)

exports.tanh = tanh;
var add =
/* #__PURE__ */
typed(_number.addNumber);
exports.add = add;
var hypot =
/* #__PURE__ */
(0, _hypot.createHypot)({
  typed: typed,
  abs: abs,
  addScalar: addScalar,
  divideScalar: divideScalar,
  multiplyScalar: multiplyScalar,
  sqrt: sqrt,
  smaller: smaller,
  isPositive: isPositive
});
exports.hypot = hypot;
var norm =
/* #__PURE__ */
typed(_number.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)

exports.norm = norm;
var divide =
/* #__PURE__ */
typed(_number.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)

exports.divide = divide;
var sum =
/* #__PURE__ */
(0, _sum.createSum)({
  config: config,
  typed: typed,
  add: add
});
exports.sum = sum;
var mean =
/* #__PURE__ */
(0, _mean.createMean)({
  typed: typed,
  add: add,
  divide: divide
});
exports.mean = mean;
var median =
/* #__PURE__ */
(0, _median.createMedian)({
  typed: typed,
  add: add,
  divide: divide,
  compare: compare,
  partitionSelect: partitionSelect
});
exports.median = median;
var mad =
/* #__PURE__ */
(0, _mad.createMad)({
  typed: typed,
  abs: abs,
  map: map,
  median: median,
  subtract: subtract
});
exports.mad = mad;
var variance =
/* #__PURE__ */
(0, _variance.createVariance)({
  typed: typed,
  add: add,
  subtract: subtract,
  multiply: multiply,
  divide: divide,
  apply: apply,
  isNaN: isNaN
});
exports.variance = variance;
var quantileSeq =
/* #__PURE__ */
(0, _quantileSeq.createQuantileSeq)({
  typed: typed,
  add: add,
  multiply: multiply,
  partitionSelect: partitionSelect,
  compare: compare
});
exports.quantileSeq = quantileSeq;
var std =
/* #__PURE__ */
(0, _std.createStd)({
  typed: typed,
  sqrt: sqrt,
  variance: variance
}); // probability (4)

exports.std = std;
var combinations =
/* #__PURE__ */
typed(_number.combinationsNumber);
exports.combinations = combinations;
var gamma =
/* #__PURE__ */
typed(_number.gammaNumber);
exports.gamma = gamma;
var factorial =
/* #__PURE__ */
(0, _factorial.createFactorial)({
  typed: typed,
  gamma: gamma
}); // export const kldivergence = /* #__PURE__ */ createKldivergence({ typed, matrix, divide, sum, multiply, dotDivide, log, isNumeric })

exports.factorial = factorial;
var multinomial =
/* #__PURE__ */
(0, _multinomial.createMultinomial)({
  typed: typed,
  add: add,
  divide: divide,
  multiply: multiply,
  factorial: factorial,
  isInteger: isInteger,
  isPositive: isPositive
});
exports.multinomial = multinomial;
var permutations =
/* #__PURE__ */
(0, _permutations.createPermutations)({
  typed: typed,
  factorial: factorial
});
exports.permutations = permutations;
var pickRandom =
/* #__PURE__ */
(0, _pickRandom.createPickRandom)({
  typed: typed,
  config: config
});
exports.pickRandom = pickRandom;
var random =
/* #__PURE__ */
(0, _random.createRandom)({
  typed: typed,
  config: config,
  matrix: matrix
});
exports.random = random;
var randomInt =
/* #__PURE__ */
(0, _randomInt.createRandomInt)({
  typed: typed,
  config: config
}); // combinatorics (4)

exports.randomInt = randomInt;
var stirlingS2 =
/* #__PURE__ */
(0, _stirlingS.createStirlingS2)({
  typed: typed,
  addScalar: addScalar,
  subtract: subtract,
  multiplyScalar: multiplyScalar,
  divideScalar: divideScalar,
  pow: pow,
  factorial: factorial,
  combinations: combinations,
  isNegative: isNegative,
  isInteger: isInteger,
  larger: larger
});
exports.stirlingS2 = stirlingS2;
var bellNumbers =
/* #__PURE__ */
(0, _bellNumbers.createBellNumbers)({
  typed: typed,
  addScalar: addScalar,
  isNegative: isNegative,
  isInteger: isInteger,
  stirlingS2: stirlingS2
});
exports.bellNumbers = bellNumbers;
var catalan =
/* #__PURE__ */
(0, _catalan.createCatalan)({
  typed: typed,
  addScalar: addScalar,
  divideScalar: divideScalar,
  multiplyScalar: multiplyScalar,
  combinations: combinations,
  isNegative: isNegative,
  isInteger: isInteger
});
exports.catalan = catalan;
var composition =
/* #__PURE__ */
(0, _composition.createComposition)({
  typed: typed,
  addScalar: addScalar,
  combinations: combinations,
  isPositive: isPositive,
  isNegative: isNegative,
  isInteger: isInteger,
  larger: larger
});
exports.composition = composition;