mathjs
Advanced tools
Comparing version 11.9.1 to 11.10.0
@@ -26,4 +26,4 @@ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ | ||
* | ||
* @version 11.9.1 | ||
* @date 2023-07-24 | ||
* @version 11.10.0 | ||
* @date 2023-08-23 | ||
* | ||
@@ -30,0 +30,0 @@ * @license |
@@ -8,2 +8,3 @@ "use strict"; | ||
var _dependenciesImmutableDenseMatrixClassGenerated = require("./dependenciesImmutableDenseMatrixClass.generated.js"); | ||
var _dependenciesGetMatrixDataTypeGenerated = require("./dependenciesGetMatrixDataType.generated.js"); | ||
var _factoriesAny = require("../../factoriesAny.js"); | ||
@@ -17,4 +18,5 @@ /** | ||
ImmutableDenseMatrixDependencies: _dependenciesImmutableDenseMatrixClassGenerated.ImmutableDenseMatrixDependencies, | ||
getMatrixDataTypeDependencies: _dependenciesGetMatrixDataTypeGenerated.getMatrixDataTypeDependencies, | ||
createIndexClass: _factoriesAny.createIndexClass | ||
}; | ||
exports.IndexDependencies = IndexDependencies; |
@@ -8,2 +8,3 @@ "use strict"; | ||
var _dependenciesIndexClassGenerated = require("./dependenciesIndexClass.generated.js"); | ||
var _dependenciesGetMatrixDataTypeGenerated = require("./dependenciesGetMatrixDataType.generated.js"); | ||
var _factoriesAny = require("../../factoriesAny.js"); | ||
@@ -17,4 +18,5 @@ /** | ||
IndexDependencies: _dependenciesIndexClassGenerated.IndexDependencies, | ||
getMatrixDataTypeDependencies: _dependenciesGetMatrixDataTypeGenerated.getMatrixDataTypeDependencies, | ||
createIndexTransform: _factoriesAny.createIndexTransform | ||
}; | ||
exports.indexTransformDependencies = indexTransformDependencies; |
@@ -9,2 +9,3 @@ "use strict"; | ||
var _dependenciesCompareGenerated = require("./dependenciesCompare.generated.js"); | ||
var _dependenciesIsIntegerGenerated = require("./dependenciesIsInteger.generated.js"); | ||
var _dependenciesMultiplyGenerated = require("./dependenciesMultiply.generated.js"); | ||
@@ -22,2 +23,3 @@ var _dependenciesPartitionSelectGenerated = require("./dependenciesPartitionSelect.generated.js"); | ||
compareDependencies: _dependenciesCompareGenerated.compareDependencies, | ||
isIntegerDependencies: _dependenciesIsIntegerGenerated.isIntegerDependencies, | ||
multiplyDependencies: _dependenciesMultiplyGenerated.multiplyDependencies, | ||
@@ -24,0 +26,0 @@ partitionSelectDependencies: _dependenciesPartitionSelectGenerated.partitionSelectDependencies, |
@@ -7,4 +7,6 @@ "use strict"; | ||
exports.subsetDependencies = void 0; | ||
var _dependenciesAddGenerated = require("./dependenciesAdd.generated.js"); | ||
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js"); | ||
var _dependenciesTypedGenerated = require("./dependenciesTyped.generated.js"); | ||
var _dependenciesZerosGenerated = require("./dependenciesZeros.generated.js"); | ||
var _factoriesAny = require("../../factoriesAny.js"); | ||
@@ -17,6 +19,8 @@ /** | ||
var subsetDependencies = { | ||
addDependencies: _dependenciesAddGenerated.addDependencies, | ||
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies, | ||
typedDependencies: _dependenciesTypedGenerated.typedDependencies, | ||
zerosDependencies: _dependenciesZerosGenerated.zerosDependencies, | ||
createSubset: _factoriesAny.createSubset | ||
}; | ||
exports.subsetDependencies = subsetDependencies; |
@@ -7,4 +7,6 @@ "use strict"; | ||
exports.subsetTransformDependencies = void 0; | ||
var _dependenciesAddGenerated = require("./dependenciesAdd.generated.js"); | ||
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js"); | ||
var _dependenciesTypedGenerated = require("./dependenciesTyped.generated.js"); | ||
var _dependenciesZerosGenerated = require("./dependenciesZeros.generated.js"); | ||
var _factoriesAny = require("../../factoriesAny.js"); | ||
@@ -17,6 +19,8 @@ /** | ||
var subsetTransformDependencies = { | ||
addDependencies: _dependenciesAddGenerated.addDependencies, | ||
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies, | ||
typedDependencies: _dependenciesTypedGenerated.typedDependencies, | ||
zerosDependencies: _dependenciesZerosGenerated.zerosDependencies, | ||
createSubsetTransform: _factoriesAny.createSubsetTransform | ||
}; | ||
exports.subsetTransformDependencies = subsetTransformDependencies; |
@@ -1218,2 +1218,8 @@ "use strict"; | ||
}); | ||
Object.defineProperty(exports, "zetaDependencies", { | ||
enumerable: true, | ||
get: function get() { | ||
return _dependenciesZetaGenerated.zetaDependencies; | ||
} | ||
}); | ||
var _dependenciesAbsGenerated = require("./dependenciesNumber/dependenciesAbs.generated.js"); | ||
@@ -1420,2 +1426,3 @@ var _dependenciesAccessorNodeGenerated = require("./dependenciesNumber/dependenciesAccessorNode.generated.js"); | ||
var _dependenciesXorGenerated = require("./dependenciesNumber/dependenciesXor.generated.js"); | ||
var _dependenciesZetaGenerated = require("./dependenciesNumber/dependenciesZeta.generated.js"); | ||
var _allFactoriesNumber = require("./allFactoriesNumber.js"); |
@@ -9,2 +9,3 @@ "use strict"; | ||
var _dependenciesCompareGenerated = require("./dependenciesCompare.generated.js"); | ||
var _dependenciesIsIntegerGenerated = require("./dependenciesIsInteger.generated.js"); | ||
var _dependenciesMultiplyGenerated = require("./dependenciesMultiply.generated.js"); | ||
@@ -22,2 +23,3 @@ var _dependenciesPartitionSelectGenerated = require("./dependenciesPartitionSelect.generated.js"); | ||
compareDependencies: _dependenciesCompareGenerated.compareDependencies, | ||
isIntegerDependencies: _dependenciesIsIntegerGenerated.isIntegerDependencies, | ||
multiplyDependencies: _dependenciesMultiplyGenerated.multiplyDependencies, | ||
@@ -24,0 +26,0 @@ partitionSelectDependencies: _dependenciesPartitionSelectGenerated.partitionSelectDependencies, |
@@ -89,2 +89,7 @@ "use strict"; | ||
exports.chain = chain; | ||
var IndexNode = (0, _factoriesAny.createIndexNode)({ | ||
Node: Node, | ||
size: _pureFunctionsAnyGenerated.size | ||
}); | ||
exports.IndexNode = IndexNode; | ||
var AccessorNode = (0, _factoriesAny.createAccessorNode)({ | ||
@@ -95,7 +100,2 @@ Node: Node, | ||
exports.AccessorNode = AccessorNode; | ||
var IndexNode = (0, _factoriesAny.createIndexNode)({ | ||
Node: Node, | ||
size: _pureFunctionsAnyGenerated.size | ||
}); | ||
exports.IndexNode = IndexNode; | ||
var AssignmentNode = (0, _factoriesAny.createAssignmentNode)({ | ||
@@ -414,3 +414,2 @@ matrix: _pureFunctionsAnyGenerated.matrix, | ||
squeeze: _pureFunctionsAnyGenerated.squeeze, | ||
subset: _pureFunctionsAnyGenerated.subset, | ||
transpose: _pureFunctionsAnyGenerated.transpose, | ||
@@ -443,6 +442,9 @@ xgcd: _pureFunctionsAnyGenerated.xgcd, | ||
smaller: _pureFunctionsAnyGenerated.smaller, | ||
subtract: _pureFunctionsAnyGenerated.subtract, | ||
to: _pureFunctionsAnyGenerated.to, | ||
unequal: _pureFunctionsAnyGenerated.unequal, | ||
usolve: _pureFunctionsAnyGenerated.usolve, | ||
xor: _pureFunctionsAnyGenerated.xor, | ||
add: _pureFunctionsAnyGenerated.add, | ||
atan2: _pureFunctionsAnyGenerated.atan2, | ||
bitAnd: _pureFunctionsAnyGenerated.bitAnd, | ||
@@ -455,2 +457,4 @@ bitXor: _pureFunctionsAnyGenerated.bitXor, | ||
deepEqual: _pureFunctionsAnyGenerated.deepEqual, | ||
diff: _pureFunctionsAnyGenerated.diff, | ||
distance: _pureFunctionsAnyGenerated.distance, | ||
dot: _pureFunctionsAnyGenerated.dot, | ||
@@ -463,2 +467,3 @@ equalText: _pureFunctionsAnyGenerated.equalText, | ||
log: _pureFunctionsAnyGenerated.log, | ||
lsolve: _pureFunctionsAnyGenerated.lsolve, | ||
matrixFromRows: _pureFunctionsAnyGenerated.matrixFromRows, | ||
@@ -470,10 +475,10 @@ min: _pureFunctionsAnyGenerated.min, | ||
partitionSelect: _pureFunctionsAnyGenerated.partitionSelect, | ||
quantileSeq: _pureFunctionsAnyGenerated.quantileSeq, | ||
qr: _pureFunctionsAnyGenerated.qr, | ||
rightLogShift: _pureFunctionsAnyGenerated.rightLogShift, | ||
smallerEq: _pureFunctionsAnyGenerated.smallerEq, | ||
subtract: _pureFunctionsAnyGenerated.subtract, | ||
slu: _pureFunctionsAnyGenerated.slu, | ||
subset: _pureFunctionsAnyGenerated.subset, | ||
sum: _pureFunctionsAnyGenerated.sum, | ||
trace: _pureFunctionsAnyGenerated.trace, | ||
usolve: _pureFunctionsAnyGenerated.usolve, | ||
usolveAll: _pureFunctionsAnyGenerated.usolveAll, | ||
zpk2tf: _pureFunctionsAnyGenerated.zpk2tf, | ||
and: _pureFunctionsAnyGenerated.and, | ||
bitOr: _pureFunctionsAnyGenerated.bitOr, | ||
@@ -485,4 +490,2 @@ ceil: _pureFunctionsAnyGenerated.ceil, | ||
det: _pureFunctionsAnyGenerated.det, | ||
diff: _pureFunctionsAnyGenerated.diff, | ||
distance: _pureFunctionsAnyGenerated.distance, | ||
dotMultiply: _pureFunctionsAnyGenerated.dotMultiply, | ||
@@ -494,7 +497,5 @@ fix: _pureFunctionsAnyGenerated.fix, | ||
log1p: _pureFunctionsAnyGenerated.log1p, | ||
lsolve: _pureFunctionsAnyGenerated.lsolve, | ||
lsolveAll: _pureFunctionsAnyGenerated.lsolveAll, | ||
max: _pureFunctionsAnyGenerated.max, | ||
qr: _pureFunctionsAnyGenerated.qr, | ||
range: _pureFunctionsAnyGenerated.range, | ||
row: _pureFunctionsAnyGenerated.row, | ||
quantileSeq: _pureFunctionsAnyGenerated.quantileSeq, | ||
setCartesian: _pureFunctionsAnyGenerated.setCartesian, | ||
@@ -504,12 +505,11 @@ setDistinct: _pureFunctionsAnyGenerated.setDistinct, | ||
setPowerset: _pureFunctionsAnyGenerated.setPowerset, | ||
slu: _pureFunctionsAnyGenerated.slu, | ||
smallerEq: _pureFunctionsAnyGenerated.smallerEq, | ||
sort: _pureFunctionsAnyGenerated.sort, | ||
sum: _pureFunctionsAnyGenerated.sum, | ||
usolveAll: _pureFunctionsAnyGenerated.usolveAll, | ||
atan2: _pureFunctionsAnyGenerated.atan2, | ||
column: _pureFunctionsAnyGenerated.column, | ||
lsolveAll: _pureFunctionsAnyGenerated.lsolveAll, | ||
and: _pureFunctionsAnyGenerated.and, | ||
range: _pureFunctionsAnyGenerated.range, | ||
row: _pureFunctionsAnyGenerated.row, | ||
setDifference: _pureFunctionsAnyGenerated.setDifference, | ||
setMultiplicity: _pureFunctionsAnyGenerated.setMultiplicity, | ||
setSymDifference: _pureFunctionsAnyGenerated.setSymDifference, | ||
column: _pureFunctionsAnyGenerated.column, | ||
inv: _pureFunctionsAnyGenerated.inv, | ||
@@ -604,2 +604,3 @@ lup: _pureFunctionsAnyGenerated.lup, | ||
std: _pureFunctionsAnyGenerated.std, | ||
zeta: _pureFunctionsAnyGenerated.zeta, | ||
freqz: _pureFunctionsAnyGenerated.freqz, | ||
@@ -629,6 +630,2 @@ norm: _pureFunctionsAnyGenerated.norm, | ||
}), | ||
subset: (0, _factoriesAny.createSubsetTransform)({ | ||
matrix: _pureFunctionsAnyGenerated.matrix, | ||
typed: _pureFunctionsAnyGenerated.typed | ||
}), | ||
concat: (0, _factoriesAny.createConcatTransform)({ | ||
@@ -645,8 +642,17 @@ isInteger: _pureFunctionsAnyGenerated.isInteger, | ||
}), | ||
sum: (0, _factoriesAny.createSumTransform)({ | ||
quantileSeq: (0, _factoriesAny.createQuantileSeqTransform)({ | ||
add: _pureFunctionsAnyGenerated.add, | ||
config: _configReadonly.config, | ||
numeric: _pureFunctionsAnyGenerated.numeric, | ||
compare: _pureFunctionsAnyGenerated.compare, | ||
isInteger: _pureFunctionsAnyGenerated.isInteger, | ||
multiply: _pureFunctionsAnyGenerated.multiply, | ||
partitionSelect: _pureFunctionsAnyGenerated.partitionSelect, | ||
typed: _pureFunctionsAnyGenerated.typed | ||
}), | ||
diff: (0, _factoriesAny.createDiffTransform)({ | ||
bignumber: _pureFunctionsAnyGenerated.bignumber, | ||
matrix: _pureFunctionsAnyGenerated.matrix, | ||
number: _pureFunctionsAnyGenerated.number, | ||
subtract: _pureFunctionsAnyGenerated.subtract, | ||
typed: _pureFunctionsAnyGenerated.typed | ||
}), | ||
min: (0, _factoriesAny.createMinTransform)({ | ||
@@ -658,2 +664,8 @@ config: _configReadonly.config, | ||
}), | ||
subset: (0, _factoriesAny.createSubsetTransform)({ | ||
add: _pureFunctionsAnyGenerated.add, | ||
matrix: _pureFunctionsAnyGenerated.matrix, | ||
typed: _pureFunctionsAnyGenerated.typed, | ||
zeros: _pureFunctionsAnyGenerated.zeros | ||
}), | ||
cumsum: (0, _factoriesAny.createCumSumTransform)({ | ||
@@ -664,12 +676,12 @@ add: _pureFunctionsAnyGenerated.add, | ||
}), | ||
diff: (0, _factoriesAny.createDiffTransform)({ | ||
bignumber: _pureFunctionsAnyGenerated.bignumber, | ||
matrix: _pureFunctionsAnyGenerated.matrix, | ||
number: _pureFunctionsAnyGenerated.number, | ||
subtract: _pureFunctionsAnyGenerated.subtract, | ||
index: (0, _factoriesAny.createIndexTransform)({ | ||
Index: _pureFunctionsAnyGenerated.Index, | ||
getMatrixDataType: _pureFunctionsAnyGenerated.getMatrixDataType | ||
}), | ||
sum: (0, _factoriesAny.createSumTransform)({ | ||
add: _pureFunctionsAnyGenerated.add, | ||
config: _configReadonly.config, | ||
numeric: _pureFunctionsAnyGenerated.numeric, | ||
typed: _pureFunctionsAnyGenerated.typed | ||
}), | ||
index: (0, _factoriesAny.createIndexTransform)({ | ||
Index: _pureFunctionsAnyGenerated.Index | ||
}), | ||
range: (0, _factoriesAny.createRangeTransform)({ | ||
@@ -741,7 +753,7 @@ bignumber: _pureFunctionsAnyGenerated.bignumber, | ||
SparseMatrix: _pureFunctionsAnyGenerated.SparseMatrix, | ||
AccessorNode: AccessorNode, | ||
IndexNode: IndexNode, | ||
AssignmentNode: AssignmentNode, | ||
ImmutableDenseMatrix: _pureFunctionsAnyGenerated.ImmutableDenseMatrix, | ||
Index: _pureFunctionsAnyGenerated.Index, | ||
AccessorNode: AccessorNode, | ||
AssignmentNode: AssignmentNode, | ||
FibonacciHeap: _pureFunctionsAnyGenerated.FibonacciHeap, | ||
@@ -748,0 +760,0 @@ Spa: _pureFunctionsAnyGenerated.Spa, |
@@ -409,2 +409,3 @@ "use strict"; | ||
variance: _pureFunctionsNumberGenerated.variance, | ||
zeta: _pureFunctionsNumberGenerated.zeta, | ||
acsch: _pureFunctionsNumberGenerated.acsch, | ||
@@ -411,0 +412,0 @@ atan2: _pureFunctionsNumberGenerated.atan2, |
@@ -8,3 +8,3 @@ "use strict"; | ||
exports.or = exports.ones = exports.oct = exports.numeric = exports.number = exports.nuclearMagneton = exports.nthRoots = exports.nthRoot = exports.not = exports.norm = exports.neutronMass = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.molarVolume = exports.molarPlanckConstant = exports.molarMassC12 = exports.molarMass = exports.mode = exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrixFromRows = exports.matrixFromFunction = exports.matrixFromColumns = exports.matrix = exports.map = exports.magneticFluxQuantum = exports.magneticConstant = exports.mad = exports.lyap = exports.lusolve = exports.lup = exports.lsolveAll = exports.lsolve = exports.loschmidt = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.lgamma = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.kron = exports.klitzing = exports.kldivergence = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.invmod = exports.inverseConductanceQuantum = exports.inv = exports.intersect = exports.index = exports.im = exports.ifft = exports.identity = exports.i = exports.hypot = exports.hex = exports.hasNumericValue = exports.hartreeEnergy = exports.gravity = exports.gravitationConstant = exports.getMatrixDataType = exports.gcd = exports.gasConstant = exports.gamma = exports.freqz = exports.fraction = exports.format = exports.forEach = exports.floor = exports.flatten = exports.fix = exports.firstRadiation = exports.fineStructure = exports.filter = exports.fft = exports.fermiCoupling = exports.faraday = exports.factorial = exports.expm1 = exports.expm = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.elementaryCharge = exports.electronMass = exports.electricConstant = void 0; | ||
exports.zpk2tf = exports.zeros = exports.xor = exports.xgcd = exports.wienDisplacement = exports.weakMixingAngle = exports.version = exports.variance = exports.vacuumImpedance = exports.usolveAll = exports.usolve = exports.unit = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.transpose = exports.trace = exports.to = exports.thomsonCrossSection = exports.tau = exports.tanh = exports.tan = exports.sylvester = exports.sum = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.stefanBoltzmann = exports.std = exports.squeeze = exports.square = exports.sqrtm = exports.sqrt = exports.splitUnit = exports.speedOfLight = exports.sparse = exports.sort = exports.solveODE = exports.smallerEq = exports.smaller = exports.slu = exports.size = exports.sinh = exports.sin = exports.sign = exports.setUnion = exports.setSymDifference = exports.setSize = exports.setPowerset = exports.setMultiplicity = exports.setIsSubset = exports.setIntersect = exports.setDistinct = exports.setDifference = exports.setCartesian = exports.secondRadiation = exports.sech = exports.sec = exports.schur = exports.sackurTetrode = exports.rydberg = exports.row = exports.round = exports.rotationMatrix = exports.rotate = exports.rightLogShift = exports.rightArithShift = exports.resize = exports.reshape = exports.replacer = exports.reducedPlanckConstant = exports.re = exports.range = exports.randomInt = exports.random = exports.quantumOfCirculation = exports.quantileSeq = exports.qr = exports.protonMass = exports.prod = exports.print = exports.pow = exports.polynomialRoot = exports.planckTime = exports.planckTemperature = exports.planckMass = exports.planckLength = exports.planckConstant = exports.planckCharge = exports.pinv = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = void 0; | ||
exports.zpk2tf = exports.zeta = exports.zeros = exports.xor = exports.xgcd = exports.wienDisplacement = exports.weakMixingAngle = exports.version = exports.variance = exports.vacuumImpedance = exports.usolveAll = exports.usolve = exports.unit = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.transpose = exports.trace = exports.to = exports.thomsonCrossSection = exports.tau = exports.tanh = exports.tan = exports.sylvester = exports.sum = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.stefanBoltzmann = exports.std = exports.squeeze = exports.square = exports.sqrtm = exports.sqrt = exports.splitUnit = exports.speedOfLight = exports.sparse = exports.sort = exports.solveODE = exports.smallerEq = exports.smaller = exports.slu = exports.size = exports.sinh = exports.sin = exports.sign = exports.setUnion = exports.setSymDifference = exports.setSize = exports.setPowerset = exports.setMultiplicity = exports.setIsSubset = exports.setIntersect = exports.setDistinct = exports.setDifference = exports.setCartesian = exports.secondRadiation = exports.sech = exports.sec = exports.schur = exports.sackurTetrode = exports.rydberg = exports.row = exports.round = exports.rotationMatrix = exports.rotate = exports.rightLogShift = exports.rightArithShift = exports.resize = exports.reshape = exports.replacer = exports.reducedPlanckConstant = exports.re = exports.range = exports.randomInt = exports.random = exports.quantumOfCirculation = exports.quantileSeq = exports.qr = exports.protonMass = exports.prod = exports.print = exports.pow = exports.polynomialRoot = exports.planckTime = exports.planckTemperature = exports.planckMass = exports.planckLength = exports.planckConstant = exports.planckCharge = exports.pinv = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = void 0; | ||
var _configReadonly = require("./configReadonly.js"); | ||
@@ -550,7 +550,2 @@ var _factoriesAny = require("../factoriesAny.js"); | ||
exports.squeeze = squeeze; | ||
var subset = /* #__PURE__ */(0, _factoriesAny.createSubset)({ | ||
matrix: matrix, | ||
typed: typed | ||
}); | ||
exports.subset = subset; | ||
var transpose = /* #__PURE__ */(0, _factoriesAny.createTranspose)({ | ||
@@ -751,2 +746,12 @@ matrix: matrix, | ||
exports.smaller = smaller; | ||
var subtract = /* #__PURE__ */(0, _factoriesAny.createSubtract)({ | ||
DenseMatrix: DenseMatrix, | ||
addScalar: addScalar, | ||
concat: concat, | ||
equalScalar: equalScalar, | ||
matrix: matrix, | ||
typed: typed, | ||
unaryMinus: unaryMinus | ||
}); | ||
exports.subtract = subtract; | ||
var to = /* #__PURE__ */(0, _factoriesAny.createTo)({ | ||
@@ -767,2 +772,12 @@ concat: concat, | ||
exports.unequal = unequal; | ||
var usolve = /* #__PURE__ */(0, _factoriesAny.createUsolve)({ | ||
DenseMatrix: DenseMatrix, | ||
divideScalar: divideScalar, | ||
equalScalar: equalScalar, | ||
matrix: matrix, | ||
multiplyScalar: multiplyScalar, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.usolve = usolve; | ||
var xor = /* #__PURE__ */(0, _factoriesAny.createXor)({ | ||
@@ -785,2 +800,11 @@ DenseMatrix: DenseMatrix, | ||
exports.add = add; | ||
var atan2 = /* #__PURE__ */(0, _factoriesAny.createAtan2)({ | ||
BigNumber: BigNumber, | ||
DenseMatrix: DenseMatrix, | ||
concat: concat, | ||
equalScalar: equalScalar, | ||
matrix: matrix, | ||
typed: typed | ||
}); | ||
exports.atan2 = atan2; | ||
var bitAnd = /* #__PURE__ */(0, _factoriesAny.createBitAnd)({ | ||
@@ -838,2 +862,20 @@ concat: concat, | ||
exports.deepEqual = deepEqual; | ||
var diff = /* #__PURE__ */(0, _factoriesAny.createDiff)({ | ||
matrix: matrix, | ||
number: number, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.diff = diff; | ||
var distance = /* #__PURE__ */(0, _factoriesAny.createDistance)({ | ||
abs: abs, | ||
addScalar: addScalar, | ||
deepEqual: deepEqual, | ||
divideScalar: divideScalar, | ||
multiplyScalar: multiplyScalar, | ||
sqrt: sqrt, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.distance = distance; | ||
var dot = /* #__PURE__ */(0, _factoriesAny.createDot)({ | ||
@@ -880,3 +922,4 @@ addScalar: addScalar, | ||
var Index = /* #__PURE__ */(0, _factoriesAny.createIndexClass)({ | ||
ImmutableDenseMatrix: ImmutableDenseMatrix | ||
ImmutableDenseMatrix: ImmutableDenseMatrix, | ||
getMatrixDataType: getMatrixDataType | ||
}); | ||
@@ -911,2 +954,12 @@ exports.Index = Index; | ||
exports.log = log; | ||
var lsolve = /* #__PURE__ */(0, _factoriesAny.createLsolve)({ | ||
DenseMatrix: DenseMatrix, | ||
divideScalar: divideScalar, | ||
equalScalar: equalScalar, | ||
matrix: matrix, | ||
multiplyScalar: multiplyScalar, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.lsolve = lsolve; | ||
var matrixFromRows = /* #__PURE__ */(0, _factoriesAny.createMatrixFromRows)({ | ||
@@ -957,10 +1010,20 @@ flatten: flatten, | ||
exports.partitionSelect = partitionSelect; | ||
var quantileSeq = /* #__PURE__ */(0, _factoriesAny.createQuantileSeq)({ | ||
add: add, | ||
compare: compare, | ||
multiply: multiply, | ||
partitionSelect: partitionSelect, | ||
typed: typed | ||
var qr = /* #__PURE__ */(0, _factoriesAny.createQr)({ | ||
addScalar: addScalar, | ||
complex: complex, | ||
conj: conj, | ||
divideScalar: divideScalar, | ||
equal: equal, | ||
identity: identity, | ||
isZero: isZero, | ||
matrix: matrix, | ||
multiplyScalar: multiplyScalar, | ||
sign: sign, | ||
sqrt: sqrt, | ||
subtract: subtract, | ||
typed: typed, | ||
unaryMinus: unaryMinus, | ||
zeros: zeros | ||
}); | ||
exports.quantileSeq = quantileSeq; | ||
exports.qr = qr; | ||
var rightLogShift = /* #__PURE__ */(0, _factoriesAny.createRightLogShift)({ | ||
@@ -975,20 +1038,29 @@ DenseMatrix: DenseMatrix, | ||
exports.rightLogShift = rightLogShift; | ||
var smallerEq = /* #__PURE__ */(0, _factoriesAny.createSmallerEq)({ | ||
DenseMatrix: DenseMatrix, | ||
concat: concat, | ||
config: _configReadonly.config, | ||
matrix: matrix, | ||
var slu = /* #__PURE__ */(0, _factoriesAny.createSlu)({ | ||
SparseMatrix: SparseMatrix, | ||
abs: abs, | ||
add: add, | ||
divideScalar: divideScalar, | ||
larger: larger, | ||
largerEq: largerEq, | ||
multiply: multiply, | ||
subtract: subtract, | ||
transpose: transpose, | ||
typed: typed | ||
}); | ||
exports.smallerEq = smallerEq; | ||
var subtract = /* #__PURE__ */(0, _factoriesAny.createSubtract)({ | ||
DenseMatrix: DenseMatrix, | ||
addScalar: addScalar, | ||
concat: concat, | ||
equalScalar: equalScalar, | ||
exports.slu = slu; | ||
var subset = /* #__PURE__ */(0, _factoriesAny.createSubset)({ | ||
add: add, | ||
matrix: matrix, | ||
typed: typed, | ||
unaryMinus: unaryMinus | ||
zeros: zeros | ||
}); | ||
exports.subtract = subtract; | ||
exports.subset = subset; | ||
var sum = /* #__PURE__ */(0, _factoriesAny.createSum)({ | ||
add: add, | ||
config: _configReadonly.config, | ||
numeric: numeric, | ||
typed: typed | ||
}); | ||
exports.sum = sum; | ||
var trace = /* #__PURE__ */(0, _factoriesAny.createTrace)({ | ||
@@ -1000,3 +1072,3 @@ add: add, | ||
exports.trace = trace; | ||
var usolve = /* #__PURE__ */(0, _factoriesAny.createUsolve)({ | ||
var usolveAll = /* #__PURE__ */(0, _factoriesAny.createUsolveAll)({ | ||
DenseMatrix: DenseMatrix, | ||
@@ -1010,3 +1082,3 @@ divideScalar: divideScalar, | ||
}); | ||
exports.usolve = usolve; | ||
exports.usolveAll = usolveAll; | ||
var zpk2tf = /* #__PURE__ */(0, _factoriesAny.createZpk2tf)({ | ||
@@ -1020,11 +1092,2 @@ Complex: Complex, | ||
exports.zpk2tf = zpk2tf; | ||
var and = /* #__PURE__ */(0, _factoriesAny.createAnd)({ | ||
concat: concat, | ||
equalScalar: equalScalar, | ||
matrix: matrix, | ||
not: not, | ||
typed: typed, | ||
zeros: zeros | ||
}); | ||
exports.and = and; | ||
var bitOr = /* #__PURE__ */(0, _factoriesAny.createBitOr)({ | ||
@@ -1080,20 +1143,2 @@ DenseMatrix: DenseMatrix, | ||
exports.det = det; | ||
var diff = /* #__PURE__ */(0, _factoriesAny.createDiff)({ | ||
matrix: matrix, | ||
number: number, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.diff = diff; | ||
var distance = /* #__PURE__ */(0, _factoriesAny.createDistance)({ | ||
abs: abs, | ||
addScalar: addScalar, | ||
deepEqual: deepEqual, | ||
divideScalar: divideScalar, | ||
multiplyScalar: multiplyScalar, | ||
sqrt: sqrt, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.distance = distance; | ||
var dotMultiply = /* #__PURE__ */(0, _factoriesAny.createDotMultiply)({ | ||
@@ -1161,3 +1206,3 @@ concat: concat, | ||
exports.log1p = log1p; | ||
var lsolve = /* #__PURE__ */(0, _factoriesAny.createLsolve)({ | ||
var lsolveAll = /* #__PURE__ */(0, _factoriesAny.createLsolveAll)({ | ||
DenseMatrix: DenseMatrix, | ||
@@ -1171,3 +1216,3 @@ divideScalar: divideScalar, | ||
}); | ||
exports.lsolve = lsolve; | ||
exports.lsolveAll = lsolveAll; | ||
var max = /* #__PURE__ */(0, _factoriesAny.createMax)({ | ||
@@ -1180,40 +1225,11 @@ config: _configReadonly.config, | ||
exports.max = max; | ||
var qr = /* #__PURE__ */(0, _factoriesAny.createQr)({ | ||
addScalar: addScalar, | ||
complex: complex, | ||
conj: conj, | ||
divideScalar: divideScalar, | ||
equal: equal, | ||
identity: identity, | ||
isZero: isZero, | ||
matrix: matrix, | ||
multiplyScalar: multiplyScalar, | ||
sign: sign, | ||
sqrt: sqrt, | ||
subtract: subtract, | ||
typed: typed, | ||
unaryMinus: unaryMinus, | ||
zeros: zeros | ||
}); | ||
exports.qr = qr; | ||
var range = /* #__PURE__ */(0, _factoriesAny.createRange)({ | ||
bignumber: bignumber, | ||
matrix: matrix, | ||
var quantileSeq = /* #__PURE__ */(0, _factoriesAny.createQuantileSeq)({ | ||
add: add, | ||
config: _configReadonly.config, | ||
isPositive: isPositive, | ||
larger: larger, | ||
largerEq: largerEq, | ||
smaller: smaller, | ||
smallerEq: smallerEq, | ||
compare: compare, | ||
isInteger: isInteger, | ||
multiply: multiply, | ||
partitionSelect: partitionSelect, | ||
typed: typed | ||
}); | ||
exports.range = range; | ||
var row = /* #__PURE__ */(0, _factoriesAny.createRow)({ | ||
Index: Index, | ||
matrix: matrix, | ||
range: range, | ||
typed: typed | ||
}); | ||
exports.row = row; | ||
exports.quantileSeq = quantileSeq; | ||
var setCartesian = /* #__PURE__ */(0, _factoriesAny.createSetCartesian)({ | ||
@@ -1253,15 +1269,10 @@ DenseMatrix: DenseMatrix, | ||
exports.setPowerset = setPowerset; | ||
var slu = /* #__PURE__ */(0, _factoriesAny.createSlu)({ | ||
SparseMatrix: SparseMatrix, | ||
abs: abs, | ||
add: add, | ||
divideScalar: divideScalar, | ||
larger: larger, | ||
largerEq: largerEq, | ||
multiply: multiply, | ||
subtract: subtract, | ||
transpose: transpose, | ||
var smallerEq = /* #__PURE__ */(0, _factoriesAny.createSmallerEq)({ | ||
DenseMatrix: DenseMatrix, | ||
concat: concat, | ||
config: _configReadonly.config, | ||
matrix: matrix, | ||
typed: typed | ||
}); | ||
exports.slu = slu; | ||
exports.smallerEq = smallerEq; | ||
var sort = /* #__PURE__ */(0, _factoriesAny.createSort)({ | ||
@@ -1274,29 +1285,25 @@ compare: compare, | ||
exports.sort = sort; | ||
var sum = /* #__PURE__ */(0, _factoriesAny.createSum)({ | ||
add: add, | ||
config: _configReadonly.config, | ||
numeric: numeric, | ||
typed: typed | ||
}); | ||
exports.sum = sum; | ||
var usolveAll = /* #__PURE__ */(0, _factoriesAny.createUsolveAll)({ | ||
DenseMatrix: DenseMatrix, | ||
divideScalar: divideScalar, | ||
var and = /* #__PURE__ */(0, _factoriesAny.createAnd)({ | ||
concat: concat, | ||
equalScalar: equalScalar, | ||
matrix: matrix, | ||
multiplyScalar: multiplyScalar, | ||
subtract: subtract, | ||
typed: typed | ||
not: not, | ||
typed: typed, | ||
zeros: zeros | ||
}); | ||
exports.usolveAll = usolveAll; | ||
var atan2 = /* #__PURE__ */(0, _factoriesAny.createAtan2)({ | ||
BigNumber: BigNumber, | ||
DenseMatrix: DenseMatrix, | ||
concat: concat, | ||
equalScalar: equalScalar, | ||
exports.and = and; | ||
var range = /* #__PURE__ */(0, _factoriesAny.createRange)({ | ||
bignumber: bignumber, | ||
matrix: matrix, | ||
add: add, | ||
config: _configReadonly.config, | ||
isPositive: isPositive, | ||
larger: larger, | ||
largerEq: largerEq, | ||
smaller: smaller, | ||
smallerEq: smallerEq, | ||
typed: typed | ||
}); | ||
exports.atan2 = atan2; | ||
var column = /* #__PURE__ */(0, _factoriesAny.createColumn)({ | ||
exports.range = range; | ||
var row = /* #__PURE__ */(0, _factoriesAny.createRow)({ | ||
Index: Index, | ||
@@ -1307,13 +1314,3 @@ matrix: matrix, | ||
}); | ||
exports.column = column; | ||
var lsolveAll = /* #__PURE__ */(0, _factoriesAny.createLsolveAll)({ | ||
DenseMatrix: DenseMatrix, | ||
divideScalar: divideScalar, | ||
equalScalar: equalScalar, | ||
matrix: matrix, | ||
multiplyScalar: multiplyScalar, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.lsolveAll = lsolveAll; | ||
exports.row = row; | ||
var setDifference = /* #__PURE__ */(0, _factoriesAny.createSetDifference)({ | ||
@@ -1351,2 +1348,9 @@ DenseMatrix: DenseMatrix, | ||
exports.Spa = Spa; | ||
var column = /* #__PURE__ */(0, _factoriesAny.createColumn)({ | ||
Index: Index, | ||
matrix: matrix, | ||
range: range, | ||
typed: typed | ||
}); | ||
exports.column = column; | ||
var inv = /* #__PURE__ */(0, _factoriesAny.createInv)({ | ||
@@ -1976,2 +1980,21 @@ abs: abs, | ||
exports.std = std; | ||
var zeta = /* #__PURE__ */(0, _factoriesAny.createZeta)({ | ||
BigNumber: BigNumber, | ||
Complex: Complex, | ||
add: add, | ||
config: _configReadonly.config, | ||
divide: divide, | ||
equal: equal, | ||
factorial: factorial, | ||
gamma: gamma, | ||
isNegative: isNegative, | ||
multiply: multiply, | ||
pi: pi, | ||
pow: pow, | ||
sin: sin, | ||
smallerEq: smallerEq, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.zeta = zeta; | ||
var freqz = /* #__PURE__ */(0, _factoriesAny.createFreqz)({ | ||
@@ -1978,0 +2001,0 @@ Complex: Complex, |
@@ -7,3 +7,3 @@ "use strict"; | ||
exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrix = exports.map = exports.mad = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.lgamma = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.index = exports.hypot = exports.hasNumericValue = exports.gcd = exports.gamma = exports.format = exports.forEach = exports.floor = exports.fix = exports.filter = exports.factorial = exports.expm1 = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.e = exports.divideScalar = exports.divide = exports.deepEqual = exports.cumsum = exports.cube = exports.csch = exports.csc = exports.coth = exports.cot = exports.cosh = exports.cos = exports.composition = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.clone = exports.ceil = exports.cbrt = exports.catalan = exports["boolean"] = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bellNumbers = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = void 0; | ||
exports.xor = exports.xgcd = exports.version = exports.variance = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.tau = exports.tanh = exports.tan = exports.sum = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.std = exports.square = exports.sqrt = exports.smallerEq = exports.smaller = exports.size = exports.sinh = exports.sin = exports.sign = exports.sech = exports.sec = exports.round = exports.rightLogShift = exports.rightArithShift = exports.replacer = exports.range = exports.randomInt = exports.random = exports.quantileSeq = exports.prod = exports.print = exports.pow = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.numeric = exports.number = exports.nthRoot = exports.not = exports.norm = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.mode = void 0; | ||
exports.zeta = exports.xor = exports.xgcd = exports.version = exports.variance = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.tau = exports.tanh = exports.tan = exports.sum = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.std = exports.square = exports.sqrt = exports.smallerEq = exports.smaller = exports.size = exports.sinh = exports.sin = exports.sign = exports.sech = exports.sec = exports.round = exports.rightLogShift = exports.rightArithShift = exports.replacer = exports.range = exports.randomInt = exports.random = exports.quantileSeq = exports.prod = exports.print = exports.pow = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.numeric = exports.number = exports.nthRoot = exports.not = exports.norm = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.mode = void 0; | ||
var _configReadonly = require("./configReadonly.js"); | ||
@@ -509,2 +509,3 @@ var _factoriesNumber = require("../factoriesNumber.js"); | ||
compare: compare, | ||
isInteger: isInteger, | ||
multiply: multiply, | ||
@@ -551,2 +552,19 @@ partitionSelect: partitionSelect, | ||
exports.variance = variance; | ||
var zeta = /* #__PURE__ */(0, _factoriesNumber.createZeta)({ | ||
add: add, | ||
config: _configReadonly.config, | ||
divide: divide, | ||
equal: equal, | ||
factorial: factorial, | ||
gamma: gamma, | ||
isNegative: isNegative, | ||
multiply: multiply, | ||
pi: pi, | ||
pow: pow, | ||
sin: sin, | ||
smallerEq: smallerEq, | ||
subtract: subtract, | ||
typed: typed | ||
}); | ||
exports.zeta = zeta; | ||
var acsch = /* #__PURE__ */(0, _factoriesNumber.createAcsch)({ | ||
@@ -553,0 +571,0 @@ typed: typed |
@@ -12,5 +12,5 @@ "use strict"; | ||
description: 'Create an index to get or replace a subset of a matrix', | ||
examples: ['[1, 2, 3]', 'A = [1, 2, 3; 4, 5, 6]', 'A[1, :]', 'A[1, 2] = 50', 'A[1:2, 1:2] = ones(2, 2)'], | ||
examples: ['A = [1, 2, 3; 4, 5, 6]', 'A[1, :]', 'A[1, 2] = 50', 'A[1:2, 1:2] = 1', 'B = [1, 2, 3]', 'B[B>1 and B<3]'], | ||
seealso: ['bignumber', 'boolean', 'complex', 'matrix,', 'number', 'range', 'string', 'unit'] | ||
}; | ||
exports.indexDocs = indexDocs; |
@@ -193,2 +193,3 @@ "use strict"; | ||
var _erf = require("./function/special/erf.js"); | ||
var _zeta = require("./function/special/zeta.js"); | ||
var _mad = require("./function/statistics/mad.js"); | ||
@@ -663,2 +664,3 @@ var _max = require("./function/statistics/max.js"); | ||
erf: _erf.erfDocs, | ||
zeta: _zeta.zetaDocs, | ||
// functions - statistics | ||
@@ -665,0 +667,0 @@ cumsum: _cumsum.cumSumDocs, |
@@ -31,4 +31,9 @@ "use strict"; | ||
if (Array.isArray(object)) { | ||
// we use matrix.subset here instead of the function subset because we must not clone the contents | ||
return matrix(object).subset(index, value).valueOf(); | ||
var result = matrix(object).subset(index, value).valueOf(); | ||
// shallow copy all (updated) items into the original array | ||
result.forEach(function (item, index) { | ||
object[index] = item; | ||
}); | ||
return object; | ||
} else if (object && typeof object.subset === 'function') { | ||
@@ -35,0 +40,0 @@ // Matrix |
@@ -10,5 +10,6 @@ "use strict"; | ||
var name = 'index'; | ||
var dependencies = ['Index']; | ||
var dependencies = ['Index', 'getMatrixDataType']; | ||
var createIndexTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) { | ||
var Index = _ref.Index; | ||
var Index = _ref.Index, | ||
getMatrixDataType = _ref.getMatrixDataType; | ||
/** | ||
@@ -25,3 +26,3 @@ * Attach a transform function to math.index | ||
// change from one-based to zero based, and convert BigNumber to number | ||
// change from one-based to zero based, convert BigNumber to number and leave Array of Booleans as is | ||
if ((0, _is.isRange)(arg)) { | ||
@@ -35,5 +36,7 @@ arg.start--; | ||
} else if ((0, _is.isArray)(arg) || (0, _is.isMatrix)(arg)) { | ||
arg = arg.map(function (v) { | ||
return v - 1; | ||
}); | ||
if (getMatrixDataType(arg) !== 'boolean') { | ||
arg = arg.map(function (v) { | ||
return v - 1; | ||
}); | ||
} | ||
} else if ((0, _is.isNumber)(arg)) { | ||
@@ -40,0 +43,0 @@ arg--; |
@@ -11,9 +11,13 @@ "use strict"; | ||
var name = 'subset'; | ||
var dependencies = ['typed', 'matrix']; | ||
var dependencies = ['typed', 'matrix', 'zeros', 'add']; | ||
var createSubsetTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) { | ||
var typed = _ref.typed, | ||
matrix = _ref.matrix; | ||
matrix = _ref.matrix, | ||
zeros = _ref.zeros, | ||
add = _ref.add; | ||
var subset = (0, _subset.createSubset)({ | ||
typed: typed, | ||
matrix: matrix | ||
matrix: matrix, | ||
zeros: zeros, | ||
add: add | ||
}); | ||
@@ -20,0 +24,0 @@ |
@@ -782,2 +782,8 @@ "use strict"; | ||
exports.createXor = void 0; | ||
Object.defineProperty(exports, "createZeta", { | ||
enumerable: true, | ||
get: function get() { | ||
return _zeta.createZeta; | ||
} | ||
}); | ||
var _index = require("./plain/number/index.js"); | ||
@@ -859,2 +865,3 @@ var _factory = require("./utils/factory.js"); | ||
var _erf = require("./function/special/erf.js"); | ||
var _zeta = require("./function/special/zeta.js"); | ||
var _mode = require("./function/statistics/mode.js"); | ||
@@ -861,0 +868,0 @@ var _prod = require("./function/statistics/prod.js"); |
@@ -100,3 +100,3 @@ "use strict"; | ||
while (matrices.length) { | ||
res = _concat(res, matrices.shift(), dim, 0); | ||
res = (0, _array.concat)(res, matrices.shift(), dim); | ||
} | ||
@@ -110,29 +110,2 @@ return asMatrix ? matrix(res) : res; | ||
}); | ||
/** | ||
* Recursively concatenate two matrices. | ||
* The contents of the matrices is not cloned. | ||
* @param {Array} a Multi dimensional array | ||
* @param {Array} b Multi dimensional array | ||
* @param {number} concatDim The dimension on which to concatenate (zero-based) | ||
* @param {number} dim The current dim (zero-based) | ||
* @return {Array} c The concatenated matrix | ||
* @private | ||
*/ | ||
exports.createConcat = createConcat; | ||
function _concat(a, b, concatDim, dim) { | ||
if (dim < concatDim) { | ||
// recurse into next dimension | ||
if (a.length !== b.length) { | ||
throw new _DimensionError.DimensionError(a.length, b.length); | ||
} | ||
var c = []; | ||
for (var i = 0; i < a.length; i++) { | ||
c[i] = _concat(a[i], b[i], concatDim, dim + 1); | ||
} | ||
return c; | ||
} else { | ||
// concatenate this dimension | ||
return a.concat(b); | ||
} | ||
} | ||
exports.createConcat = createConcat; |
@@ -14,6 +14,8 @@ "use strict"; | ||
var name = 'subset'; | ||
var dependencies = ['typed', 'matrix']; | ||
var dependencies = ['typed', 'matrix', 'zeros', 'add']; | ||
var createSubset = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) { | ||
var typed = _ref.typed, | ||
matrix = _ref.matrix; | ||
matrix = _ref.matrix, | ||
zeros = _ref.zeros, | ||
add = _ref.add; | ||
/** | ||
@@ -30,9 +32,11 @@ * Get or set a subset of a matrix or string. | ||
* const d = [[1, 2], [3, 4]] | ||
* math.subset(d, math.index(1, 0)) // returns 3 | ||
* math.subset(d, math.index([0, 1], 1)) // returns [[2], [4]] | ||
* math.subset(d, math.index(1, 0)) // returns 3 | ||
* math.subset(d, math.index([0, 1], 1)) // returns [[2], [4]] | ||
* math.subset(d, math.index([false, true], 0)) // returns [[3]] | ||
* | ||
* // replace a subset | ||
* const e = [] | ||
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]] | ||
* const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 6], [0, 7]] | ||
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 0, 6]] | ||
* const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 0, 6], [0, 7, 0]] | ||
* math.subset(g, math.index([false, true], 1), 8) // returns [[5, 0, 6], [0, 8, 0]] | ||
* | ||
@@ -45,3 +49,3 @@ * // get submatrix using ranges | ||
* ] | ||
* math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1,2,3],[4,5,6]] | ||
* math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1, 2, 3], [4, 5, 6]] | ||
* | ||
@@ -65,28 +69,44 @@ * See also: | ||
*/ | ||
return typed(name, { | ||
// get subset | ||
'Array, Index': function ArrayIndex(value, index) { | ||
var m = matrix(value); | ||
var subset = m.subset(index); // returns a Matrix | ||
return index.isScalar() ? subset : subset.valueOf(); // return an Array (like the input) | ||
}, | ||
'Matrix, Index': function MatrixIndex(value, index) { | ||
if ((0, _array.isEmptyIndex)(index)) { | ||
return matrix(); | ||
} | ||
(0, _array.validateIndexSourceSize)(value, index); | ||
return value.subset(index); | ||
}, | ||
'Array, Index': typed.referTo('Matrix, Index', function (subsetRef) { | ||
return function (value, index) { | ||
var subsetResult = subsetRef(matrix(value), index); | ||
return index.isScalar() ? subsetResult : subsetResult.valueOf(); | ||
}; | ||
}), | ||
'Object, Index': _getObjectProperty, | ||
'string, Index': _getSubstring, | ||
// set subset | ||
'Array, Index, any': function ArrayIndexAny(value, index, replacement) { | ||
return matrix((0, _object.clone)(value)).subset(index, replacement, undefined).valueOf(); | ||
}, | ||
'Array, Index, any, any': function ArrayIndexAnyAny(value, index, replacement, defaultValue) { | ||
return matrix((0, _object.clone)(value)).subset(index, replacement, defaultValue).valueOf(); | ||
}, | ||
'Matrix, Index, any': function MatrixIndexAny(value, index, replacement) { | ||
return value.clone().subset(index, replacement); | ||
}, | ||
'Matrix, Index, any, any': function MatrixIndexAnyAny(value, index, replacement, defaultValue) { | ||
return value.clone().subset(index, replacement, defaultValue); | ||
if ((0, _array.isEmptyIndex)(index)) { | ||
return value; | ||
} | ||
(0, _array.validateIndexSourceSize)(value, index); | ||
return value.clone().subset(index, _broadcastReplacement(replacement, index), defaultValue); | ||
}, | ||
'Array, Index, any, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) { | ||
return function (value, index, replacement, defaultValue) { | ||
var subsetResult = subsetRef(matrix(value), index, replacement, defaultValue); | ||
return subsetResult.isMatrix ? subsetResult.valueOf() : subsetResult; | ||
}; | ||
}), | ||
'Array, Index, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) { | ||
return function (value, index, replacement) { | ||
return subsetRef(matrix(value), index, replacement, undefined).valueOf(); | ||
}; | ||
}), | ||
'Matrix, Index, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) { | ||
return function (value, index, replacement) { | ||
return subsetRef(value, index, replacement, undefined); | ||
}; | ||
}), | ||
'string, Index, string': _setSubstring, | ||
@@ -96,2 +116,30 @@ 'string, Index, string, string': _setSubstring, | ||
}); | ||
/** | ||
* Broadcasts a replacment value to be the same size as index | ||
* @param {number | BigNumber | Array | Matrix} replacement Replacement value to try to broadcast | ||
* @param {*} index Index value | ||
* @returns broadcasted replacement that matches the size of index | ||
*/ | ||
function _broadcastReplacement(replacement, index) { | ||
if (typeof replacement === 'string') { | ||
throw new Error('can\'t boradcast a string'); | ||
} | ||
if (index._isScalar) { | ||
return replacement; | ||
} | ||
var indexSize = index.size(); | ||
if (indexSize.every(function (d) { | ||
return d > 0; | ||
})) { | ||
try { | ||
return add(replacement, zeros(indexSize)); | ||
} catch (error) { | ||
return replacement; | ||
} | ||
} else { | ||
return replacement; | ||
} | ||
} | ||
}); | ||
@@ -112,2 +160,6 @@ | ||
} | ||
if ((0, _array.isEmptyIndex)(index)) { | ||
return ''; | ||
} | ||
(0, _array.validateIndexSourceSize)(Array.from(str), index); | ||
if (index.size().length !== 1) { | ||
@@ -134,3 +186,3 @@ throw new _DimensionError.DimensionError(index.size().length, 1); | ||
* @param {string} replacement Replacement string | ||
* @param {string} [defaultValue] Default value to be uses when resizing | ||
* @param {string} [defaultValue] Default value to be used when resizing | ||
* the string. is ' ' by default | ||
@@ -145,2 +197,6 @@ * @returns {string} result | ||
} | ||
if ((0, _array.isEmptyIndex)(index)) { | ||
return str; | ||
} | ||
(0, _array.validateIndexSourceSize)(Array.from(str), index); | ||
if (index.size().length !== 1) { | ||
@@ -195,2 +251,5 @@ throw new _DimensionError.DimensionError(index.size().length, 1); | ||
function _getObjectProperty(object, index) { | ||
if ((0, _array.isEmptyIndex)(index)) { | ||
return undefined; | ||
} | ||
if (index.size().length !== 1) { | ||
@@ -215,2 +274,5 @@ throw new _DimensionError.DimensionError(index.size(), 1); | ||
function _setObjectProperty(object, index, replacement) { | ||
if ((0, _array.isEmptyIndex)(index)) { | ||
return object; | ||
} | ||
if (index.size().length !== 1) { | ||
@@ -217,0 +279,0 @@ throw new _DimensionError.DimensionError(index.size(), 1); |
@@ -8,7 +8,7 @@ "use strict"; | ||
var _is = require("../../utils/is.js"); | ||
var _number = require("../../utils/number.js"); | ||
var _array = require("../../utils/array.js"); | ||
var _factory = require("../../utils/factory.js"); | ||
var _apply = require("../matrix/apply.js"); | ||
var name = 'quantileSeq'; | ||
var dependencies = ['typed', 'add', 'multiply', 'partitionSelect', 'compare']; | ||
var dependencies = ['typed', 'add', 'multiply', 'partitionSelect', 'compare', 'isInteger']; | ||
var createQuantileSeq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) { | ||
@@ -19,3 +19,4 @@ var typed = _ref.typed, | ||
partitionSelect = _ref.partitionSelect, | ||
compare = _ref.compare; | ||
compare = _ref.compare, | ||
isInteger = _ref.isInteger; | ||
/** | ||
@@ -55,2 +56,36 @@ * Compute the prob order quantile of a matrix or a list with values. | ||
*/ | ||
var apply = (0, _apply.createApply)({ | ||
typed: typed, | ||
isInteger: isInteger | ||
}); | ||
/** | ||
* Check if array value types are valid, throw error otherwise. | ||
* @param {number | BigNumber | Unit} x | ||
* @param {number | BigNumber | Unit} x | ||
* @private | ||
*/ | ||
var validate = typed({ | ||
'number | BigNumber | Unit': function numberBigNumberUnit(x) { | ||
return x; | ||
} | ||
}); | ||
return typed(name, { | ||
'Array|Matrix, number|BigNumber|Array': function ArrayMatrixNumberBigNumberArray(data, prob) { | ||
return quantileSeq(data, prob, false); | ||
}, | ||
'Array|Matrix, number|BigNumber|Array, boolean': quantileSeq, | ||
'Array|Matrix, number|BigNumber|Array, number': function ArrayMatrixNumberBigNumberArrayNumber(data, prob, dim) { | ||
return _quantileSeqDim(data, prob, false, dim); | ||
}, | ||
'Array|Matrix, number|BigNumber|Array, boolean, number': function ArrayMatrixNumberBigNumberArrayBooleanNumber(data, prob, sorted, dim) { | ||
return _quantileSeqDim(data, prob, sorted, dim); | ||
} | ||
}); | ||
function _quantileSeqDim(data, prob, sorted, dim) { | ||
// return [1.3, 1.2] | ||
return apply(data, dim, function (x) { | ||
return quantileSeq(x, prob, sorted); | ||
}); | ||
} | ||
function quantileSeq(data, probOrN, sorted) { | ||
@@ -75,3 +110,3 @@ var probArr, dataArr, one; | ||
// quantileSeq([a, b, c, d, ...], N[,sorted]) | ||
if (!(0, _number.isInteger)(probOrN)) { | ||
if (!isInteger(probOrN)) { | ||
throw new Error('N must be a positive integer'); | ||
@@ -230,16 +265,3 @@ } | ||
} | ||
/** | ||
* Check if array value types are valid, throw error otherwise. | ||
* @param {number | BigNumber | Unit} x | ||
* @param {number | BigNumber | Unit} x | ||
* @private | ||
*/ | ||
var validate = typed({ | ||
'number | BigNumber | Unit': function numberBigNumberUnit(x) { | ||
return x; | ||
} | ||
}); | ||
return quantileSeq; | ||
}); | ||
exports.createQuantileSeq = createQuantileSeq; |
@@ -9,4 +9,4 @@ /** | ||
* | ||
* @version 11.9.1 | ||
* @date 2023-07-24 | ||
* @version 11.10.0 | ||
* @date 2023-08-23 | ||
* | ||
@@ -13,0 +13,0 @@ * @license |
@@ -342,2 +342,14 @@ "use strict"; | ||
// broadcast submatrix | ||
if (!(0, _object.deepStrictEqual)(sSize, iSize)) { | ||
try { | ||
if (sSize.length === 0) { | ||
submatrix = (0, _array.broadcastTo)([submatrix], iSize); | ||
} else { | ||
submatrix = (0, _array.broadcastTo)(submatrix, iSize); | ||
} | ||
sSize = (0, _array.arraySize)(submatrix); | ||
} catch (_unused) {} | ||
} | ||
// validate dimensions | ||
@@ -979,16 +991,14 @@ if (iSize.length < matrix._size.length) { | ||
* Preprocess data, which can be an Array or DenseMatrix with nested Arrays and | ||
* Matrices. Replaces all nested Matrices with Arrays | ||
* Matrices. Clones all (nested) Arrays, and replaces all nested Matrices with Arrays | ||
* @memberof DenseMatrix | ||
* @param {Array} data | ||
* @param {Array | Matrix} data | ||
* @return {Array} data | ||
*/ | ||
function preprocess(data) { | ||
for (var i = 0, ii = data.length; i < ii; i++) { | ||
var elem = data[i]; | ||
if ((0, _is.isArray)(elem)) { | ||
data[i] = preprocess(elem); | ||
} else if (elem && elem.isMatrix === true) { | ||
data[i] = preprocess(elem.valueOf()); | ||
} | ||
if ((0, _is.isMatrix)(data)) { | ||
return preprocess(data.valueOf()); | ||
} | ||
if ((0, _is.isArray)(data)) { | ||
return data.map(preprocess); | ||
} | ||
return data; | ||
@@ -995,0 +1005,0 @@ } |
@@ -7,4 +7,4 @@ "use strict"; | ||
exports.createIndex = void 0; | ||
var _is = require("../../../utils/is.js"); | ||
var _factory = require("../../../utils/factory.js"); | ||
var _is = require("../../../utils/is.js"); | ||
var name = 'index'; | ||
@@ -29,3 +29,3 @@ var dependencies = ['typed', 'Index']; | ||
* - An instance of `Range` | ||
* - A one-dimensional Array or a Matrix with numbers | ||
* - A one-dimensional Array or a Matrix with numbers or booleans | ||
* | ||
@@ -37,6 +37,8 @@ * Indexes must be zero-based, integer numbers. | ||
* const b = [1, 2, 3, 4, 5] | ||
* math.subset(b, math.index([1, 2, 3])) // returns [2, 3, 4] | ||
* math.subset(b, math.index([1, 2, 3])) // returns [2, 3, 4] | ||
* math.subset(b, math.index([false, true, true, true, false])) // returns [2, 3, 4] | ||
* | ||
* const a = math.matrix([[1, 2], [3, 4]]) | ||
* a.subset(math.index(0, 1)) // returns 2 | ||
* a.subset(math.index(0, [false, true])) // returns 2 | ||
* | ||
@@ -55,3 +57,3 @@ * See also: | ||
return arg.toNumber(); // convert BigNumber to Number | ||
} else if (Array.isArray(arg) || (0, _is.isMatrix)(arg)) { | ||
} else if ((0, _is.isArray)(arg) || (0, _is.isMatrix)(arg)) { | ||
return arg.map(function (elem) { | ||
@@ -58,0 +60,0 @@ // convert BigNumber to Number |
@@ -12,5 +12,6 @@ "use strict"; | ||
var name = 'Index'; | ||
var dependencies = ['ImmutableDenseMatrix']; | ||
var dependencies = ['ImmutableDenseMatrix', 'getMatrixDataType']; | ||
var createIndexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) { | ||
var ImmutableDenseMatrix = _ref.ImmutableDenseMatrix; | ||
var ImmutableDenseMatrix = _ref.ImmutableDenseMatrix, | ||
getMatrixDataType = _ref.getMatrixDataType; | ||
/** | ||
@@ -28,3 +29,5 @@ * Create an index. An Index can store ranges and sets for multiple dimensions. | ||
* An Array with the Set values | ||
* An Array with Booleans | ||
* A Matrix with the Set values | ||
* A Matrix with Booleans | ||
* | ||
@@ -42,11 +45,22 @@ * The parameters start, end, and step must be integer numbers. | ||
this._dimensions = []; | ||
this._sourceSize = []; | ||
this._isScalar = true; | ||
for (var i = 0, ii = arguments.length; i < ii; i++) { | ||
var arg = arguments[i]; | ||
var argIsArray = (0, _is.isArray)(arg); | ||
var argIsMatrix = (0, _is.isMatrix)(arg); | ||
var sourceSize = null; | ||
if ((0, _is.isRange)(arg)) { | ||
this._dimensions.push(arg); | ||
this._isScalar = false; | ||
} else if (Array.isArray(arg) || (0, _is.isMatrix)(arg)) { | ||
} else if (argIsArray || argIsMatrix) { | ||
// create matrix | ||
var m = _createImmutableMatrix(arg.valueOf()); | ||
var m = void 0; | ||
if (getMatrixDataType(arg) === 'boolean') { | ||
if (argIsArray) m = _createImmutableMatrix(_booleansArrayToNumbersForIndex(arg).valueOf()); | ||
if (argIsMatrix) m = _createImmutableMatrix(_booleansArrayToNumbersForIndex(arg._data).valueOf()); | ||
sourceSize = arg.valueOf().length; | ||
} else { | ||
m = _createImmutableMatrix(arg.valueOf()); | ||
} | ||
this._dimensions.push(m); | ||
@@ -56,3 +70,3 @@ // size | ||
// scalar | ||
if (size.length !== 1 || size[0] !== 1) { | ||
if (size.length !== 1 || size[0] !== 1 || sourceSize !== null) { | ||
this._isScalar = false; | ||
@@ -68,2 +82,3 @@ } | ||
} | ||
this._sourceSize.push(sourceSize); | ||
// TODO: implement support for wildcard '*' | ||
@@ -98,2 +113,3 @@ } | ||
index._isScalar = this._isScalar; | ||
index._sourceSize = this._sourceSize; | ||
return index; | ||
@@ -277,2 +293,18 @@ }; | ||
}); | ||
exports.createIndexClass = createIndexClass; | ||
/** | ||
* Receives an array of booleans and returns an array of Numbers for Index | ||
* @param {Array} booleanArrayIndex An array of booleans | ||
* @return {Array} A set of numbers ready for index | ||
*/ | ||
exports.createIndexClass = createIndexClass; | ||
function _booleansArrayToNumbersForIndex(booleanArrayIndex) { | ||
// gets an array of booleans and returns an array of numbers | ||
var indexOfNumbers = []; | ||
booleanArrayIndex.forEach(function (bool, idx) { | ||
if (bool) { | ||
indexOfNumbers.push(idx); | ||
} | ||
}); | ||
return indexOfNumbers; | ||
} |
@@ -9,2 +9,3 @@ "use strict"; | ||
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); | ||
var _array = require("../../../utils/array.js"); | ||
var _factory = require("../../../utils/factory.js"); | ||
@@ -44,6 +45,4 @@ var name = 'broadcast'; | ||
// check if the broadcasting rules applyes for both matrices | ||
for (var _dim = 0; _dim < N; _dim++) { | ||
_checkRules(sizeA, sizeMax, _dim); | ||
_checkRules(sizeB, sizeMax, _dim); | ||
} | ||
(0, _array.checkBroadcastingRules)(sizeA, sizeMax); | ||
(0, _array.checkBroadcastingRules)(sizeB, sizeMax); | ||
@@ -60,8 +59,8 @@ // reshape A or B if needed to make them ready for concat | ||
// stretches the matrices on each dimension to make them the same size | ||
for (var _dim2 = 0; _dim2 < N; _dim2++) { | ||
if (AA._size[_dim2] < sizeMax[_dim2]) { | ||
AA = _stretch(AA, sizeMax[_dim2], _dim2); | ||
for (var _dim = 0; _dim < N; _dim++) { | ||
if (AA._size[_dim] < sizeMax[_dim]) { | ||
AA = _stretch(AA, sizeMax[_dim], _dim); | ||
} | ||
if (BB._size[_dim2] < sizeMax[_dim2]) { | ||
BB = _stretch(BB, sizeMax[_dim2], _dim2); | ||
if (BB._size[_dim] < sizeMax[_dim]) { | ||
BB = _stretch(BB, sizeMax[_dim], _dim); | ||
} | ||
@@ -81,8 +80,3 @@ } | ||
} | ||
function _checkRules(shape, sizeMax, dim) { | ||
if (shape[dim] < sizeMax[dim] & shape[dim] > 1) { | ||
throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(shape, ") not possible to broadcast dimension ").concat(dim, " with size ").concat(shape[dim], " to size ").concat(sizeMax[dim])); | ||
} | ||
} | ||
}); | ||
exports.createBroadcast = createBroadcast; |
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -7,2 +8,8 @@ value: true | ||
exports.arraySize = arraySize; | ||
exports.broadcastArrays = broadcastArrays; | ||
exports.broadcastSizes = broadcastSizes; | ||
exports.broadcastTo = broadcastTo; | ||
exports.checkBroadcastingRules = checkBroadcastingRules; | ||
exports.clone = clone; | ||
exports.concat = concat; | ||
exports.contains = contains; | ||
@@ -17,2 +24,3 @@ exports.filter = filter; | ||
exports.initial = initial; | ||
exports.isEmptyIndex = isEmptyIndex; | ||
exports.join = join; | ||
@@ -25,5 +33,9 @@ exports.last = last; | ||
exports.squeeze = squeeze; | ||
exports.stretch = stretch; | ||
exports.unsqueeze = unsqueeze; | ||
exports.validate = validate; | ||
exports.validateIndex = validateIndex; | ||
exports.validateIndexSourceSize = validateIndexSourceSize; | ||
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); | ||
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); | ||
var _number = require("./number.js"); | ||
@@ -34,2 +46,3 @@ var _is = require("./is.js"); | ||
var _IndexError = require("../error/IndexError.js"); | ||
var _object = require("./object.js"); | ||
/** | ||
@@ -107,2 +120,19 @@ * Calculate the size of a multi dimensional array. | ||
/** | ||
* Validate whether the source of the index matches the size of the Array | ||
* @param {Array | Matrix} array Array to be validated | ||
* @param {Index} index Index with the source information to validate | ||
* @throws DimensionError | ||
*/ | ||
function validateIndexSourceSize(value, index) { | ||
var valueSize = value.isMatrix ? value._size : arraySize(value); | ||
var sourceSize = index._sourceSize; | ||
// checks if the source size is not null and matches the valueSize | ||
sourceSize.forEach(function (sourceDim, i) { | ||
if (sourceDim !== null && sourceDim !== valueSize[i]) { | ||
throw new _DimensionError.DimensionError(sourceDim, valueSize[i]); | ||
} | ||
}); | ||
} | ||
/** | ||
* Test whether index is an integer number with index >= 0 and index < length | ||
@@ -114,8 +144,34 @@ * when length is provided | ||
function validateIndex(index, length) { | ||
if (!(0, _is.isNumber)(index) || !(0, _number.isInteger)(index)) { | ||
throw new TypeError('Index must be an integer (value: ' + index + ')'); | ||
if (index !== undefined) { | ||
if (!(0, _is.isNumber)(index) || !(0, _number.isInteger)(index)) { | ||
throw new TypeError('Index must be an integer (value: ' + index + ')'); | ||
} | ||
if (index < 0 || typeof length === 'number' && index >= length) { | ||
throw new _IndexError.IndexError(index, length); | ||
} | ||
} | ||
if (index < 0 || typeof length === 'number' && index >= length) { | ||
throw new _IndexError.IndexError(index, length); | ||
} | ||
/** | ||
* Test if and index has empty values | ||
* @param {number} index Zero-based index | ||
*/ | ||
function isEmptyIndex(index) { | ||
for (var i = 0; i < index._dimensions.length; ++i) { | ||
var dimension = index._dimensions[i]; | ||
if (dimension._data && (0, _is.isArray)(dimension._data)) { | ||
if (dimension._size[0] === 0) { | ||
return true; | ||
} | ||
} else if (dimension.isRange) { | ||
if (dimension.start === dimension.end) { | ||
return true; | ||
} | ||
} else if ((0, _is.isString)(dimension)) { | ||
if (dimension.length === 0) { | ||
return true; | ||
} | ||
} | ||
} | ||
return false; | ||
} | ||
@@ -125,4 +181,4 @@ | ||
* Resize a multi dimensional array. The resized array is returned. | ||
* @param {Array} array Array to be resized | ||
* @param {Array.<number>} size Array with the size of each dimension | ||
* @param {Array | number} array Array to be resized | ||
* @param {number[]} size Array with the size of each dimension | ||
* @param {*} [defaultValue=0] Value to be filled in in new entries, | ||
@@ -135,6 +191,4 @@ * zero by default. Specify for example `null`, | ||
function resize(array, size, defaultValue) { | ||
// TODO: add support for scalars, having size=[] ? | ||
// check the type of the arguments | ||
if (!Array.isArray(array) || !Array.isArray(size)) { | ||
if (!Array.isArray(size)) { | ||
throw new TypeError('Array expected'); | ||
@@ -153,2 +207,7 @@ } | ||
// convert number to an array | ||
if ((0, _is.isNumber)(array) || (0, _is.isBigNumber)(array)) { | ||
array = [array]; | ||
} | ||
// recursively resize the array | ||
@@ -222,3 +281,3 @@ var _defaultValue = defaultValue !== undefined ? defaultValue : 0; | ||
* @param {Array} array Array to be reshaped | ||
* @param {Array.<number>} sizes List of sizes for each dimension | ||
* @param {number[]} sizes List of sizes for each dimension | ||
* @returns {Array} Array whose data has been formatted to fit the | ||
@@ -256,6 +315,6 @@ * specified dimensions | ||
* Replaces the wildcard -1 in the sizes array. | ||
* @param {Array.<number>} sizes List of sizes for each dimension. At most on wildcard. | ||
* @param {number[]} sizes List of sizes for each dimension. At most on wildcard. | ||
* @param {number} currentLength Number of elements in the array. | ||
* @throws {Error} If more than one wildcard or unable to replace it. | ||
* @returns {Array.<number>} The sizes array with wildcard replaced. | ||
* @returns {number[]} The sizes array with wildcard replaced. | ||
*/ | ||
@@ -285,3 +344,3 @@ function processSizesWildcard(sizes, currentLength) { | ||
* Computes the product of all array elements. | ||
* @param {Array<number>} array Array of factors | ||
* @param {number[]} array Array of factors | ||
* @returns {number} Product of all elements | ||
@@ -298,3 +357,3 @@ */ | ||
* @param {Array} array Array to be reshaped | ||
* @param {Array.<number>} sizes List of sizes for each dimension | ||
* @param {number[]} sizes List of sizes for each dimension | ||
* @returns {Array} Array whose data has been formatted to fit the | ||
@@ -572,6 +631,6 @@ * specified dimensions | ||
var item = array[i]; | ||
var isArray = Array.isArray(item); | ||
var _isArray = Array.isArray(item); | ||
// Saving the target matrix row size | ||
if (i === 0 && isArray) { | ||
if (i === 0 && _isArray) { | ||
length = item.length; | ||
@@ -581,6 +640,6 @@ } | ||
// If the current item is an array but the length does not equal the targetVectorSize | ||
if (isArray && item.length !== length) { | ||
if (_isArray && item.length !== length) { | ||
return undefined; | ||
} | ||
var itemType = isArray ? getArrayDataType(item, typeOf) // recurse into a nested array | ||
var itemType = _isArray ? getArrayDataType(item, typeOf) // recurse into a nested array | ||
: typeOf(item); | ||
@@ -600,3 +659,3 @@ if (type === undefined) { | ||
* Return the last item from an array | ||
* @param array | ||
* @param {array} | ||
* @returns {*} | ||
@@ -610,2 +669,4 @@ */ | ||
* Get all but the last element of array. | ||
* @param {array} | ||
* @returns {*} | ||
*/ | ||
@@ -624,2 +685,175 @@ function initial(array) { | ||
return array.indexOf(item) !== -1; | ||
} | ||
/** | ||
* Recursively concatenate two matrices. | ||
* The contents of the matrices is not cloned. | ||
* @param {Array} a Multi dimensional array | ||
* @param {Array} b Multi dimensional array | ||
* @param {number} concatDim The dimension on which to concatenate (zero-based) | ||
* @param {number} dim The current dim (zero-based) | ||
* @return {Array} c The concatenated matrix | ||
* @private | ||
*/ | ||
function concatRecursive(a, b, concatDim, dim) { | ||
if (dim < concatDim) { | ||
// recurse into next dimension | ||
if (a.length !== b.length) { | ||
throw new _DimensionError.DimensionError(a.length, b.length); | ||
} | ||
var c = []; | ||
for (var i = 0; i < a.length; i++) { | ||
c[i] = concatRecursive(a[i], b[i], concatDim, dim + 1); | ||
} | ||
return c; | ||
} else { | ||
// concatenate this dimension | ||
return a.concat(b); | ||
} | ||
} | ||
/** | ||
* Concatenates many arrays in the specified direction | ||
* @param {...Array} arrays All the arrays to concatenate | ||
* @param {number} concatDim The dimension on which to concatenate (zero-based) | ||
* @returns | ||
*/ | ||
function concat() { | ||
var arrays = Array.prototype.slice.call(arguments, 0, -1); | ||
var concatDim = Array.prototype.slice.call(arguments, -1); | ||
if (arrays.length === 1) { | ||
return arrays[0]; | ||
} | ||
if (arrays.length > 1) { | ||
return arrays.slice(1).reduce(function (A, B) { | ||
return concatRecursive(A, B, concatDim, 0); | ||
}, arrays[0]); | ||
} else { | ||
throw new Error('Wrong number of arguments in function concat'); | ||
} | ||
} | ||
/** | ||
* Receives two or more sizes and get's the broadcasted size for both. | ||
* @param {...number[]} sizes Sizes to broadcast together | ||
* @returns | ||
*/ | ||
function broadcastSizes() { | ||
for (var _len = arguments.length, sizes = new Array(_len), _key = 0; _key < _len; _key++) { | ||
sizes[_key] = arguments[_key]; | ||
} | ||
var dimensions = sizes.map(function (s) { | ||
return s.length; | ||
}); | ||
var N = Math.max.apply(Math, (0, _toConsumableArray2["default"])(dimensions)); | ||
var sizeMax = new Array(N).fill(null); | ||
// check for every size | ||
for (var i = 0; i < sizes.length; i++) { | ||
var size = sizes[i]; | ||
var dim = dimensions[i]; | ||
for (var j = 0; j < dim; j++) { | ||
var n = N - dim + j; | ||
if (size[j] > sizeMax[n]) { | ||
sizeMax[n] = size[j]; | ||
} | ||
} | ||
} | ||
for (var _i = 0; _i < sizes.length; _i++) { | ||
checkBroadcastingRules(sizes[_i], sizeMax); | ||
} | ||
return sizeMax; | ||
} | ||
/** | ||
* Checks if it's possible to broadcast a size to another size | ||
* @param {number[]} size The size of the array to check | ||
* @param {number[]} toSize The size of the array to validate if it can be broadcasted to | ||
*/ | ||
function checkBroadcastingRules(size, toSize) { | ||
var N = toSize.length; | ||
var dim = size.length; | ||
for (var j = 0; j < dim; j++) { | ||
var n = N - dim + j; | ||
if (size[j] < toSize[n] && size[j] > 1 || size[j] > toSize[n]) { | ||
throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(size, ") not possible to broadcast dimension ").concat(dim, " with size ").concat(size[j], " to size ").concat(toSize[n])); | ||
} | ||
} | ||
} | ||
/** | ||
* Broadcasts a single array to a certain size | ||
* @param {array} array Array to be broadcasted | ||
* @param {number[]} toSize Size to broadcast the array | ||
* @returns The broadcasted array | ||
*/ | ||
function broadcastTo(array, toSize) { | ||
var Asize = arraySize(array); | ||
if ((0, _object.deepStrictEqual)(Asize, toSize)) { | ||
return array; | ||
} | ||
checkBroadcastingRules(Asize, toSize); | ||
var broadcastedSize = broadcastSizes(Asize, toSize); | ||
var N = broadcastedSize.length; | ||
var paddedSize = [].concat((0, _toConsumableArray2["default"])(Array(N - Asize.length).fill(1)), (0, _toConsumableArray2["default"])(Asize)); | ||
var A = clone(array); | ||
// reshape A if needed to make it ready for concat | ||
if (Asize.length < N) { | ||
A = reshape(A, paddedSize); | ||
Asize = arraySize(A); | ||
} | ||
// stretches the array on each dimension to make it the same size as index | ||
for (var dim = 0; dim < N; dim++) { | ||
if (Asize[dim] < broadcastedSize[dim]) { | ||
A = stretch(A, broadcastedSize[dim], dim); | ||
Asize = arraySize(A); | ||
} | ||
} | ||
return A; | ||
} | ||
/** | ||
* Broadcasts arrays and returns the broadcasted arrays in an array | ||
* @param {...Array | any} arrays | ||
* @returns | ||
*/ | ||
function broadcastArrays() { | ||
for (var _len2 = arguments.length, arrays = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
arrays[_key2] = arguments[_key2]; | ||
} | ||
if (arrays.length === 0) { | ||
throw new Error('Insuficient number of argumnets in function broadcastArrays'); | ||
} | ||
if (arrays.length === 1) { | ||
return arrays[0]; | ||
} | ||
var sizes = arrays.map(function (array) { | ||
return arraySize(array); | ||
}); | ||
var broadcastedSize = broadcastSizes.apply(void 0, (0, _toConsumableArray2["default"])(sizes)); | ||
var broadcastedArrays = []; | ||
arrays.forEach(function (array) { | ||
broadcastedArrays.push(broadcastTo(array, broadcastedSize)); | ||
}); | ||
return broadcastedArrays; | ||
} | ||
/** | ||
* stretches a matrix up to a certain size in a certain dimension | ||
* @param {Array} arrayToStretch | ||
* @param {number[]} sizeToStretch | ||
* @param {number} dimToStretch | ||
* @returns | ||
*/ | ||
function stretch(arrayToStretch, sizeToStretch, dimToStretch) { | ||
return concat.apply(void 0, (0, _toConsumableArray2["default"])(Array(sizeToStretch).fill(arrayToStretch)).concat([dimToStretch])); | ||
} | ||
/** | ||
* Deep clones a multidimensional array | ||
* @param {Array} array | ||
* @returns cloned array | ||
*/ | ||
function clone(array) { | ||
return (0, _extends2["default"])([], array); | ||
} |
@@ -7,5 +7,5 @@ "use strict"; | ||
exports.version = void 0; | ||
var version = '11.9.1'; | ||
var version = '11.10.0'; | ||
// Note: This file is automatically generated when building math.js. | ||
// Changes made in this file will be overwritten. | ||
exports.version = version; |
@@ -252,2 +252,3 @@ /** | ||
export { quantileSeqDependencies } from './dependenciesAny/dependenciesQuantileSeq.generated.js'; | ||
export { quantileSeqTransformDependencies } from './dependenciesAny/dependenciesQuantileSeqTransform.generated.js'; | ||
export { quantumOfCirculationDependencies } from './dependenciesAny/dependenciesQuantumOfCirculation.generated.js'; | ||
@@ -357,3 +358,4 @@ export { randomDependencies } from './dependenciesAny/dependenciesRandom.generated.js'; | ||
export { zerosDependencies } from './dependenciesAny/dependenciesZeros.generated.js'; | ||
export { zetaDependencies } from './dependenciesAny/dependenciesZeta.generated.js'; | ||
export { zpk2tfDependencies } from './dependenciesAny/dependenciesZpk2tf.generated.js'; | ||
export { all } from './allFactoriesAny.js'; |
@@ -6,6 +6,8 @@ /** | ||
import { ImmutableDenseMatrixDependencies } from './dependenciesImmutableDenseMatrixClass.generated.js'; | ||
import { getMatrixDataTypeDependencies } from './dependenciesGetMatrixDataType.generated.js'; | ||
import { createIndexClass } from '../../factoriesAny.js'; | ||
export var IndexDependencies = { | ||
ImmutableDenseMatrixDependencies, | ||
getMatrixDataTypeDependencies, | ||
createIndexClass | ||
}; |
@@ -6,6 +6,8 @@ /** | ||
import { IndexDependencies } from './dependenciesIndexClass.generated.js'; | ||
import { getMatrixDataTypeDependencies } from './dependenciesGetMatrixDataType.generated.js'; | ||
import { createIndexTransform } from '../../factoriesAny.js'; | ||
export var indexTransformDependencies = { | ||
IndexDependencies, | ||
getMatrixDataTypeDependencies, | ||
createIndexTransform | ||
}; |
@@ -7,2 +7,3 @@ /** | ||
import { compareDependencies } from './dependenciesCompare.generated.js'; | ||
import { isIntegerDependencies } from './dependenciesIsInteger.generated.js'; | ||
import { multiplyDependencies } from './dependenciesMultiply.generated.js'; | ||
@@ -15,2 +16,3 @@ import { partitionSelectDependencies } from './dependenciesPartitionSelect.generated.js'; | ||
compareDependencies, | ||
isIntegerDependencies, | ||
multiplyDependencies, | ||
@@ -17,0 +19,0 @@ partitionSelectDependencies, |
@@ -5,9 +5,13 @@ /** | ||
*/ | ||
import { addDependencies } from './dependenciesAdd.generated.js'; | ||
import { matrixDependencies } from './dependenciesMatrix.generated.js'; | ||
import { typedDependencies } from './dependenciesTyped.generated.js'; | ||
import { zerosDependencies } from './dependenciesZeros.generated.js'; | ||
import { createSubset } from '../../factoriesAny.js'; | ||
export var subsetDependencies = { | ||
addDependencies, | ||
matrixDependencies, | ||
typedDependencies, | ||
zerosDependencies, | ||
createSubset | ||
}; |
@@ -5,9 +5,13 @@ /** | ||
*/ | ||
import { addDependencies } from './dependenciesAdd.generated.js'; | ||
import { matrixDependencies } from './dependenciesMatrix.generated.js'; | ||
import { typedDependencies } from './dependenciesTyped.generated.js'; | ||
import { zerosDependencies } from './dependenciesZeros.generated.js'; | ||
import { createSubsetTransform } from '../../factoriesAny.js'; | ||
export var subsetTransformDependencies = { | ||
addDependencies, | ||
matrixDependencies, | ||
typedDependencies, | ||
zerosDependencies, | ||
createSubsetTransform | ||
}; |
@@ -206,2 +206,3 @@ /** | ||
export { xorDependencies } from './dependenciesNumber/dependenciesXor.generated.js'; | ||
export { zetaDependencies } from './dependenciesNumber/dependenciesZeta.generated.js'; | ||
export { all } from './allFactoriesNumber.js'; |
@@ -7,2 +7,3 @@ /** | ||
import { compareDependencies } from './dependenciesCompare.generated.js'; | ||
import { isIntegerDependencies } from './dependenciesIsInteger.generated.js'; | ||
import { multiplyDependencies } from './dependenciesMultiply.generated.js'; | ||
@@ -15,2 +16,3 @@ import { partitionSelectDependencies } from './dependenciesPartitionSelect.generated.js'; | ||
compareDependencies, | ||
isIntegerDependencies, | ||
multiplyDependencies, | ||
@@ -17,0 +19,0 @@ partitionSelectDependencies, |
@@ -7,6 +7,6 @@ import _extends from "@babel/runtime/helpers/extends"; | ||
import { config } from './configReadonly.js'; | ||
import { createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChainClass, createFunctionAssignmentNode, createChain, createAccessorNode, createIndexNode, createAssignmentNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyConstant, createCompile, createHelpClass, createLeafCount, createSimplifyCore, createEvaluate, createHelp, createParserClass, createSimplify, createSymbolicEqual, createDerivative, createParser, createRationalize, createFilterTransform, createForEachTransform, createMapTransform, createApplyTransform, createSubsetTransform, createConcatTransform, createMaxTransform, createSumTransform, createMinTransform, createCumSumTransform, createDiffTransform, createIndexTransform, createRangeTransform, createRowTransform, createColumnTransform, createMeanTransform, createVarianceTransform, createStdTransform } from '../factoriesAny.js'; | ||
import { createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChainClass, createFunctionAssignmentNode, createChain, createIndexNode, createAccessorNode, createAssignmentNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyConstant, createCompile, createHelpClass, createLeafCount, createSimplifyCore, createEvaluate, createHelp, createParserClass, createSimplify, createSymbolicEqual, createDerivative, createParser, createRationalize, createFilterTransform, createForEachTransform, createMapTransform, createApplyTransform, createConcatTransform, createMaxTransform, createQuantileSeqTransform, createDiffTransform, createMinTransform, createSubsetTransform, createCumSumTransform, createIndexTransform, createSumTransform, createRangeTransform, createRowTransform, createColumnTransform, createMeanTransform, createVarianceTransform, createStdTransform } from '../factoriesAny.js'; | ||
import { BigNumber, Complex, e, _false, fineStructure, Fraction, i, _Infinity, LN10, LOG10E, Matrix, _NaN, _null, phi, Range, ResultSet, SQRT1_2, | ||
// eslint-disable-line camelcase | ||
sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cosh, coth, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, lgamma, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cos, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, cot, fraction, isNumeric, matrix, matrixFromFunction, mode, numeric, prod, reshape, size, squeeze, subset, transpose, xgcd, zeros, asin, cbrt, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, flatten, gcd, hasNumericValue, identity, kron, largerEq, leftShift, matrixFromColumns, mod, nthRoot, ones, resize, rightArithShift, round, smaller, to, unequal, xor, add, bitAnd, bitXor, catalan, compare, compareText, cumsum, deepEqual, dot, equalText, floor, hypot, ImmutableDenseMatrix, Index, invmod, larger, log, matrixFromRows, min, multiply, nthRoots, or, partitionSelect, quantileSeq, rightLogShift, smallerEq, subtract, trace, usolve, zpk2tf, and, bitOr, ceil, compareNatural, composition, cross, det, diff, distance, dotMultiply, FibonacciHeap, fix, index, intersect, lcm, log1p, lsolve, max, qr, range, row, setCartesian, setDistinct, setIsSubset, setPowerset, slu, sort, sum, usolveAll, atan2, column, lsolveAll, setDifference, setMultiplicity, setSymDifference, Spa, inv, lup, pinv, pow, setIntersect, setUnion, sqrtm, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, fft, gamma, gravitationConstant, hartreeEnergy, ifft, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, reducedPlanckConstant, rydberg, secondRadiation, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, coulomb, divide, electronMass, factorial, firstRadiation, gravity, inverseConductanceQuantum, lusolve, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setSize, solveODE, stirlingS2, unit, bellNumbers, eigs, fermiCoupling, gasConstant, mean, molarVolume, planckConstant, quantumOfCirculation, variance, classicalElectronRadius, median, kldivergence, mad, std, freqz, norm, rotationMatrix, planckTime, schur, rotate, sylvester, lyap } from './pureFunctionsAny.generated.js'; | ||
sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cosh, coth, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, lgamma, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cos, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, cot, fraction, isNumeric, matrix, matrixFromFunction, mode, numeric, prod, reshape, size, squeeze, transpose, xgcd, zeros, asin, cbrt, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, flatten, gcd, hasNumericValue, identity, kron, largerEq, leftShift, matrixFromColumns, mod, nthRoot, ones, resize, rightArithShift, round, smaller, subtract, to, unequal, usolve, xor, add, atan2, bitAnd, bitXor, catalan, compare, compareText, cumsum, deepEqual, diff, distance, dot, equalText, floor, hypot, ImmutableDenseMatrix, Index, invmod, larger, log, lsolve, matrixFromRows, min, multiply, nthRoots, or, partitionSelect, qr, rightLogShift, slu, subset, sum, trace, usolveAll, zpk2tf, bitOr, ceil, compareNatural, composition, cross, det, dotMultiply, FibonacciHeap, fix, index, intersect, lcm, log1p, lsolveAll, max, quantileSeq, setCartesian, setDistinct, setIsSubset, setPowerset, smallerEq, sort, and, range, row, setDifference, setMultiplicity, setSymDifference, Spa, column, inv, lup, pinv, pow, setIntersect, setUnion, sqrtm, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, fft, gamma, gravitationConstant, hartreeEnergy, ifft, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, reducedPlanckConstant, rydberg, secondRadiation, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, coulomb, divide, electronMass, factorial, firstRadiation, gravity, inverseConductanceQuantum, lusolve, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setSize, solveODE, stirlingS2, unit, bellNumbers, eigs, fermiCoupling, gasConstant, mean, molarVolume, planckConstant, quantumOfCirculation, variance, classicalElectronRadius, median, kldivergence, mad, std, zeta, freqz, norm, rotationMatrix, planckTime, schur, rotate, sylvester, lyap } from './pureFunctionsAny.generated.js'; | ||
var math = {}; // NOT pure! | ||
@@ -62,2 +62,6 @@ var mathWithTransform = {}; // NOT pure! | ||
}); | ||
export var IndexNode = createIndexNode({ | ||
Node, | ||
size | ||
}); | ||
export var AccessorNode = createAccessorNode({ | ||
@@ -67,6 +71,2 @@ Node, | ||
}); | ||
export var IndexNode = createIndexNode({ | ||
Node, | ||
size | ||
}); | ||
export var AssignmentNode = createAssignmentNode({ | ||
@@ -367,3 +367,2 @@ matrix, | ||
squeeze, | ||
subset, | ||
transpose, | ||
@@ -396,6 +395,9 @@ xgcd, | ||
smaller, | ||
subtract, | ||
to, | ||
unequal, | ||
usolve, | ||
xor, | ||
add, | ||
atan2, | ||
bitAnd, | ||
@@ -408,2 +410,4 @@ bitXor, | ||
deepEqual, | ||
diff, | ||
distance, | ||
dot, | ||
@@ -416,2 +420,3 @@ equalText, | ||
log, | ||
lsolve, | ||
matrixFromRows, | ||
@@ -423,10 +428,10 @@ min, | ||
partitionSelect, | ||
quantileSeq, | ||
qr, | ||
rightLogShift, | ||
smallerEq, | ||
subtract, | ||
slu, | ||
subset, | ||
sum, | ||
trace, | ||
usolve, | ||
usolveAll, | ||
zpk2tf, | ||
and, | ||
bitOr, | ||
@@ -438,4 +443,2 @@ ceil, | ||
det, | ||
diff, | ||
distance, | ||
dotMultiply, | ||
@@ -447,7 +450,5 @@ fix, | ||
log1p, | ||
lsolve, | ||
lsolveAll, | ||
max, | ||
qr, | ||
range, | ||
row, | ||
quantileSeq, | ||
setCartesian, | ||
@@ -457,12 +458,11 @@ setDistinct, | ||
setPowerset, | ||
slu, | ||
smallerEq, | ||
sort, | ||
sum, | ||
usolveAll, | ||
atan2, | ||
column, | ||
lsolveAll, | ||
and, | ||
range, | ||
row, | ||
setDifference, | ||
setMultiplicity, | ||
setSymDifference, | ||
column, | ||
inv, | ||
@@ -557,2 +557,3 @@ lup, | ||
std, | ||
zeta, | ||
freqz, | ||
@@ -582,6 +583,2 @@ norm, | ||
}), | ||
subset: createSubsetTransform({ | ||
matrix, | ||
typed | ||
}), | ||
concat: createConcatTransform({ | ||
@@ -598,8 +595,17 @@ isInteger, | ||
}), | ||
sum: createSumTransform({ | ||
quantileSeq: createQuantileSeqTransform({ | ||
add, | ||
config, | ||
numeric, | ||
compare, | ||
isInteger, | ||
multiply, | ||
partitionSelect, | ||
typed | ||
}), | ||
diff: createDiffTransform({ | ||
bignumber, | ||
matrix, | ||
number, | ||
subtract, | ||
typed | ||
}), | ||
min: createMinTransform({ | ||
@@ -611,2 +617,8 @@ config, | ||
}), | ||
subset: createSubsetTransform({ | ||
add, | ||
matrix, | ||
typed, | ||
zeros | ||
}), | ||
cumsum: createCumSumTransform({ | ||
@@ -617,12 +629,12 @@ add, | ||
}), | ||
diff: createDiffTransform({ | ||
bignumber, | ||
matrix, | ||
number, | ||
subtract, | ||
index: createIndexTransform({ | ||
Index, | ||
getMatrixDataType | ||
}), | ||
sum: createSumTransform({ | ||
add, | ||
config, | ||
numeric, | ||
typed | ||
}), | ||
index: createIndexTransform({ | ||
Index | ||
}), | ||
range: createRangeTransform({ | ||
@@ -694,7 +706,7 @@ bignumber, | ||
SparseMatrix, | ||
AccessorNode, | ||
IndexNode, | ||
AssignmentNode, | ||
ImmutableDenseMatrix, | ||
Index, | ||
AccessorNode, | ||
AssignmentNode, | ||
FibonacciHeap, | ||
@@ -701,0 +713,0 @@ Spa, |
@@ -10,3 +10,3 @@ import _extends from "@babel/runtime/helpers/extends"; | ||
// eslint-disable-line camelcase | ||
subset, tau, typed, unaryPlus, version, xor, abs, acos, acot, acsc, add, and, asec, asin, atan, atanh, bitAnd, bitOr, boolean, cbrt, combinations, compare, compareText, cos, cot, csc, cube, divide, equalScalar, erf, exp, filter, forEach, format, gamma, isInteger, isNegative, isPositive, isZero, LOG2E, largerEq, leftShift, log, log1p, map, mean, mod, multiply, not, number, or, pi, pow, random, rightLogShift, SQRT2, sech, sin, size, smallerEq, square, string, subtract, tanh, typeOf, unequal, xgcd, acoth, addScalar, asech, bitNot, combinationsWithRep, cosh, csch, divideScalar, equalText, expm1, isNumeric, LN2, lcm, log10, multiplyScalar, nthRoot, pickRandom, randomInt, rightArithShift, sec, sinh, sqrt, tan, unaryMinus, acosh, apply, asinh, bitXor, clone, cumsum, equal, factorial, hasNumericValue, isNaN, larger, log2, mode, norm, partitionSelect, print, quantileSeq, round, smaller, stirlingS2, _true, variance, acsch, atan2, catalan, compareNatural, composition, deepEqual, floor, hypot, lgamma, median, multinomial, permutations, range, sign, std, ceil, coth, fix, isPrime, numeric, prod, bellNumbers, gcd, mad, sum, max, min } from './pureFunctionsNumber.generated.js'; | ||
subset, tau, typed, unaryPlus, version, xor, abs, acos, acot, acsc, add, and, asec, asin, atan, atanh, bitAnd, bitOr, boolean, cbrt, combinations, compare, compareText, cos, cot, csc, cube, divide, equalScalar, erf, exp, filter, forEach, format, gamma, isInteger, isNegative, isPositive, isZero, LOG2E, largerEq, leftShift, log, log1p, map, mean, mod, multiply, not, number, or, pi, pow, random, rightLogShift, SQRT2, sech, sin, size, smallerEq, square, string, subtract, tanh, typeOf, unequal, xgcd, acoth, addScalar, asech, bitNot, combinationsWithRep, cosh, csch, divideScalar, equalText, expm1, isNumeric, LN2, lcm, log10, multiplyScalar, nthRoot, pickRandom, randomInt, rightArithShift, sec, sinh, sqrt, tan, unaryMinus, acosh, apply, asinh, bitXor, clone, cumsum, equal, factorial, hasNumericValue, isNaN, larger, log2, mode, norm, partitionSelect, print, quantileSeq, round, smaller, stirlingS2, _true, variance, zeta, acsch, atan2, catalan, compareNatural, composition, deepEqual, floor, hypot, lgamma, median, multinomial, permutations, range, sign, std, ceil, coth, fix, isPrime, numeric, prod, bellNumbers, gcd, mad, sum, max, min } from './pureFunctionsNumber.generated.js'; | ||
var math = {}; // NOT pure! | ||
@@ -364,2 +364,3 @@ var mathWithTransform = {}; // NOT pure! | ||
variance, | ||
zeta, | ||
acsch, | ||
@@ -366,0 +367,0 @@ atan2, |
@@ -8,3 +8,3 @@ /** | ||
// eslint-disable-line camelcase | ||
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCosh, createCoth, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCos, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCot, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMode, createNumeric, createProd, createReshape, createSize, createSqueeze, createSubset, createTranspose, createXgcd, createZeros, createAsin, createCbrt, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFlatten, createGcd, createHasNumericValue, createIdentity, createKron, createLargerEq, createLeftShift, createMatrixFromColumns, createMod, createNthRoot, createOnes, createResize, createRightArithShift, createRound, createSmaller, createTo, createUnequal, createXor, createAdd, createBitAnd, createBitXor, createCatalan, createCompare, createCompareText, createCumSum, createDeepEqual, createDot, createEqualText, createFloor, createHypot, createImmutableDenseMatrixClass, createIndexClass, createInvmod, createLarger, createLog, createMatrixFromRows, createMin, createMultiply, createNthRoots, createOr, createPartitionSelect, createQuantileSeq, createRightLogShift, createSmallerEq, createSubtract, createTrace, createUsolve, createZpk2tf, createAnd, createBitOr, createCeil, createCompareNatural, createComposition, createCross, createDet, createDiff, createDistance, createDotMultiply, createFibonacciHeapClass, createFix, createIndex, createIntersect, createLcm, createLog1p, createLsolve, createMax, createQr, createRange, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSlu, createSort, createSum, createUsolveAll, createAtan2, createColumn, createLsolveAll, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createInv, createLup, createPinv, createPow, createSetIntersect, createSetUnion, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulomb, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createInverseConductanceQuantum, createLusolve, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetSize, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createGasConstant, createMean, createMolarVolume, createPlanckConstant, createQuantumOfCirculation, createVariance, createClassicalElectronRadius, createMedian, createKldivergence, createMad, createStd, createFreqz, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js'; | ||
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCosh, createCoth, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCos, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCot, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMode, createNumeric, createProd, createReshape, createSize, createSqueeze, createTranspose, createXgcd, createZeros, createAsin, createCbrt, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFlatten, createGcd, createHasNumericValue, createIdentity, createKron, createLargerEq, createLeftShift, createMatrixFromColumns, createMod, createNthRoot, createOnes, createResize, createRightArithShift, createRound, createSmaller, createSubtract, createTo, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitAnd, createBitXor, createCatalan, createCompare, createCompareText, createCumSum, createDeepEqual, createDiff, createDistance, createDot, createEqualText, createFloor, createHypot, createImmutableDenseMatrixClass, createIndexClass, createInvmod, createLarger, createLog, createLsolve, createMatrixFromRows, createMin, createMultiply, createNthRoots, createOr, createPartitionSelect, createQr, createRightLogShift, createSlu, createSubset, createSum, createTrace, createUsolveAll, createZpk2tf, createBitOr, createCeil, createCompareNatural, createComposition, createCross, createDet, createDotMultiply, createFibonacciHeapClass, createFix, createIndex, createIntersect, createLcm, createLog1p, createLsolveAll, createMax, createQuantileSeq, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSmallerEq, createSort, createAnd, createRange, createRow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createColumn, createInv, createLup, createPinv, createPow, createSetIntersect, createSetUnion, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulomb, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createInverseConductanceQuantum, createLusolve, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetSize, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createGasConstant, createMean, createMolarVolume, createPlanckConstant, createQuantumOfCirculation, createVariance, createClassicalElectronRadius, createMedian, createKldivergence, createMad, createStd, createZeta, createFreqz, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js'; | ||
export var BigNumber = /* #__PURE__ */createBigNumberClass({ | ||
@@ -427,6 +427,2 @@ config | ||
}); | ||
export var subset = /* #__PURE__ */createSubset({ | ||
matrix, | ||
typed | ||
}); | ||
export var transpose = /* #__PURE__ */createTranspose({ | ||
@@ -600,2 +596,11 @@ matrix, | ||
}); | ||
export var subtract = /* #__PURE__ */createSubtract({ | ||
DenseMatrix, | ||
addScalar, | ||
concat, | ||
equalScalar, | ||
matrix, | ||
typed, | ||
unaryMinus | ||
}); | ||
export var to = /* #__PURE__ */createTo({ | ||
@@ -614,2 +619,11 @@ concat, | ||
}); | ||
export var usolve = /* #__PURE__ */createUsolve({ | ||
DenseMatrix, | ||
divideScalar, | ||
equalScalar, | ||
matrix, | ||
multiplyScalar, | ||
subtract, | ||
typed | ||
}); | ||
export var xor = /* #__PURE__ */createXor({ | ||
@@ -630,2 +644,10 @@ DenseMatrix, | ||
}); | ||
export var atan2 = /* #__PURE__ */createAtan2({ | ||
BigNumber, | ||
DenseMatrix, | ||
concat, | ||
equalScalar, | ||
matrix, | ||
typed | ||
}); | ||
export var bitAnd = /* #__PURE__ */createBitAnd({ | ||
@@ -676,2 +698,18 @@ concat, | ||
}); | ||
export var diff = /* #__PURE__ */createDiff({ | ||
matrix, | ||
number, | ||
subtract, | ||
typed | ||
}); | ||
export var distance = /* #__PURE__ */createDistance({ | ||
abs, | ||
addScalar, | ||
deepEqual, | ||
divideScalar, | ||
multiplyScalar, | ||
sqrt, | ||
subtract, | ||
typed | ||
}); | ||
export var dot = /* #__PURE__ */createDot({ | ||
@@ -713,3 +751,4 @@ addScalar, | ||
export var Index = /* #__PURE__ */createIndexClass({ | ||
ImmutableDenseMatrix | ||
ImmutableDenseMatrix, | ||
getMatrixDataType | ||
}); | ||
@@ -740,2 +779,11 @@ export var invmod = /* #__PURE__ */createInvmod({ | ||
}); | ||
export var lsolve = /* #__PURE__ */createLsolve({ | ||
DenseMatrix, | ||
divideScalar, | ||
equalScalar, | ||
matrix, | ||
multiplyScalar, | ||
subtract, | ||
typed | ||
}); | ||
export var matrixFromRows = /* #__PURE__ */createMatrixFromRows({ | ||
@@ -780,8 +828,18 @@ flatten, | ||
}); | ||
export var quantileSeq = /* #__PURE__ */createQuantileSeq({ | ||
add, | ||
compare, | ||
multiply, | ||
partitionSelect, | ||
typed | ||
export var qr = /* #__PURE__ */createQr({ | ||
addScalar, | ||
complex, | ||
conj, | ||
divideScalar, | ||
equal, | ||
identity, | ||
isZero, | ||
matrix, | ||
multiplyScalar, | ||
sign, | ||
sqrt, | ||
subtract, | ||
typed, | ||
unaryMinus, | ||
zeros | ||
}); | ||
@@ -796,18 +854,26 @@ export var rightLogShift = /* #__PURE__ */createRightLogShift({ | ||
}); | ||
export var smallerEq = /* #__PURE__ */createSmallerEq({ | ||
DenseMatrix, | ||
concat, | ||
config, | ||
matrix, | ||
export var slu = /* #__PURE__ */createSlu({ | ||
SparseMatrix, | ||
abs, | ||
add, | ||
divideScalar, | ||
larger, | ||
largerEq, | ||
multiply, | ||
subtract, | ||
transpose, | ||
typed | ||
}); | ||
export var subtract = /* #__PURE__ */createSubtract({ | ||
DenseMatrix, | ||
addScalar, | ||
concat, | ||
equalScalar, | ||
export var subset = /* #__PURE__ */createSubset({ | ||
add, | ||
matrix, | ||
typed, | ||
unaryMinus | ||
zeros | ||
}); | ||
export var sum = /* #__PURE__ */createSum({ | ||
add, | ||
config, | ||
numeric, | ||
typed | ||
}); | ||
export var trace = /* #__PURE__ */createTrace({ | ||
@@ -818,3 +884,3 @@ add, | ||
}); | ||
export var usolve = /* #__PURE__ */createUsolve({ | ||
export var usolveAll = /* #__PURE__ */createUsolveAll({ | ||
DenseMatrix, | ||
@@ -835,10 +901,2 @@ divideScalar, | ||
}); | ||
export var and = /* #__PURE__ */createAnd({ | ||
concat, | ||
equalScalar, | ||
matrix, | ||
not, | ||
typed, | ||
zeros | ||
}); | ||
export var bitOr = /* #__PURE__ */createBitOr({ | ||
@@ -888,18 +946,2 @@ DenseMatrix, | ||
}); | ||
export var diff = /* #__PURE__ */createDiff({ | ||
matrix, | ||
number, | ||
subtract, | ||
typed | ||
}); | ||
export var distance = /* #__PURE__ */createDistance({ | ||
abs, | ||
addScalar, | ||
deepEqual, | ||
divideScalar, | ||
multiplyScalar, | ||
sqrt, | ||
subtract, | ||
typed | ||
}); | ||
export var dotMultiply = /* #__PURE__ */createDotMultiply({ | ||
@@ -960,3 +1002,3 @@ concat, | ||
}); | ||
export var lsolve = /* #__PURE__ */createLsolve({ | ||
export var lsolveAll = /* #__PURE__ */createLsolveAll({ | ||
DenseMatrix, | ||
@@ -976,37 +1018,10 @@ divideScalar, | ||
}); | ||
export var qr = /* #__PURE__ */createQr({ | ||
addScalar, | ||
complex, | ||
conj, | ||
divideScalar, | ||
equal, | ||
identity, | ||
isZero, | ||
matrix, | ||
multiplyScalar, | ||
sign, | ||
sqrt, | ||
subtract, | ||
typed, | ||
unaryMinus, | ||
zeros | ||
}); | ||
export var range = /* #__PURE__ */createRange({ | ||
bignumber, | ||
matrix, | ||
export var quantileSeq = /* #__PURE__ */createQuantileSeq({ | ||
add, | ||
config, | ||
isPositive, | ||
larger, | ||
largerEq, | ||
smaller, | ||
smallerEq, | ||
compare, | ||
isInteger, | ||
multiply, | ||
partitionSelect, | ||
typed | ||
}); | ||
export var row = /* #__PURE__ */createRow({ | ||
Index, | ||
matrix, | ||
range, | ||
typed | ||
}); | ||
export var setCartesian = /* #__PURE__ */createSetCartesian({ | ||
@@ -1042,12 +1057,7 @@ DenseMatrix, | ||
}); | ||
export var slu = /* #__PURE__ */createSlu({ | ||
SparseMatrix, | ||
abs, | ||
add, | ||
divideScalar, | ||
larger, | ||
largerEq, | ||
multiply, | ||
subtract, | ||
transpose, | ||
export var smallerEq = /* #__PURE__ */createSmallerEq({ | ||
DenseMatrix, | ||
concat, | ||
config, | ||
matrix, | ||
typed | ||
@@ -1061,26 +1071,23 @@ }); | ||
}); | ||
export var sum = /* #__PURE__ */createSum({ | ||
add, | ||
config, | ||
numeric, | ||
typed | ||
}); | ||
export var usolveAll = /* #__PURE__ */createUsolveAll({ | ||
DenseMatrix, | ||
divideScalar, | ||
export var and = /* #__PURE__ */createAnd({ | ||
concat, | ||
equalScalar, | ||
matrix, | ||
multiplyScalar, | ||
subtract, | ||
typed | ||
not, | ||
typed, | ||
zeros | ||
}); | ||
export var atan2 = /* #__PURE__ */createAtan2({ | ||
BigNumber, | ||
DenseMatrix, | ||
concat, | ||
equalScalar, | ||
export var range = /* #__PURE__ */createRange({ | ||
bignumber, | ||
matrix, | ||
add, | ||
config, | ||
isPositive, | ||
larger, | ||
largerEq, | ||
smaller, | ||
smallerEq, | ||
typed | ||
}); | ||
export var column = /* #__PURE__ */createColumn({ | ||
export var row = /* #__PURE__ */createRow({ | ||
Index, | ||
@@ -1091,11 +1098,2 @@ matrix, | ||
}); | ||
export var lsolveAll = /* #__PURE__ */createLsolveAll({ | ||
DenseMatrix, | ||
divideScalar, | ||
equalScalar, | ||
matrix, | ||
multiplyScalar, | ||
subtract, | ||
typed | ||
}); | ||
export var setDifference = /* #__PURE__ */createSetDifference({ | ||
@@ -1129,2 +1127,8 @@ DenseMatrix, | ||
}); | ||
export var column = /* #__PURE__ */createColumn({ | ||
Index, | ||
matrix, | ||
range, | ||
typed | ||
}); | ||
export var inv = /* #__PURE__ */createInv({ | ||
@@ -1677,2 +1681,20 @@ abs, | ||
}); | ||
export var zeta = /* #__PURE__ */createZeta({ | ||
BigNumber, | ||
Complex, | ||
add, | ||
config, | ||
divide, | ||
equal, | ||
factorial, | ||
gamma, | ||
isNegative, | ||
multiply, | ||
pi, | ||
pow, | ||
sin, | ||
smallerEq, | ||
subtract, | ||
typed | ||
}); | ||
export var freqz = /* #__PURE__ */createFreqz({ | ||
@@ -1679,0 +1701,0 @@ Complex, |
@@ -8,3 +8,3 @@ /** | ||
// eslint-disable-line camelcase | ||
createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBitAnd, createBitOr, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter, createForEach, createFormat, createGamma, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLargerEq, createLeftShift, createLog, createLog1p, createMap, createMean, createMod, createMultiply, createNot, createNumber, createOr, createPi, createPow, createRandom, createRightLogShift, createSQRT2, createSech, createSin, createSize, createSmallerEq, createSquare, createString, createSubtract, createTanh, createTypeOf, createUnequal, createXgcd, createAcoth, createAddScalar, createAsech, createBitNot, createCombinationsWithRep, createCosh, createCsch, createDivideScalar, createEqualText, createExpm1, createIsNumeric, createLN2, createLcm, createLog10, createMultiplyScalar, createNthRoot, createPickRandom, createRandomInt, createRightArithShift, createSec, createSinh, createSqrt, createTan, createUnaryMinus, createAcosh, createApply, createAsinh, createBitXor, createClone, createCumSum, createEqual, createFactorial, createHasNumericValue, createIsNaN, createLarger, createLog2, createMode, createNorm, createPartitionSelect, createPrint, createQuantileSeq, createRound, createSmaller, createStirlingS2, createTrue, createVariance, createAcsch, createAtan2, createCatalan, createCompareNatural, createComposition, createDeepEqual, createFloor, createHypot, createLgamma, createMedian, createMultinomial, createPermutations, createRange, createSign, createStd, createCeil, createCoth, createFix, createIsPrime, createNumeric, createProd, createBellNumbers, createGcd, createMad, createSum, createMax, createMin } from '../factoriesNumber.js'; | ||
createSubset, createTau, createTyped, createUnaryPlus, createVersion, createXor, createAbs, createAcos, createAcot, createAcsc, createAdd, createAnd, createAsec, createAsin, createAtan, createAtanh, createBitAnd, createBitOr, createBoolean, createCbrt, createCombinations, createCompare, createCompareText, createCos, createCot, createCsc, createCube, createDivide, createEqualScalar, createErf, createExp, createFilter, createForEach, createFormat, createGamma, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLargerEq, createLeftShift, createLog, createLog1p, createMap, createMean, createMod, createMultiply, createNot, createNumber, createOr, createPi, createPow, createRandom, createRightLogShift, createSQRT2, createSech, createSin, createSize, createSmallerEq, createSquare, createString, createSubtract, createTanh, createTypeOf, createUnequal, createXgcd, createAcoth, createAddScalar, createAsech, createBitNot, createCombinationsWithRep, createCosh, createCsch, createDivideScalar, createEqualText, createExpm1, createIsNumeric, createLN2, createLcm, createLog10, createMultiplyScalar, createNthRoot, createPickRandom, createRandomInt, createRightArithShift, createSec, createSinh, createSqrt, createTan, createUnaryMinus, createAcosh, createApply, createAsinh, createBitXor, createClone, createCumSum, createEqual, createFactorial, createHasNumericValue, createIsNaN, createLarger, createLog2, createMode, createNorm, createPartitionSelect, createPrint, createQuantileSeq, createRound, createSmaller, createStirlingS2, createTrue, createVariance, createZeta, createAcsch, createAtan2, createCatalan, createCompareNatural, createComposition, createDeepEqual, createFloor, createHypot, createLgamma, createMedian, createMultinomial, createPermutations, createRange, createSign, createStd, createCeil, createCoth, createFix, createIsPrime, createNumeric, createProd, createBellNumbers, createGcd, createMad, createSum, createMax, createMin } from '../factoriesNumber.js'; | ||
export var e = /* #__PURE__ */createE({ | ||
@@ -382,2 +382,3 @@ config | ||
compare, | ||
isInteger, | ||
multiply, | ||
@@ -418,2 +419,18 @@ partitionSelect, | ||
}); | ||
export var zeta = /* #__PURE__ */createZeta({ | ||
add, | ||
config, | ||
divide, | ||
equal, | ||
factorial, | ||
gamma, | ||
isNegative, | ||
multiply, | ||
pi, | ||
pow, | ||
sin, | ||
smallerEq, | ||
subtract, | ||
typed | ||
}); | ||
export var acsch = /* #__PURE__ */createAcsch({ | ||
@@ -420,0 +437,0 @@ typed |
@@ -6,4 +6,4 @@ export var indexDocs = { | ||
description: 'Create an index to get or replace a subset of a matrix', | ||
examples: ['[1, 2, 3]', 'A = [1, 2, 3; 4, 5, 6]', 'A[1, :]', 'A[1, 2] = 50', 'A[1:2, 1:2] = ones(2, 2)'], | ||
examples: ['A = [1, 2, 3; 4, 5, 6]', 'A[1, :]', 'A[1, 2] = 50', 'A[1:2, 1:2] = 1', 'B = [1, 2, 3]', 'B[B>1 and B<3]'], | ||
seealso: ['bignumber', 'boolean', 'complex', 'matrix,', 'number', 'range', 'string', 'unit'] | ||
}; |
@@ -187,2 +187,3 @@ import { eDocs } from './constants/e.js'; | ||
import { erfDocs } from './function/special/erf.js'; | ||
import { zetaDocs } from './function/special/zeta.js'; | ||
import { madDocs } from './function/statistics/mad.js'; | ||
@@ -657,2 +658,3 @@ import { maxDocs } from './function/statistics/max.js'; | ||
erf: erfDocs, | ||
zeta: zetaDocs, | ||
// functions - statistics | ||
@@ -659,0 +661,0 @@ cumsum: cumSumDocs, |
@@ -25,4 +25,9 @@ import { errorTransform } from '../../transform/utils/errorTransform.js'; | ||
if (Array.isArray(object)) { | ||
// we use matrix.subset here instead of the function subset because we must not clone the contents | ||
return matrix(object).subset(index, value).valueOf(); | ||
var result = matrix(object).subset(index, value).valueOf(); | ||
// shallow copy all (updated) items into the original array | ||
result.forEach((item, index) => { | ||
object[index] = item; | ||
}); | ||
return object; | ||
} else if (object && typeof object.subset === 'function') { | ||
@@ -29,0 +34,0 @@ // Matrix |
import { isArray, isBigNumber, isMatrix, isNumber, isRange } from '../../utils/is.js'; | ||
import { factory } from '../../utils/factory.js'; | ||
var name = 'index'; | ||
var dependencies = ['Index']; | ||
var dependencies = ['Index', 'getMatrixDataType']; | ||
export var createIndexTransform = /* #__PURE__ */factory(name, dependencies, _ref => { | ||
var { | ||
Index | ||
Index, | ||
getMatrixDataType | ||
} = _ref; | ||
@@ -20,3 +21,3 @@ /** | ||
// change from one-based to zero based, and convert BigNumber to number | ||
// change from one-based to zero based, convert BigNumber to number and leave Array of Booleans as is | ||
if (isRange(arg)) { | ||
@@ -30,5 +31,7 @@ arg.start--; | ||
} else if (isArray(arg) || isMatrix(arg)) { | ||
arg = arg.map(function (v) { | ||
return v - 1; | ||
}); | ||
if (getMatrixDataType(arg) !== 'boolean') { | ||
arg = arg.map(function (v) { | ||
return v - 1; | ||
}); | ||
} | ||
} else if (isNumber(arg)) { | ||
@@ -35,0 +38,0 @@ arg--; |
@@ -5,11 +5,15 @@ import { factory } from '../../utils/factory.js'; | ||
var name = 'subset'; | ||
var dependencies = ['typed', 'matrix']; | ||
var dependencies = ['typed', 'matrix', 'zeros', 'add']; | ||
export var createSubsetTransform = /* #__PURE__ */factory(name, dependencies, _ref => { | ||
var { | ||
typed, | ||
matrix | ||
matrix, | ||
zeros, | ||
add | ||
} = _ref; | ||
var subset = createSubset({ | ||
typed, | ||
matrix | ||
matrix, | ||
zeros, | ||
add | ||
}); | ||
@@ -16,0 +20,0 @@ |
@@ -99,2 +99,3 @@ export { createTyped } from './core/function/typed.js'; | ||
export { createErf } from './function/special/erf.js'; | ||
export { createZeta } from './function/special/zeta.js'; | ||
export { createMode } from './function/statistics/mode.js'; | ||
@@ -287,3 +288,4 @@ export { createProd } from './function/statistics/prod.js'; | ||
export { createSumTransform } from './expression/transform/sum.transform.js'; | ||
export { createQuantileSeqTransform } from './expression/transform/quantileSeq.transform.js'; | ||
export { createCumSumTransform } from './expression/transform/cumsum.transform.js'; | ||
export { createVarianceTransform } from './expression/transform/variance.transform.js'; |
@@ -164,3 +164,3 @@ import { absNumber, acoshNumber, acosNumber, acothNumber, acotNumber, acschNumber, acscNumber, addNumber, andNumber, asechNumber, asecNumber, asinhNumber, asinNumber, atan2Number, atanhNumber, atanNumber, bitAndNumber, bitNotNumber, bitOrNumber, bitXorNumber, cbrtNumber, combinationsNumber, coshNumber, cosNumber, cothNumber, cotNumber, cschNumber, cscNumber, cubeNumber, divideNumber, expm1Number, expNumber, gammaNumber, gcdNumber, isIntegerNumber, isNaNNumber, isNegativeNumber, isPositiveNumber, isZeroNumber, lcmNumber, leftShiftNumber, lgammaNumber, log10Number, log1pNumber, log2Number, logNumber, modNumber, multiplyNumber, normNumber, notNumber, nthRootNumber, orNumber, powNumber, rightArithShiftNumber, rightLogShiftNumber, roundNumber, sechNumber, secNumber, signNumber, sinhNumber, sinNumber, sqrtNumber, squareNumber, subtractNumber, tanhNumber, tanNumber, unaryMinusNumber, unaryPlusNumber, xgcdNumber, xorNumber } from './plain/number/index.js'; | ||
export { createErf } from './function/special/erf.js'; | ||
export { createZeta } from './function/special/zeta.js'; | ||
// statistics | ||
@@ -167,0 +167,0 @@ export { createMode } from './function/statistics/mode.js'; |
import { isBigNumber, isMatrix, isNumber } from '../../utils/is.js'; | ||
import { clone } from '../../utils/object.js'; | ||
import { arraySize } from '../../utils/array.js'; | ||
import { arraySize, concat as _concat } from '../../utils/array.js'; | ||
import { IndexError } from '../../error/IndexError.js'; | ||
@@ -96,3 +96,3 @@ import { DimensionError } from '../../error/DimensionError.js'; | ||
while (matrices.length) { | ||
res = _concat(res, matrices.shift(), dim, 0); | ||
res = _concat(res, matrices.shift(), dim); | ||
} | ||
@@ -105,29 +105,2 @@ return asMatrix ? matrix(res) : res; | ||
}); | ||
}); | ||
/** | ||
* Recursively concatenate two matrices. | ||
* The contents of the matrices is not cloned. | ||
* @param {Array} a Multi dimensional array | ||
* @param {Array} b Multi dimensional array | ||
* @param {number} concatDim The dimension on which to concatenate (zero-based) | ||
* @param {number} dim The current dim (zero-based) | ||
* @return {Array} c The concatenated matrix | ||
* @private | ||
*/ | ||
function _concat(a, b, concatDim, dim) { | ||
if (dim < concatDim) { | ||
// recurse into next dimension | ||
if (a.length !== b.length) { | ||
throw new DimensionError(a.length, b.length); | ||
} | ||
var c = []; | ||
for (var i = 0; i < a.length; i++) { | ||
c[i] = _concat(a[i], b[i], concatDim, dim + 1); | ||
} | ||
return c; | ||
} else { | ||
// concatenate this dimension | ||
return a.concat(b); | ||
} | ||
} | ||
}); |
import { isIndex } from '../../utils/is.js'; | ||
import { clone } from '../../utils/object.js'; | ||
import { validateIndex } from '../../utils/array.js'; | ||
import { isEmptyIndex, validateIndex, validateIndexSourceSize } from '../../utils/array.js'; | ||
import { getSafeProperty, setSafeProperty } from '../../utils/customs.js'; | ||
@@ -8,7 +8,9 @@ import { DimensionError } from '../../error/DimensionError.js'; | ||
var name = 'subset'; | ||
var dependencies = ['typed', 'matrix']; | ||
var dependencies = ['typed', 'matrix', 'zeros', 'add']; | ||
export var createSubset = /* #__PURE__ */factory(name, dependencies, _ref => { | ||
var { | ||
typed, | ||
matrix | ||
matrix, | ||
zeros, | ||
add | ||
} = _ref; | ||
@@ -26,9 +28,11 @@ /** | ||
* const d = [[1, 2], [3, 4]] | ||
* math.subset(d, math.index(1, 0)) // returns 3 | ||
* math.subset(d, math.index([0, 1], 1)) // returns [[2], [4]] | ||
* math.subset(d, math.index(1, 0)) // returns 3 | ||
* math.subset(d, math.index([0, 1], 1)) // returns [[2], [4]] | ||
* math.subset(d, math.index([false, true], 0)) // returns [[3]] | ||
* | ||
* // replace a subset | ||
* const e = [] | ||
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]] | ||
* const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 6], [0, 7]] | ||
* const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 0, 6]] | ||
* const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 0, 6], [0, 7, 0]] | ||
* math.subset(g, math.index([false, true], 1), 8) // returns [[5, 0, 6], [0, 8, 0]] | ||
* | ||
@@ -41,3 +45,3 @@ * // get submatrix using ranges | ||
* ] | ||
* math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1,2,3],[4,5,6]] | ||
* math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1, 2, 3], [4, 5, 6]] | ||
* | ||
@@ -61,28 +65,44 @@ * See also: | ||
*/ | ||
return typed(name, { | ||
// get subset | ||
'Array, Index': function ArrayIndex(value, index) { | ||
var m = matrix(value); | ||
var subset = m.subset(index); // returns a Matrix | ||
return index.isScalar() ? subset : subset.valueOf(); // return an Array (like the input) | ||
}, | ||
'Matrix, Index': function MatrixIndex(value, index) { | ||
if (isEmptyIndex(index)) { | ||
return matrix(); | ||
} | ||
validateIndexSourceSize(value, index); | ||
return value.subset(index); | ||
}, | ||
'Array, Index': typed.referTo('Matrix, Index', function (subsetRef) { | ||
return function (value, index) { | ||
var subsetResult = subsetRef(matrix(value), index); | ||
return index.isScalar() ? subsetResult : subsetResult.valueOf(); | ||
}; | ||
}), | ||
'Object, Index': _getObjectProperty, | ||
'string, Index': _getSubstring, | ||
// set subset | ||
'Array, Index, any': function ArrayIndexAny(value, index, replacement) { | ||
return matrix(clone(value)).subset(index, replacement, undefined).valueOf(); | ||
}, | ||
'Array, Index, any, any': function ArrayIndexAnyAny(value, index, replacement, defaultValue) { | ||
return matrix(clone(value)).subset(index, replacement, defaultValue).valueOf(); | ||
}, | ||
'Matrix, Index, any': function MatrixIndexAny(value, index, replacement) { | ||
return value.clone().subset(index, replacement); | ||
}, | ||
'Matrix, Index, any, any': function MatrixIndexAnyAny(value, index, replacement, defaultValue) { | ||
return value.clone().subset(index, replacement, defaultValue); | ||
if (isEmptyIndex(index)) { | ||
return value; | ||
} | ||
validateIndexSourceSize(value, index); | ||
return value.clone().subset(index, _broadcastReplacement(replacement, index), defaultValue); | ||
}, | ||
'Array, Index, any, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) { | ||
return function (value, index, replacement, defaultValue) { | ||
var subsetResult = subsetRef(matrix(value), index, replacement, defaultValue); | ||
return subsetResult.isMatrix ? subsetResult.valueOf() : subsetResult; | ||
}; | ||
}), | ||
'Array, Index, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) { | ||
return function (value, index, replacement) { | ||
return subsetRef(matrix(value), index, replacement, undefined).valueOf(); | ||
}; | ||
}), | ||
'Matrix, Index, any': typed.referTo('Matrix, Index, any, any', function (subsetRef) { | ||
return function (value, index, replacement) { | ||
return subsetRef(value, index, replacement, undefined); | ||
}; | ||
}), | ||
'string, Index, string': _setSubstring, | ||
@@ -92,2 +112,28 @@ 'string, Index, string, string': _setSubstring, | ||
}); | ||
/** | ||
* Broadcasts a replacment value to be the same size as index | ||
* @param {number | BigNumber | Array | Matrix} replacement Replacement value to try to broadcast | ||
* @param {*} index Index value | ||
* @returns broadcasted replacement that matches the size of index | ||
*/ | ||
function _broadcastReplacement(replacement, index) { | ||
if (typeof replacement === 'string') { | ||
throw new Error('can\'t boradcast a string'); | ||
} | ||
if (index._isScalar) { | ||
return replacement; | ||
} | ||
var indexSize = index.size(); | ||
if (indexSize.every(d => d > 0)) { | ||
try { | ||
return add(replacement, zeros(indexSize)); | ||
} catch (error) { | ||
return replacement; | ||
} | ||
} else { | ||
return replacement; | ||
} | ||
} | ||
}); | ||
@@ -107,2 +153,6 @@ | ||
} | ||
if (isEmptyIndex(index)) { | ||
return ''; | ||
} | ||
validateIndexSourceSize(Array.from(str), index); | ||
if (index.size().length !== 1) { | ||
@@ -129,3 +179,3 @@ throw new DimensionError(index.size().length, 1); | ||
* @param {string} replacement Replacement string | ||
* @param {string} [defaultValue] Default value to be uses when resizing | ||
* @param {string} [defaultValue] Default value to be used when resizing | ||
* the string. is ' ' by default | ||
@@ -140,2 +190,6 @@ * @returns {string} result | ||
} | ||
if (isEmptyIndex(index)) { | ||
return str; | ||
} | ||
validateIndexSourceSize(Array.from(str), index); | ||
if (index.size().length !== 1) { | ||
@@ -190,2 +244,5 @@ throw new DimensionError(index.size().length, 1); | ||
function _getObjectProperty(object, index) { | ||
if (isEmptyIndex(index)) { | ||
return undefined; | ||
} | ||
if (index.size().length !== 1) { | ||
@@ -210,2 +267,5 @@ throw new DimensionError(index.size(), 1); | ||
function _setObjectProperty(object, index, replacement) { | ||
if (isEmptyIndex(index)) { | ||
return object; | ||
} | ||
if (index.size().length !== 1) { | ||
@@ -212,0 +272,0 @@ throw new DimensionError(index.size(), 1); |
import { isBigNumber, isCollection, isNumber } from '../../utils/is.js'; | ||
import { isInteger } from '../../utils/number.js'; | ||
import { flatten } from '../../utils/array.js'; | ||
import { factory } from '../../utils/factory.js'; | ||
import { createApply } from '../matrix/apply.js'; | ||
var name = 'quantileSeq'; | ||
var dependencies = ['typed', 'add', 'multiply', 'partitionSelect', 'compare']; | ||
var dependencies = ['typed', 'add', 'multiply', 'partitionSelect', 'compare', 'isInteger']; | ||
export var createQuantileSeq = /* #__PURE__ */factory(name, dependencies, _ref => { | ||
@@ -13,3 +13,4 @@ var { | ||
partitionSelect, | ||
compare | ||
compare, | ||
isInteger | ||
} = _ref; | ||
@@ -50,2 +51,28 @@ /** | ||
*/ | ||
var apply = createApply({ | ||
typed, | ||
isInteger | ||
}); | ||
/** | ||
* Check if array value types are valid, throw error otherwise. | ||
* @param {number | BigNumber | Unit} x | ||
* @param {number | BigNumber | Unit} x | ||
* @private | ||
*/ | ||
var validate = typed({ | ||
'number | BigNumber | Unit': function numberBigNumberUnit(x) { | ||
return x; | ||
} | ||
}); | ||
return typed(name, { | ||
'Array|Matrix, number|BigNumber|Array': (data, prob) => quantileSeq(data, prob, false), | ||
'Array|Matrix, number|BigNumber|Array, boolean': quantileSeq, | ||
'Array|Matrix, number|BigNumber|Array, number': (data, prob, dim) => _quantileSeqDim(data, prob, false, dim), | ||
'Array|Matrix, number|BigNumber|Array, boolean, number': (data, prob, sorted, dim) => _quantileSeqDim(data, prob, sorted, dim) | ||
}); | ||
function _quantileSeqDim(data, prob, sorted, dim) { | ||
// return [1.3, 1.2] | ||
return apply(data, dim, x => quantileSeq(x, prob, sorted)); | ||
} | ||
function quantileSeq(data, probOrN, sorted) { | ||
@@ -224,15 +251,2 @@ var probArr, dataArr, one; | ||
} | ||
/** | ||
* Check if array value types are valid, throw error otherwise. | ||
* @param {number | BigNumber | Unit} x | ||
* @param {number | BigNumber | Unit} x | ||
* @private | ||
*/ | ||
var validate = typed({ | ||
'number | BigNumber | Unit': function numberBigNumberUnit(x) { | ||
return x; | ||
} | ||
}); | ||
return quantileSeq; | ||
}); |
import { isArray, isBigNumber, isCollection, isIndex, isMatrix, isNumber, isString, typeOf } from '../../utils/is.js'; | ||
import { arraySize, getArrayDataType, processSizesWildcard, reshape, resize, unsqueeze, validate, validateIndex } from '../../utils/array.js'; | ||
import { arraySize, getArrayDataType, processSizesWildcard, reshape, resize, unsqueeze, validate, validateIndex, broadcastTo } from '../../utils/array.js'; | ||
import { format } from '../../utils/string.js'; | ||
@@ -333,2 +333,14 @@ import { isInteger } from '../../utils/number.js'; | ||
// broadcast submatrix | ||
if (!deepStrictEqual(sSize, iSize)) { | ||
try { | ||
if (sSize.length === 0) { | ||
submatrix = broadcastTo([submatrix], iSize); | ||
} else { | ||
submatrix = broadcastTo(submatrix, iSize); | ||
} | ||
sSize = arraySize(submatrix); | ||
} catch (_unused) {} | ||
} | ||
// validate dimensions | ||
@@ -925,16 +937,14 @@ if (iSize.length < matrix._size.length) { | ||
* Preprocess data, which can be an Array or DenseMatrix with nested Arrays and | ||
* Matrices. Replaces all nested Matrices with Arrays | ||
* Matrices. Clones all (nested) Arrays, and replaces all nested Matrices with Arrays | ||
* @memberof DenseMatrix | ||
* @param {Array} data | ||
* @param {Array | Matrix} data | ||
* @return {Array} data | ||
*/ | ||
function preprocess(data) { | ||
for (var i = 0, ii = data.length; i < ii; i++) { | ||
var elem = data[i]; | ||
if (isArray(elem)) { | ||
data[i] = preprocess(elem); | ||
} else if (elem && elem.isMatrix === true) { | ||
data[i] = preprocess(elem.valueOf()); | ||
} | ||
if (isMatrix(data)) { | ||
return preprocess(data.valueOf()); | ||
} | ||
if (isArray(data)) { | ||
return data.map(preprocess); | ||
} | ||
return data; | ||
@@ -941,0 +951,0 @@ } |
@@ -0,3 +1,3 @@ | ||
import { isBigNumber, isMatrix, isArray } from '../../../utils/is.js'; | ||
import { factory } from '../../../utils/factory.js'; | ||
import { isBigNumber, isMatrix } from '../../../utils/is.js'; | ||
var name = 'index'; | ||
@@ -24,3 +24,3 @@ var dependencies = ['typed', 'Index']; | ||
* - An instance of `Range` | ||
* - A one-dimensional Array or a Matrix with numbers | ||
* - A one-dimensional Array or a Matrix with numbers or booleans | ||
* | ||
@@ -32,6 +32,8 @@ * Indexes must be zero-based, integer numbers. | ||
* const b = [1, 2, 3, 4, 5] | ||
* math.subset(b, math.index([1, 2, 3])) // returns [2, 3, 4] | ||
* math.subset(b, math.index([1, 2, 3])) // returns [2, 3, 4] | ||
* math.subset(b, math.index([false, true, true, true, false])) // returns [2, 3, 4] | ||
* | ||
* const a = math.matrix([[1, 2], [3, 4]]) | ||
* a.subset(math.index(0, 1)) // returns 2 | ||
* a.subset(math.index(0, [false, true])) // returns 2 | ||
* | ||
@@ -50,3 +52,3 @@ * See also: | ||
return arg.toNumber(); // convert BigNumber to Number | ||
} else if (Array.isArray(arg) || isMatrix(arg)) { | ||
} else if (isArray(arg) || isMatrix(arg)) { | ||
return arg.map(function (elem) { | ||
@@ -53,0 +55,0 @@ // convert BigNumber to Number |
@@ -1,2 +0,2 @@ | ||
import { isMatrix, isRange } from '../../utils/is.js'; | ||
import { isArray, isMatrix, isRange } from '../../utils/is.js'; | ||
import { clone } from '../../utils/object.js'; | ||
@@ -6,6 +6,7 @@ import { isInteger } from '../../utils/number.js'; | ||
var name = 'Index'; | ||
var dependencies = ['ImmutableDenseMatrix']; | ||
var dependencies = ['ImmutableDenseMatrix', 'getMatrixDataType']; | ||
export var createIndexClass = /* #__PURE__ */factory(name, dependencies, _ref => { | ||
var { | ||
ImmutableDenseMatrix | ||
ImmutableDenseMatrix, | ||
getMatrixDataType | ||
} = _ref; | ||
@@ -24,3 +25,5 @@ /** | ||
* An Array with the Set values | ||
* An Array with Booleans | ||
* A Matrix with the Set values | ||
* A Matrix with Booleans | ||
* | ||
@@ -38,11 +41,22 @@ * The parameters start, end, and step must be integer numbers. | ||
this._dimensions = []; | ||
this._sourceSize = []; | ||
this._isScalar = true; | ||
for (var i = 0, ii = arguments.length; i < ii; i++) { | ||
var arg = arguments[i]; | ||
var argIsArray = isArray(arg); | ||
var argIsMatrix = isMatrix(arg); | ||
var sourceSize = null; | ||
if (isRange(arg)) { | ||
this._dimensions.push(arg); | ||
this._isScalar = false; | ||
} else if (Array.isArray(arg) || isMatrix(arg)) { | ||
} else if (argIsArray || argIsMatrix) { | ||
// create matrix | ||
var m = _createImmutableMatrix(arg.valueOf()); | ||
var m = void 0; | ||
if (getMatrixDataType(arg) === 'boolean') { | ||
if (argIsArray) m = _createImmutableMatrix(_booleansArrayToNumbersForIndex(arg).valueOf()); | ||
if (argIsMatrix) m = _createImmutableMatrix(_booleansArrayToNumbersForIndex(arg._data).valueOf()); | ||
sourceSize = arg.valueOf().length; | ||
} else { | ||
m = _createImmutableMatrix(arg.valueOf()); | ||
} | ||
this._dimensions.push(m); | ||
@@ -52,3 +66,3 @@ // size | ||
// scalar | ||
if (size.length !== 1 || size[0] !== 1) { | ||
if (size.length !== 1 || size[0] !== 1 || sourceSize !== null) { | ||
this._isScalar = false; | ||
@@ -64,2 +78,3 @@ } | ||
} | ||
this._sourceSize.push(sourceSize); | ||
// TODO: implement support for wildcard '*' | ||
@@ -94,2 +109,3 @@ } | ||
index._isScalar = this._isScalar; | ||
index._sourceSize = this._sourceSize; | ||
return index; | ||
@@ -272,2 +288,18 @@ }; | ||
isClass: true | ||
}); | ||
}); | ||
/** | ||
* Receives an array of booleans and returns an array of Numbers for Index | ||
* @param {Array} booleanArrayIndex An array of booleans | ||
* @return {Array} A set of numbers ready for index | ||
*/ | ||
function _booleansArrayToNumbersForIndex(booleanArrayIndex) { | ||
// gets an array of booleans and returns an array of numbers | ||
var indexOfNumbers = []; | ||
booleanArrayIndex.forEach((bool, idx) => { | ||
if (bool) { | ||
indexOfNumbers.push(idx); | ||
} | ||
}); | ||
return indexOfNumbers; | ||
} |
@@ -0,1 +1,2 @@ | ||
import { checkBroadcastingRules } from '../../../utils/array.js'; | ||
import { factory } from '../../../utils/factory.js'; | ||
@@ -35,6 +36,4 @@ var name = 'broadcast'; | ||
// check if the broadcasting rules applyes for both matrices | ||
for (var _dim = 0; _dim < N; _dim++) { | ||
_checkRules(sizeA, sizeMax, _dim); | ||
_checkRules(sizeB, sizeMax, _dim); | ||
} | ||
checkBroadcastingRules(sizeA, sizeMax); | ||
checkBroadcastingRules(sizeB, sizeMax); | ||
@@ -51,8 +50,8 @@ // reshape A or B if needed to make them ready for concat | ||
// stretches the matrices on each dimension to make them the same size | ||
for (var _dim2 = 0; _dim2 < N; _dim2++) { | ||
if (AA._size[_dim2] < sizeMax[_dim2]) { | ||
AA = _stretch(AA, sizeMax[_dim2], _dim2); | ||
for (var _dim = 0; _dim < N; _dim++) { | ||
if (AA._size[_dim] < sizeMax[_dim]) { | ||
AA = _stretch(AA, sizeMax[_dim], _dim); | ||
} | ||
if (BB._size[_dim2] < sizeMax[_dim2]) { | ||
BB = _stretch(BB, sizeMax[_dim2], _dim2); | ||
if (BB._size[_dim] < sizeMax[_dim]) { | ||
BB = _stretch(BB, sizeMax[_dim], _dim); | ||
} | ||
@@ -72,7 +71,2 @@ } | ||
} | ||
function _checkRules(shape, sizeMax, dim) { | ||
if (shape[dim] < sizeMax[dim] & shape[dim] > 1) { | ||
throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(shape, ") not possible to broadcast dimension ").concat(dim, " with size ").concat(shape[dim], " to size ").concat(sizeMax[dim])); | ||
} | ||
} | ||
}); |
@@ -0,6 +1,8 @@ | ||
import _extends from "@babel/runtime/helpers/extends"; | ||
import { isInteger } from './number.js'; | ||
import { isNumber } from './is.js'; | ||
import { isNumber, isBigNumber, isArray, isString } from './is.js'; | ||
import { format } from './string.js'; | ||
import { DimensionError } from '../error/DimensionError.js'; | ||
import { IndexError } from '../error/IndexError.js'; | ||
import { deepStrictEqual } from './object.js'; | ||
@@ -79,2 +81,19 @@ /** | ||
/** | ||
* Validate whether the source of the index matches the size of the Array | ||
* @param {Array | Matrix} array Array to be validated | ||
* @param {Index} index Index with the source information to validate | ||
* @throws DimensionError | ||
*/ | ||
export function validateIndexSourceSize(value, index) { | ||
var valueSize = value.isMatrix ? value._size : arraySize(value); | ||
var sourceSize = index._sourceSize; | ||
// checks if the source size is not null and matches the valueSize | ||
sourceSize.forEach((sourceDim, i) => { | ||
if (sourceDim !== null && sourceDim !== valueSize[i]) { | ||
throw new DimensionError(sourceDim, valueSize[i]); | ||
} | ||
}); | ||
} | ||
/** | ||
* Test whether index is an integer number with index >= 0 and index < length | ||
@@ -86,8 +105,34 @@ * when length is provided | ||
export function validateIndex(index, length) { | ||
if (!isNumber(index) || !isInteger(index)) { | ||
throw new TypeError('Index must be an integer (value: ' + index + ')'); | ||
if (index !== undefined) { | ||
if (!isNumber(index) || !isInteger(index)) { | ||
throw new TypeError('Index must be an integer (value: ' + index + ')'); | ||
} | ||
if (index < 0 || typeof length === 'number' && index >= length) { | ||
throw new IndexError(index, length); | ||
} | ||
} | ||
if (index < 0 || typeof length === 'number' && index >= length) { | ||
throw new IndexError(index, length); | ||
} | ||
/** | ||
* Test if and index has empty values | ||
* @param {number} index Zero-based index | ||
*/ | ||
export function isEmptyIndex(index) { | ||
for (var i = 0; i < index._dimensions.length; ++i) { | ||
var dimension = index._dimensions[i]; | ||
if (dimension._data && isArray(dimension._data)) { | ||
if (dimension._size[0] === 0) { | ||
return true; | ||
} | ||
} else if (dimension.isRange) { | ||
if (dimension.start === dimension.end) { | ||
return true; | ||
} | ||
} else if (isString(dimension)) { | ||
if (dimension.length === 0) { | ||
return true; | ||
} | ||
} | ||
} | ||
return false; | ||
} | ||
@@ -97,4 +142,4 @@ | ||
* Resize a multi dimensional array. The resized array is returned. | ||
* @param {Array} array Array to be resized | ||
* @param {Array.<number>} size Array with the size of each dimension | ||
* @param {Array | number} array Array to be resized | ||
* @param {number[]} size Array with the size of each dimension | ||
* @param {*} [defaultValue=0] Value to be filled in in new entries, | ||
@@ -107,6 +152,4 @@ * zero by default. Specify for example `null`, | ||
export function resize(array, size, defaultValue) { | ||
// TODO: add support for scalars, having size=[] ? | ||
// check the type of the arguments | ||
if (!Array.isArray(array) || !Array.isArray(size)) { | ||
if (!Array.isArray(size)) { | ||
throw new TypeError('Array expected'); | ||
@@ -125,2 +168,7 @@ } | ||
// convert number to an array | ||
if (isNumber(array) || isBigNumber(array)) { | ||
array = [array]; | ||
} | ||
// recursively resize the array | ||
@@ -194,3 +242,3 @@ var _defaultValue = defaultValue !== undefined ? defaultValue : 0; | ||
* @param {Array} array Array to be reshaped | ||
* @param {Array.<number>} sizes List of sizes for each dimension | ||
* @param {number[]} sizes List of sizes for each dimension | ||
* @returns {Array} Array whose data has been formatted to fit the | ||
@@ -228,6 +276,6 @@ * specified dimensions | ||
* Replaces the wildcard -1 in the sizes array. | ||
* @param {Array.<number>} sizes List of sizes for each dimension. At most on wildcard. | ||
* @param {number[]} sizes List of sizes for each dimension. At most on wildcard. | ||
* @param {number} currentLength Number of elements in the array. | ||
* @throws {Error} If more than one wildcard or unable to replace it. | ||
* @returns {Array.<number>} The sizes array with wildcard replaced. | ||
* @returns {number[]} The sizes array with wildcard replaced. | ||
*/ | ||
@@ -257,3 +305,3 @@ export function processSizesWildcard(sizes, currentLength) { | ||
* Computes the product of all array elements. | ||
* @param {Array<number>} array Array of factors | ||
* @param {number[]} array Array of factors | ||
* @returns {number} Product of all elements | ||
@@ -268,3 +316,3 @@ */ | ||
* @param {Array} array Array to be reshaped | ||
* @param {Array.<number>} sizes List of sizes for each dimension | ||
* @param {number[]} sizes List of sizes for each dimension | ||
* @returns {Array} Array whose data has been formatted to fit the | ||
@@ -540,6 +588,6 @@ * specified dimensions | ||
var item = array[i]; | ||
var isArray = Array.isArray(item); | ||
var _isArray = Array.isArray(item); | ||
// Saving the target matrix row size | ||
if (i === 0 && isArray) { | ||
if (i === 0 && _isArray) { | ||
length = item.length; | ||
@@ -549,6 +597,6 @@ } | ||
// If the current item is an array but the length does not equal the targetVectorSize | ||
if (isArray && item.length !== length) { | ||
if (_isArray && item.length !== length) { | ||
return undefined; | ||
} | ||
var itemType = isArray ? getArrayDataType(item, typeOf) // recurse into a nested array | ||
var itemType = _isArray ? getArrayDataType(item, typeOf) // recurse into a nested array | ||
: typeOf(item); | ||
@@ -568,3 +616,3 @@ if (type === undefined) { | ||
* Return the last item from an array | ||
* @param array | ||
* @param {array} | ||
* @returns {*} | ||
@@ -578,2 +626,4 @@ */ | ||
* Get all but the last element of array. | ||
* @param {array} | ||
* @returns {*} | ||
*/ | ||
@@ -592,2 +642,173 @@ export function initial(array) { | ||
return array.indexOf(item) !== -1; | ||
} | ||
/** | ||
* Recursively concatenate two matrices. | ||
* The contents of the matrices is not cloned. | ||
* @param {Array} a Multi dimensional array | ||
* @param {Array} b Multi dimensional array | ||
* @param {number} concatDim The dimension on which to concatenate (zero-based) | ||
* @param {number} dim The current dim (zero-based) | ||
* @return {Array} c The concatenated matrix | ||
* @private | ||
*/ | ||
function concatRecursive(a, b, concatDim, dim) { | ||
if (dim < concatDim) { | ||
// recurse into next dimension | ||
if (a.length !== b.length) { | ||
throw new DimensionError(a.length, b.length); | ||
} | ||
var c = []; | ||
for (var i = 0; i < a.length; i++) { | ||
c[i] = concatRecursive(a[i], b[i], concatDim, dim + 1); | ||
} | ||
return c; | ||
} else { | ||
// concatenate this dimension | ||
return a.concat(b); | ||
} | ||
} | ||
/** | ||
* Concatenates many arrays in the specified direction | ||
* @param {...Array} arrays All the arrays to concatenate | ||
* @param {number} concatDim The dimension on which to concatenate (zero-based) | ||
* @returns | ||
*/ | ||
export function concat() { | ||
var arrays = Array.prototype.slice.call(arguments, 0, -1); | ||
var concatDim = Array.prototype.slice.call(arguments, -1); | ||
if (arrays.length === 1) { | ||
return arrays[0]; | ||
} | ||
if (arrays.length > 1) { | ||
return arrays.slice(1).reduce(function (A, B) { | ||
return concatRecursive(A, B, concatDim, 0); | ||
}, arrays[0]); | ||
} else { | ||
throw new Error('Wrong number of arguments in function concat'); | ||
} | ||
} | ||
/** | ||
* Receives two or more sizes and get's the broadcasted size for both. | ||
* @param {...number[]} sizes Sizes to broadcast together | ||
* @returns | ||
*/ | ||
export function broadcastSizes() { | ||
for (var _len = arguments.length, sizes = new Array(_len), _key = 0; _key < _len; _key++) { | ||
sizes[_key] = arguments[_key]; | ||
} | ||
var dimensions = sizes.map(s => s.length); | ||
var N = Math.max(...dimensions); | ||
var sizeMax = new Array(N).fill(null); | ||
// check for every size | ||
for (var i = 0; i < sizes.length; i++) { | ||
var size = sizes[i]; | ||
var dim = dimensions[i]; | ||
for (var j = 0; j < dim; j++) { | ||
var n = N - dim + j; | ||
if (size[j] > sizeMax[n]) { | ||
sizeMax[n] = size[j]; | ||
} | ||
} | ||
} | ||
for (var _i = 0; _i < sizes.length; _i++) { | ||
checkBroadcastingRules(sizes[_i], sizeMax); | ||
} | ||
return sizeMax; | ||
} | ||
/** | ||
* Checks if it's possible to broadcast a size to another size | ||
* @param {number[]} size The size of the array to check | ||
* @param {number[]} toSize The size of the array to validate if it can be broadcasted to | ||
*/ | ||
export function checkBroadcastingRules(size, toSize) { | ||
var N = toSize.length; | ||
var dim = size.length; | ||
for (var j = 0; j < dim; j++) { | ||
var n = N - dim + j; | ||
if (size[j] < toSize[n] && size[j] > 1 || size[j] > toSize[n]) { | ||
throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(size, ") not possible to broadcast dimension ").concat(dim, " with size ").concat(size[j], " to size ").concat(toSize[n])); | ||
} | ||
} | ||
} | ||
/** | ||
* Broadcasts a single array to a certain size | ||
* @param {array} array Array to be broadcasted | ||
* @param {number[]} toSize Size to broadcast the array | ||
* @returns The broadcasted array | ||
*/ | ||
export function broadcastTo(array, toSize) { | ||
var Asize = arraySize(array); | ||
if (deepStrictEqual(Asize, toSize)) { | ||
return array; | ||
} | ||
checkBroadcastingRules(Asize, toSize); | ||
var broadcastedSize = broadcastSizes(Asize, toSize); | ||
var N = broadcastedSize.length; | ||
var paddedSize = [...Array(N - Asize.length).fill(1), ...Asize]; | ||
var A = clone(array); | ||
// reshape A if needed to make it ready for concat | ||
if (Asize.length < N) { | ||
A = reshape(A, paddedSize); | ||
Asize = arraySize(A); | ||
} | ||
// stretches the array on each dimension to make it the same size as index | ||
for (var dim = 0; dim < N; dim++) { | ||
if (Asize[dim] < broadcastedSize[dim]) { | ||
A = stretch(A, broadcastedSize[dim], dim); | ||
Asize = arraySize(A); | ||
} | ||
} | ||
return A; | ||
} | ||
/** | ||
* Broadcasts arrays and returns the broadcasted arrays in an array | ||
* @param {...Array | any} arrays | ||
* @returns | ||
*/ | ||
export function broadcastArrays() { | ||
for (var _len2 = arguments.length, arrays = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
arrays[_key2] = arguments[_key2]; | ||
} | ||
if (arrays.length === 0) { | ||
throw new Error('Insuficient number of argumnets in function broadcastArrays'); | ||
} | ||
if (arrays.length === 1) { | ||
return arrays[0]; | ||
} | ||
var sizes = arrays.map(function (array) { | ||
return arraySize(array); | ||
}); | ||
var broadcastedSize = broadcastSizes(...sizes); | ||
var broadcastedArrays = []; | ||
arrays.forEach(function (array) { | ||
broadcastedArrays.push(broadcastTo(array, broadcastedSize)); | ||
}); | ||
return broadcastedArrays; | ||
} | ||
/** | ||
* stretches a matrix up to a certain size in a certain dimension | ||
* @param {Array} arrayToStretch | ||
* @param {number[]} sizeToStretch | ||
* @param {number} dimToStretch | ||
* @returns | ||
*/ | ||
export function stretch(arrayToStretch, sizeToStretch, dimToStretch) { | ||
return concat(...Array(sizeToStretch).fill(arrayToStretch), dimToStretch); | ||
} | ||
/** | ||
* Deep clones a multidimensional array | ||
* @param {Array} array | ||
* @returns cloned array | ||
*/ | ||
export function clone(array) { | ||
return _extends([], array); | ||
} |
@@ -1,3 +0,3 @@ | ||
export var version = '11.9.1'; | ||
export var version = '11.10.0'; | ||
// Note: This file is automatically generated when building math.js. | ||
// Changes made in this file will be overwritten. |
{ | ||
"name": "mathjs", | ||
"version": "11.9.1", | ||
"version": "11.10.0", | ||
"description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.", | ||
@@ -5,0 +5,0 @@ "author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
9632061
2438
154588