Launch Week Day 3: Introducing Organization Notifications in Socket.Learn More
Socket
Book a DemoSign in
Socket

mathjs

Package Overview
Dependencies
Maintainers
1
Versions
306
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mathjs - npm Package Compare versions

Comparing version
14.9.1
to
15.0.0
+1
-1
lib/browser/math.js.LICENSE.txt

@@ -17,3 +17,3 @@ /*!

*
* @version 14.9.1
* @version 15.0.0
* @date 2025-10-10

@@ -20,0 +20,0 @@ *

@@ -30,3 +30,7 @@ "use strict";

// null = randomly seed
randomSeed: null
randomSeed: null,
// legacy behavior for matrix subset. When true, the subset function
// returns a matrix or array with the same size as the index (except for scalars).
// When false, it returns a matrix or array with a size depending on the type of index.
legacySubset: false
};

@@ -69,2 +69,6 @@ "use strict";

}
if (options.legacySubset === true) {
// this if is only for backwards compatibility, it can be removed in the future.
console.warn('Warning: The configuration option "legacySubset" is for compatibility only and might be deprecated in the future.');
}
const prev = (0, _object.clone)(config);

@@ -71,0 +75,0 @@

@@ -7,3 +7,2 @@ "use strict";

exports.sizeDependencies = void 0;
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js");
var _dependenciesTypedGenerated = require("./dependenciesTyped.generated.js");

@@ -17,5 +16,4 @@ var _factoriesAny = require("../../factoriesAny.js");

const sizeDependencies = exports.sizeDependencies = {
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies,
typedDependencies: _dependenciesTypedGenerated.typedDependencies,
createSize: _factoriesAny.createSize
};

@@ -7,3 +7,2 @@ "use strict";

exports.sizeDependencies = void 0;
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js");
var _dependenciesTypedGenerated = require("./dependenciesTyped.generated.js");

@@ -17,5 +16,4 @@ var _factoriesNumber = require("../../factoriesNumber.js");

const sizeDependencies = exports.sizeDependencies = {
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies,
typedDependencies: _dependenciesTypedGenerated.typedDependencies,
createSize: _factoriesNumber.createSize
};

@@ -75,2 +75,6 @@ "use strict";

});
const IndexNode = exports.IndexNode = (0, _factoriesAny.createIndexNode)({
Node,
size: _pureFunctionsAnyGenerated.size
});
const AccessorNode = exports.AccessorNode = (0, _factoriesAny.createAccessorNode)({

@@ -85,6 +89,2 @@ Node,

});
const IndexNode = exports.IndexNode = (0, _factoriesAny.createIndexNode)({
Node,
size: _pureFunctionsAnyGenerated.size
});
const SymbolNode = exports.SymbolNode = (0, _factoriesAny.createSymbolNode)({

@@ -336,2 +336,3 @@ Unit: _pureFunctionsAnyGenerated.Unit,

sin: _pureFunctionsAnyGenerated.sin,
size: _pureFunctionsAnyGenerated.size,
splitUnit: _pureFunctionsAnyGenerated.splitUnit,

@@ -352,2 +353,3 @@ square: _pureFunctionsAnyGenerated.square,

csch: _pureFunctionsAnyGenerated.csch,
dot: _pureFunctionsAnyGenerated.dot,
isNaN: _pureFunctionsAnyGenerated.isNaN,

@@ -358,2 +360,3 @@ isPrime: _pureFunctionsAnyGenerated.isPrime,

matrixFromFunction: _pureFunctionsAnyGenerated.matrixFromFunction,
multiply: _pureFunctionsAnyGenerated.multiply,
ones: _pureFunctionsAnyGenerated.ones,

@@ -386,2 +389,3 @@ randomInt: _pureFunctionsAnyGenerated.randomInt,

leftShift: _pureFunctionsAnyGenerated.leftShift,
matrixFromRows: _pureFunctionsAnyGenerated.matrixFromRows,
mode: _pureFunctionsAnyGenerated.mode,

@@ -394,3 +398,2 @@ nthRoot: _pureFunctionsAnyGenerated.nthRoot,

round: _pureFunctionsAnyGenerated.round,
size: _pureFunctionsAnyGenerated.size,
smaller: _pureFunctionsAnyGenerated.smaller,

@@ -412,3 +415,2 @@ to: _pureFunctionsAnyGenerated.to,

divideScalar: _pureFunctionsAnyGenerated.divideScalar,
dotDivide: _pureFunctionsAnyGenerated.dotDivide,
equalText: _pureFunctionsAnyGenerated.equalText,

@@ -423,3 +425,2 @@ floor: _pureFunctionsAnyGenerated.floor,

matrixFromColumns: _pureFunctionsAnyGenerated.matrixFromColumns,
max: _pureFunctionsAnyGenerated.max,
min: _pureFunctionsAnyGenerated.min,

@@ -438,9 +439,13 @@ mod: _pureFunctionsAnyGenerated.mod,

usolve: _pureFunctionsAnyGenerated.usolve,
zpk2tf: _pureFunctionsAnyGenerated.zpk2tf,
catalan: _pureFunctionsAnyGenerated.catalan,
compareNatural: _pureFunctionsAnyGenerated.compareNatural,
composition: _pureFunctionsAnyGenerated.composition,
cross: _pureFunctionsAnyGenerated.cross,
det: _pureFunctionsAnyGenerated.det,
diff: _pureFunctionsAnyGenerated.diff,
distance: _pureFunctionsAnyGenerated.distance,
dot: _pureFunctionsAnyGenerated.dot,
dotDivide: _pureFunctionsAnyGenerated.dotDivide,
index: _pureFunctionsAnyGenerated.index,
intersect: _pureFunctionsAnyGenerated.intersect,
invmod: _pureFunctionsAnyGenerated.invmod,

@@ -450,4 +455,3 @@ lcm: _pureFunctionsAnyGenerated.lcm,

lsolveAll: _pureFunctionsAnyGenerated.lsolveAll,
matrixFromRows: _pureFunctionsAnyGenerated.matrixFromRows,
multiply: _pureFunctionsAnyGenerated.multiply,
max: _pureFunctionsAnyGenerated.max,
range: _pureFunctionsAnyGenerated.range,

@@ -463,17 +467,18 @@ row: _pureFunctionsAnyGenerated.row,

usolveAll: _pureFunctionsAnyGenerated.usolveAll,
zpk2tf: _pureFunctionsAnyGenerated.zpk2tf,
and: _pureFunctionsAnyGenerated.and,
ceil: _pureFunctionsAnyGenerated.ceil,
column: _pureFunctionsAnyGenerated.column,
cross: _pureFunctionsAnyGenerated.cross,
det: _pureFunctionsAnyGenerated.det,
cumsum: _pureFunctionsAnyGenerated.cumsum,
fix: _pureFunctionsAnyGenerated.fix,
setDifference: _pureFunctionsAnyGenerated.setDifference,
setMultiplicity: _pureFunctionsAnyGenerated.setMultiplicity,
setSymDifference: _pureFunctionsAnyGenerated.setSymDifference,
sum: _pureFunctionsAnyGenerated.sum,
inv: _pureFunctionsAnyGenerated.inv,
lup: _pureFunctionsAnyGenerated.lup,
pinv: _pureFunctionsAnyGenerated.pinv,
pow: _pureFunctionsAnyGenerated.pow,
setDifference: _pureFunctionsAnyGenerated.setDifference,
setMultiplicity: _pureFunctionsAnyGenerated.setMultiplicity,
setSymDifference: _pureFunctionsAnyGenerated.setSymDifference,
setIntersect: _pureFunctionsAnyGenerated.setIntersect,
setUnion: _pureFunctionsAnyGenerated.setUnion,
sqrtm: _pureFunctionsAnyGenerated.sqrtm,
sum: _pureFunctionsAnyGenerated.sum,
vacuumImpedance: _pureFunctionsAnyGenerated.vacuumImpedance,

@@ -498,3 +503,2 @@ wienDisplacement: _pureFunctionsAnyGenerated.wienDisplacement,

ifft: _pureFunctionsAnyGenerated.ifft,
inverseConductanceQuantum: _pureFunctionsAnyGenerated.inverseConductanceQuantum,
klitzing: _pureFunctionsAnyGenerated.klitzing,

@@ -515,3 +519,2 @@ loschmidt: _pureFunctionsAnyGenerated.loschmidt,

secondRadiation: _pureFunctionsAnyGenerated.secondRadiation,
setSize: _pureFunctionsAnyGenerated.setSize,
speedOfLight: _pureFunctionsAnyGenerated.speedOfLight,

@@ -528,4 +531,4 @@ stefanBoltzmann: _pureFunctionsAnyGenerated.stefanBoltzmann,

gravity: _pureFunctionsAnyGenerated.gravity,
intersect: _pureFunctionsAnyGenerated.intersect,
lup: _pureFunctionsAnyGenerated.lup,
inverseConductanceQuantum: _pureFunctionsAnyGenerated.inverseConductanceQuantum,
lusolve: _pureFunctionsAnyGenerated.lusolve,
magneticFluxQuantum: _pureFunctionsAnyGenerated.magneticFluxQuantum,

@@ -539,3 +542,3 @@ molarMassC12: _pureFunctionsAnyGenerated.molarMassC12,

resolve,
setIntersect: _pureFunctionsAnyGenerated.setIntersect,
setSize: _pureFunctionsAnyGenerated.setSize,
simplifyConstant,

@@ -547,3 +550,2 @@ solveODE: _pureFunctionsAnyGenerated.solveODE,

compile,
cumsum: _pureFunctionsAnyGenerated.cumsum,
eigs: _pureFunctionsAnyGenerated.eigs,

@@ -553,3 +555,2 @@ fermiCoupling: _pureFunctionsAnyGenerated.fermiCoupling,

kldivergence: _pureFunctionsAnyGenerated.kldivergence,
lusolve: _pureFunctionsAnyGenerated.lusolve,
mean: _pureFunctionsAnyGenerated.mean,

@@ -559,3 +560,2 @@ molarVolume: _pureFunctionsAnyGenerated.molarVolume,

quantileSeq: _pureFunctionsAnyGenerated.quantileSeq,
setUnion: _pureFunctionsAnyGenerated.setUnion,
simplifyCore,

@@ -622,5 +622,8 @@ variance: _pureFunctionsAnyGenerated.variance,

}),
index: (0, _factoriesAny.createIndexTransform)({
Index: _pureFunctionsAnyGenerated.Index,
getMatrixDataType: _pureFunctionsAnyGenerated.getMatrixDataType
max: (0, _factoriesAny.createMaxTransform)({
config: _configReadonly.config,
isNaN: _pureFunctionsAnyGenerated.isNaN,
larger: _pureFunctionsAnyGenerated.larger,
numeric: _pureFunctionsAnyGenerated.numeric,
typed: _pureFunctionsAnyGenerated.typed
}),

@@ -675,7 +678,2 @@ print: (0, _factoriesAny.createPrintTransform)({

}),
cumsum: (0, _factoriesAny.createCumSumTransform)({
add: _pureFunctionsAnyGenerated.add,
typed: _pureFunctionsAnyGenerated.typed,
unaryPlus: _pureFunctionsAnyGenerated.unaryPlus
}),
diff: (0, _factoriesAny.createDiffTransform)({

@@ -688,8 +686,5 @@ bignumber: _pureFunctionsAnyGenerated.bignumber,

}),
max: (0, _factoriesAny.createMaxTransform)({
config: _configReadonly.config,
isNaN: _pureFunctionsAnyGenerated.isNaN,
larger: _pureFunctionsAnyGenerated.larger,
numeric: _pureFunctionsAnyGenerated.numeric,
typed: _pureFunctionsAnyGenerated.typed
index: (0, _factoriesAny.createIndexTransform)({
Index: _pureFunctionsAnyGenerated.Index,
getMatrixDataType: _pureFunctionsAnyGenerated.getMatrixDataType
}),

@@ -722,2 +717,7 @@ range: (0, _factoriesAny.createRangeTransform)({

}),
cumsum: (0, _factoriesAny.createCumSumTransform)({
add: _pureFunctionsAnyGenerated.add,
typed: _pureFunctionsAnyGenerated.typed,
unaryPlus: _pureFunctionsAnyGenerated.unaryPlus
}),
mean: (0, _factoriesAny.createMeanTransform)({

@@ -780,2 +780,3 @@ add: _pureFunctionsAnyGenerated.add,

SparseMatrix: _pureFunctionsAnyGenerated.SparseMatrix,
IndexNode,
ImmutableDenseMatrix: _pureFunctionsAnyGenerated.ImmutableDenseMatrix,

@@ -786,3 +787,2 @@ Index: _pureFunctionsAnyGenerated.Index,

FibonacciHeap: _pureFunctionsAnyGenerated.FibonacciHeap,
IndexNode,
Spa: _pureFunctionsAnyGenerated.Spa,

@@ -789,0 +789,0 @@ Unit: _pureFunctionsAnyGenerated.Unit,

@@ -73,3 +73,4 @@ "use strict";

const DenseMatrix = exports.DenseMatrix = /* #__PURE__ */(0, _factoriesAny.createDenseMatrixClass)({
Matrix
Matrix,
config: _configReadonly.config
});

@@ -292,2 +293,5 @@ const efimovFactor = exports.efimovFactor = /* #__PURE__ */(0, _factoriesAny.createEfimovFactor)({

});
const size = exports.size = /* #__PURE__ */(0, _factoriesAny.createSize)({
typed
});
const SparseMatrix = exports.SparseMatrix = /* #__PURE__ */(0, _factoriesAny.createSparseMatrixClass)({

@@ -348,2 +352,9 @@ Matrix,

});
const dot = exports.dot = /* #__PURE__ */(0, _factoriesAny.createDot)({
addScalar,
conj,
multiplyScalar,
size,
typed
});
const isNaN = exports.isNaN = /* #__PURE__ */(0, _factoriesAny.createIsNaN)({

@@ -371,2 +382,10 @@ typed

});
const multiply = exports.multiply = /* #__PURE__ */(0, _factoriesAny.createMultiply)({
addScalar,
dot,
equalScalar,
matrix,
multiplyScalar,
typed
});
const ones = exports.ones = /* #__PURE__ */(0, _factoriesAny.createOnes)({

@@ -512,2 +531,8 @@ BigNumber,

});
const matrixFromRows = exports.matrixFromRows = /* #__PURE__ */(0, _factoriesAny.createMatrixFromRows)({
flatten,
matrix,
size,
typed
});
const mode = exports.mode = /* #__PURE__ */(0, _factoriesAny.createMode)({

@@ -557,7 +582,2 @@ isNaN,

});
const size = exports.size = /* #__PURE__ */(0, _factoriesAny.createSize)({
matrix,
config: _configReadonly.config,
typed
});
const smaller = exports.smaller = /* #__PURE__ */(0, _factoriesAny.createSmaller)({

@@ -671,11 +691,2 @@ DenseMatrix,

});
const dotDivide = exports.dotDivide = /* #__PURE__ */(0, _factoriesAny.createDotDivide)({
DenseMatrix,
SparseMatrix,
concat,
divideScalar,
equalScalar,
matrix,
typed
});
const equalText = exports.equalText = /* #__PURE__ */(0, _factoriesAny.createEqualText)({

@@ -759,9 +770,2 @@ compareText,

});
const max = exports.max = /* #__PURE__ */(0, _factoriesAny.createMax)({
config: _configReadonly.config,
isNaN,
larger,
numeric,
typed
});
const min = exports.min = /* #__PURE__ */(0, _factoriesAny.createMin)({

@@ -872,2 +876,9 @@ config: _configReadonly.config,

});
const zpk2tf = exports.zpk2tf = /* #__PURE__ */(0, _factoriesAny.createZpk2tf)({
Complex,
add,
multiply,
number,
typed
});
const catalan = exports.catalan = /* #__PURE__ */(0, _factoriesAny.createCatalan)({

@@ -895,2 +906,17 @@ addScalar,

});
const cross = exports.cross = /* #__PURE__ */(0, _factoriesAny.createCross)({
matrix,
multiply,
subtract,
typed
});
const det = exports.det = /* #__PURE__ */(0, _factoriesAny.createDet)({
divideScalar,
isZero,
matrix,
multiply,
subtractScalar,
typed,
unaryMinus
});
const diff = exports.diff = /* #__PURE__ */(0, _factoriesAny.createDiff)({

@@ -912,7 +938,9 @@ matrix,

});
const dot = exports.dot = /* #__PURE__ */(0, _factoriesAny.createDot)({
addScalar,
conj,
multiplyScalar,
size,
const dotDivide = exports.dotDivide = /* #__PURE__ */(0, _factoriesAny.createDotDivide)({
DenseMatrix,
SparseMatrix,
concat,
divideScalar,
equalScalar,
matrix,
typed

@@ -928,2 +956,19 @@ });

});
const intersect = exports.intersect = /* #__PURE__ */(0, _factoriesAny.createIntersect)({
abs,
add,
addScalar,
config: _configReadonly.config,
divideScalar,
equalScalar,
flatten,
isNumeric,
isZero,
matrix,
multiply,
multiplyScalar,
smaller,
subtract,
typed
});
const invmod = exports.invmod = /* #__PURE__ */(0, _factoriesAny.createInvmod)({

@@ -962,16 +1007,9 @@ BigNumber,

});
const matrixFromRows = exports.matrixFromRows = /* #__PURE__ */(0, _factoriesAny.createMatrixFromRows)({
flatten,
matrix,
size,
const max = exports.max = /* #__PURE__ */(0, _factoriesAny.createMax)({
config: _configReadonly.config,
isNaN,
larger,
numeric,
typed
});
const multiply = exports.multiply = /* #__PURE__ */(0, _factoriesAny.createMultiply)({
addScalar,
dot,
equalScalar,
matrix,
multiplyScalar,
typed
});
const range = exports.range = /* #__PURE__ */(0, _factoriesAny.createRange)({

@@ -1059,9 +1097,2 @@ bignumber,

});
const zpk2tf = exports.zpk2tf = /* #__PURE__ */(0, _factoriesAny.createZpk2tf)({
Complex,
add,
multiply,
number,
typed
});
const and = exports.and = /* #__PURE__ */(0, _factoriesAny.createAnd)({

@@ -1090,16 +1121,6 @@ concat,

});
const cross = exports.cross = /* #__PURE__ */(0, _factoriesAny.createCross)({
matrix,
multiply,
subtract,
typed
});
const det = exports.det = /* #__PURE__ */(0, _factoriesAny.createDet)({
divideScalar,
isZero,
matrix,
multiply,
subtractScalar,
const cumsum = exports.cumsum = /* #__PURE__ */(0, _factoriesAny.createCumSum)({
add,
typed,
unaryMinus
unaryPlus
});

@@ -1116,2 +1137,36 @@ const fix = exports.fix = /* #__PURE__ */(0, _factoriesAny.createFix)({

});
const setDifference = exports.setDifference = /* #__PURE__ */(0, _factoriesAny.createSetDifference)({
DenseMatrix,
Index,
compareNatural,
size,
subset,
typed
});
const setMultiplicity = exports.setMultiplicity = /* #__PURE__ */(0, _factoriesAny.createSetMultiplicity)({
Index,
compareNatural,
size,
subset,
typed
});
const setSymDifference = exports.setSymDifference = /* #__PURE__ */(0, _factoriesAny.createSetSymDifference)({
Index,
concat,
setDifference,
size,
subset,
typed
});
const Spa = exports.Spa = /* #__PURE__ */(0, _factoriesAny.createSpaClass)({
FibonacciHeap,
addScalar,
equalScalar
});
const sum = exports.sum = /* #__PURE__ */(0, _factoriesAny.createSum)({
add,
config: _configReadonly.config,
numeric,
typed
});
const inv = exports.inv = /* #__PURE__ */(0, _factoriesAny.createInv)({

@@ -1128,2 +1183,17 @@ abs,

});
const lup = exports.lup = /* #__PURE__ */(0, _factoriesAny.createLup)({
DenseMatrix,
Spa,
SparseMatrix,
abs,
addScalar,
divideScalar,
equalScalar,
larger,
matrix,
multiplyScalar,
subtractScalar,
typed,
unaryMinus
});
const pinv = exports.pinv = /* #__PURE__ */(0, _factoriesAny.createPinv)({

@@ -1154,3 +1224,3 @@ Complex,

});
const setDifference = exports.setDifference = /* #__PURE__ */(0, _factoriesAny.createSetDifference)({
const setIntersect = exports.setIntersect = /* #__PURE__ */(0, _factoriesAny.createSetIntersect)({
DenseMatrix,

@@ -1163,13 +1233,7 @@ Index,

});
const setMultiplicity = exports.setMultiplicity = /* #__PURE__ */(0, _factoriesAny.createSetMultiplicity)({
const setUnion = exports.setUnion = /* #__PURE__ */(0, _factoriesAny.createSetUnion)({
Index,
compareNatural,
size,
subset,
typed
});
const setSymDifference = exports.setSymDifference = /* #__PURE__ */(0, _factoriesAny.createSetSymDifference)({
Index,
concat,
setDifference,
setIntersect,
setSymDifference,
size,

@@ -1179,7 +1243,2 @@ subset,

});
const Spa = exports.Spa = /* #__PURE__ */(0, _factoriesAny.createSpaClass)({
FibonacciHeap,
addScalar,
equalScalar
});
const sqrtm = exports.sqrtm = /* #__PURE__ */(0, _factoriesAny.createSqrtm)({

@@ -1198,8 +1257,2 @@ abs,

});
const sum = exports.sum = /* #__PURE__ */(0, _factoriesAny.createSum)({
add,
config: _configReadonly.config,
numeric,
typed
});
const Unit = exports.Unit = /* #__PURE__ */(0, _factoriesAny.createUnitClass)({

@@ -1339,7 +1392,2 @@ BigNumber,

});
const inverseConductanceQuantum = exports.inverseConductanceQuantum = /* #__PURE__ */(0, _factoriesAny.createInverseConductanceQuantum)({
BigNumber,
Unit,
config: _configReadonly.config
});
const klitzing = exports.klitzing = /* #__PURE__ */(0, _factoriesAny.createKlitzing)({

@@ -1420,6 +1468,2 @@ BigNumber,

});
const setSize = exports.setSize = /* #__PURE__ */(0, _factoriesAny.createSetSize)({
compareNatural,
typed
});
const speedOfLight = exports.speedOfLight = /* #__PURE__ */(0, _factoriesAny.createSpeedOfLight)({

@@ -1482,33 +1526,15 @@ BigNumber,

});
const intersect = exports.intersect = /* #__PURE__ */(0, _factoriesAny.createIntersect)({
abs,
add,
addScalar,
config: _configReadonly.config,
divideScalar,
equalScalar,
flatten,
isNumeric,
isZero,
matrix,
multiply,
multiplyScalar,
smaller,
subtract,
typed
const inverseConductanceQuantum = exports.inverseConductanceQuantum = /* #__PURE__ */(0, _factoriesAny.createInverseConductanceQuantum)({
BigNumber,
Unit,
config: _configReadonly.config
});
const lup = exports.lup = /* #__PURE__ */(0, _factoriesAny.createLup)({
const lusolve = exports.lusolve = /* #__PURE__ */(0, _factoriesAny.createLusolve)({
DenseMatrix,
Spa,
SparseMatrix,
abs,
addScalar,
divideScalar,
equalScalar,
larger,
lsolve,
lup,
matrix,
multiplyScalar,
subtractScalar,
slu,
typed,
unaryMinus
usolve
});

@@ -1558,8 +1584,4 @@ const magneticFluxQuantum = exports.magneticFluxQuantum = /* #__PURE__ */(0, _factoriesAny.createMagneticFluxQuantum)({

});
const setIntersect = exports.setIntersect = /* #__PURE__ */(0, _factoriesAny.createSetIntersect)({
DenseMatrix,
Index,
const setSize = exports.setSize = /* #__PURE__ */(0, _factoriesAny.createSetSize)({
compareNatural,
size,
subset,
typed

@@ -1610,7 +1632,2 @@ });

});
const cumsum = exports.cumsum = /* #__PURE__ */(0, _factoriesAny.createCumSum)({
add,
typed,
unaryPlus
});
const eigs = exports.eigs = /* #__PURE__ */(0, _factoriesAny.createEigs)({

@@ -1672,11 +1689,2 @@ abs,

});
const lusolve = exports.lusolve = /* #__PURE__ */(0, _factoriesAny.createLusolve)({
DenseMatrix,
lsolve,
lup,
matrix,
slu,
typed,
usolve
});
const mean = exports.mean = /* #__PURE__ */(0, _factoriesAny.createMean)({

@@ -1712,11 +1720,2 @@ add,

});
const setUnion = exports.setUnion = /* #__PURE__ */(0, _factoriesAny.createSetUnion)({
Index,
concat,
setIntersect,
setSymDifference,
size,
subset,
typed
});
const variance = exports.variance = /* #__PURE__ */(0, _factoriesAny.createVariance)({

@@ -1723,0 +1722,0 @@ add,

@@ -221,4 +221,2 @@ "use strict";

const size = exports.size = /* #__PURE__ */(0, _factoriesNumber.createSize)({
matrix,
config: _configReadonly.config,
typed

@@ -225,0 +223,0 @@ });

@@ -89,3 +89,3 @@ "use strict";

}
const s = size(context).valueOf();
const s = size(context);
const childArgs = Object.create(args);

@@ -92,0 +92,0 @@ childArgs.end = s[i];

@@ -332,3 +332,3 @@ "use strict";

next(state);
while (parse.isHexDigit(currentCharacter(state))) {
while (parse.isAlpha(currentCharacter(state), prevCharacter(state), nextCharacter(state)) || parse.isDigit(currentCharacter(state))) {
state.token += currentCharacter(state);

@@ -342,3 +342,3 @@ next(state);

// get the digits after the radix
while (parse.isHexDigit(currentCharacter(state))) {
while (parse.isAlpha(currentCharacter(state), prevCharacter(state), nextCharacter(state)) || parse.isDigit(currentCharacter(state))) {
state.token += currentCharacter(state);

@@ -550,11 +550,2 @@ next(state);

/**
* checks if the given char c is a hex digit
* @param {string} c a string with one character
* @return {boolean}
*/
parse.isHexDigit = function isHexDigit(c) {
return c >= '0' && c <= '9' || c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F';
};
/**
* Start of the parse levels below, in order of precedence

@@ -947,3 +938,3 @@ * @return {Node} node

let node, name, fn, params;
node = parseMultiplyDivideModulusPercentage(state);
node = parseMultiplyDivideModulus(state);
const operators = {

@@ -957,3 +948,3 @@ '+': 'add',

getTokenSkipNewline(state);
const rightNode = parseMultiplyDivideModulusPercentage(state);
const rightNode = parseMultiplyDivideModulus(state);
if (rightNode.isPercentage) {

@@ -970,7 +961,7 @@ params = [node, new OperatorNode('*', 'multiply', [node, rightNode])];

/**
* multiply, divide, modulus, percentage
* multiply, divide, modulus
* @return {Node} node
* @private
*/
function parseMultiplyDivideModulusPercentage(state) {
function parseMultiplyDivideModulus(state) {
let node, last, name, fn;

@@ -993,19 +984,4 @@ node = parseImplicitMultiplication(state);

getTokenSkipNewline(state);
if (name === '%' && state.tokenType === TOKENTYPE.DELIMITER && state.token !== '(') {
// If the expression contains only %, then treat that as /100
if (state.token !== '' && operators[state.token]) {
const left = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
name = state.token;
fn = operators[name];
getTokenSkipNewline(state);
last = parseImplicitMultiplication(state);
node = new OperatorNode(name, fn, [left, last]);
} else {
node = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
}
// return node
} else {
last = parseImplicitMultiplication(state);
node = new OperatorNode(name, fn, [node, last]);
}
last = parseImplicitMultiplication(state);
node = new OperatorNode(name, fn, [node, last]);
} else {

@@ -1053,3 +1029,3 @@ break;

function parseRule2(state) {
let node = parseUnary(state);
let node = parseUnaryPercentage(state);
let last = node;

@@ -1076,3 +1052,3 @@ const tokenStates = [];

tokenStates.pop();
last = parseUnary(state);
last = parseUnaryPercentage(state);
node = new OperatorNode('/', 'divide', [node, last]);

@@ -1098,2 +1074,30 @@ } else {

/**
* Unary percentage operator (treated as `value / 100`)
* @return {Node} node
* @private
*/
function parseUnaryPercentage(state) {
let node = parseUnary(state);
if (state.token === '%') {
const previousState = (0, _extends2.default)({}, state);
getTokenSkipNewline(state);
// We need to decide if this is a unary percentage % or binary modulo %
// So we attempt to parse a unary expression at this point.
// If it fails, then the only possibility is that this is a unary percentage.
// If it succeeds, then we presume that this must be binary modulo, since the
// only things that parseUnary can handle are _higher_ precedence than unary %.
try {
parseUnary(state);
// Not sure if we could somehow use the result of that parseUnary? Without
// further analysis/testing, safer just to discard and let the parse proceed
(0, _extends2.default)(state, previousState);
} catch (_unused) {
// Not seeing a term at this point, so was a unary %
node = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
}
}
return node;
}
/**
* Unary plus and minus, and logical and bitwise not

@@ -1100,0 +1104,0 @@ * @return {Node} node

@@ -26,3 +26,4 @@ "use strict";

lusolve,
abs
abs,
config
} = _ref;

@@ -98,3 +99,3 @@ /**

if (k < n - 1 && abs(subset(G, index(k + 1, k))) > 1e-5) {
let RHS = vc(subset(D, index(all, k)), subset(D, index(all, k + 1)));
let RHS = vc(subset(D, index(all, [k])), subset(D, index(all, [k + 1])));
for (let j = 0; j < k; j++) {

@@ -109,7 +110,7 @@ RHS = add(RHS, vc(multiply(y[j], subset(G, index(j, k))), multiply(y[j], subset(G, index(j, k + 1)))));

const yAux = lusolve(LHS, RHS);
y[k] = yAux.subset(index(range(0, m), 0));
y[k + 1] = yAux.subset(index(range(m, 2 * m), 0));
y[k] = yAux.subset(index(range(0, m), [0]));
y[k + 1] = yAux.subset(index(range(m, 2 * m), [0]));
k++;
} else {
let RHS = subset(D, index(all, k));
let RHS = subset(D, index(all, [k]));
for (let j = 0; j < k; j++) {

@@ -116,0 +117,0 @@ RHS = add(RHS, multiply(y[j], subset(G, index(j, k))));

@@ -71,4 +71,4 @@ "use strict";

'SparseMatrix, Array | Matrix': (x, y) => {
const sx = flatten(size(x).valueOf()); // work around #3529/#3530
const sy = flatten(size(y).valueOf());
const sx = size(x);
const sy = size(y);
if (deepEqual(sx, sy)) return x;

@@ -75,0 +75,0 @@ throw new _DimensionError.DimensionError(sx, sy);

@@ -61,6 +61,7 @@ "use strict";

const rowRange = range(0, value.size()[0]);
const index = new Index(rowRange, column);
const index = new Index(rowRange, [column]);
const result = value.subset(index);
// once config.legacySubset just return result
return (0, _is.isMatrix)(result) ? result : matrix([[result]]);
}
});

@@ -47,4 +47,4 @@ "use strict";

function _validateDim(x, y) {
const xSize = _size(x);
const ySize = _size(y);
const xSize = size(x);
const ySize = size(y);
let xLen, yLen;

@@ -77,4 +77,4 @@ if (xSize.length === 1) {

// are these 2-dimensional column vectors? (as opposed to 1-dimensional vectors)
const aIsColumn = _size(a).length === 2;
const bIsColumn = _size(b).length === 2;
const aIsColumn = size(a).length === 2;
const bIsColumn = size(b).length === 2;
let add = addScalar;

@@ -159,7 +159,2 @@ let mul = multiplyScalar;

}
// TODO remove this once #1771 is fixed
function _size(x) {
return (0, _is.isMatrix)(x) ? x.size() : size(x);
}
});

@@ -31,4 +31,4 @@ "use strict";

*
* @param {Matrix | Array} x Matrix to be flattened
* @return {Matrix | Array} Returns the flattened matrix
* @param {DenseMatrix | Array} x Matrix to be flattened
* @return {DenseMatrix | Array} Returns the flattened matrix
*/

@@ -39,8 +39,11 @@ return typed(name, {

},
Matrix: function (x) {
DenseMatrix: function (x) {
// Return the same matrix type as x (Dense or Sparse Matrix)
// Return the same data type as x
return x.create((0, _array.flatten)(x.valueOf(), true), x.datatype());
},
SparseMatrix: function (_x) {
throw new TypeError('SparseMatrix is not supported by function flatten ' + 'because it does not support 1D vectors. ' + 'Convert to a DenseMatrix or Array first. Example: flatten(x.toArray())');
}
});
});

@@ -34,3 +34,3 @@ "use strict";

* math.kron([1,1], [2,3,4])
* // returns [ [ 2, 3, 4, 2, 3, 4 ] ]
* // returns [2, 3, 4, 2, 3, 4]
*

@@ -59,35 +59,36 @@ * See also:

/**
* Calculate the Kronecker product of two matrices / vectors
* @param {Array} a First vector
* @param {Array} b Second vector
* @returns {Array} Returns the Kronecker product of x and y
* @private
* Calculate the Kronecker product of two (1-dimensional) vectors,
* with no dimension checking
* @param {Array} a First vector
* @param {Array} b Second vector
* @returns {Array} the 1-dimensional Kronecker product of a and b
* @private
*/
function _kron1d(a, b) {
// TODO in core overhaul: would be faster to see if we can choose a
// particular implementation of multiplyScalar at the beginning,
// rather than re-dispatch for _every_ ordered pair of entries.
return a.flatMap(x => b.map(y => multiplyScalar(x, y)));
}
/**
* Calculate the Kronecker product of two possibly multidimensional arrays
* @param {Array} a First array
* @param {Array} b Second array
* @param {number} [d] common dimension; if missing, compute and match args
* @returns {Array} Returns the Kronecker product of x and y
* @private
*/
function _kron(a, b) {
// Deal with the dimensions of the matricies.
if ((0, _array.arraySize)(a).length === 1) {
// Wrap it in a 2D Matrix
a = [a];
let d = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
if (d < 0) {
let adim = (0, _array.arraySize)(a).length;
let bdim = (0, _array.arraySize)(b).length;
d = Math.max(adim, bdim);
while (adim++ < d) a = [a];
while (bdim++ < d) b = [b];
}
if ((0, _array.arraySize)(b).length === 1) {
// Wrap it in a 2D Matrix
b = [b];
}
if ((0, _array.arraySize)(a).length > 2 || (0, _array.arraySize)(b).length > 2) {
throw new RangeError('Vectors with dimensions greater then 2 are not supported expected ' + '(Size x = ' + JSON.stringify(a.length) + ', y = ' + JSON.stringify(b.length) + ')');
}
const t = [];
let r = [];
return a.map(function (a) {
return b.map(function (b) {
r = [];
t.push(r);
return a.map(function (y) {
return b.map(function (x) {
return r.push(multiplyScalar(y, x));
});
});
});
}) && t;
if (d === 1) return _kron1d(a, b);
return a.flatMap(aSlice => b.map(bSlice => _kron(aSlice, bSlice, d - 1)));
}
});

@@ -61,6 +61,7 @@ "use strict";

const columnRange = range(0, value.size()[1]);
const index = new Index(row, columnRange);
const index = new Index([row], columnRange);
const result = value.subset(index);
// once config.legacySubset just return result
return (0, _is.isMatrix)(result) ? result : matrix([[result]]);
}
});

@@ -9,14 +9,14 @@ "use strict";

var _factory = require("../../utils/factory.js");
var _noop = require("../../utils/noop.js");
const name = 'size';
const dependencies = ['typed', 'config', '?matrix'];
const dependencies = ['typed'];
const createSize = exports.createSize = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
let {
typed,
config,
matrix
typed
} = _ref;
/**
* Calculate the size of a matrix or scalar.
* Calculate the size of a matrix or scalar. Always returns an Array containing numbers.
*
* Note that in mathjs v14 and older, function size could return a Matrix depending on
* the input type and configuration.
*
* Syntax:

@@ -40,17 +40,11 @@ *

* @param {boolean | number | Complex | Unit | string | Array | Matrix} x A matrix
* @return {Array | Matrix} A vector with size of `x`.
* @return {Array} A vector with size of `x`.
*/
return typed(name, {
Matrix: function (x) {
return x.create(x.size(), 'number');
},
Matrix: x => x.size(),
Array: _array.arraySize,
string: function (x) {
return config.matrix === 'Array' ? [x.length] : matrix([x.length], 'dense', 'number');
},
'number | Complex | BigNumber | Unit | boolean | null': function (x) {
// scalar
return config.matrix === 'Array' ? [] : matrix ? matrix([], 'dense', 'number') : (0, _noop.noMatrix)();
}
string: x => [x.length],
// scalar
'number | Complex | BigNumber | Unit | boolean | null': _x => []
});
});

@@ -34,4 +34,4 @@ "use strict";

* 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]]
* math.subset(d, math.index([0, 1], [1])) // returns [[2], [4]]
* math.subset(d, math.index([false, true], [0])) // returns [[3]]
*

@@ -46,5 +46,5 @@ * // replace a subset

* const M = [
* [1,2,3],
* [4,5,6],
* [7,8,9]
* [1, 2, 3],
* [4, 5, 6],
* [7, 8, 9]
* ]

@@ -128,3 +128,3 @@ * math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1, 2, 3], [4, 5, 6]]

}
if (index._isScalar) {
if (index.isScalar()) {
return replacement;

@@ -171,5 +171,10 @@ }

let substr = '';
range.forEach(function (v) {
function callback(v) {
substr += str.charAt(v);
});
}
if (Number.isInteger(range)) {
callback(range);
} else {
range.forEach(callback);
}
return substr;

@@ -208,3 +213,3 @@ }

const range = index.dimension(0);
const len = range.size()[0];
const len = Number.isInteger(range) ? 1 : range.size()[0];
if (len !== replacement.length) {

@@ -224,5 +229,10 @@ throw new _DimensionError.DimensionError(range.size()[0], replacement.length);

}
range.forEach(function (v, i) {
function callback(v, i) {
chars[v] = replacement.charAt(i[0]);
});
}
if (Number.isInteger(range)) {
callback(range, [0]);
} else {
range.forEach(callback);
}

@@ -229,0 +239,0 @@ // initialize undefined characters with a space

@@ -9,3 +9,3 @@ /**

*
* @version 14.9.1
* @version 15.0.0
* @date 2025-10-10

@@ -12,0 +12,0 @@ *

@@ -18,6 +18,7 @@ "use strict";

const name = 'DenseMatrix';
const dependencies = ['Matrix'];
const dependencies = ['Matrix', 'config'];
const createDenseMatrixClass = exports.createDenseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
let {
Matrix
Matrix,
config
} = _ref;

@@ -232,3 +233,3 @@ /**

}
const isScalar = index.isScalar();
const isScalar = config.legacySubset ? index.size().every(idx => idx === 1) : index.isScalar();
if (isScalar) {

@@ -253,3 +254,3 @@ // return a scalar

// retrieve submatrix
const returnMatrix = new DenseMatrix([]);
const returnMatrix = new DenseMatrix();
const submatrix = _getSubmatrix(matrix._data, index);

@@ -259,3 +260,3 @@ returnMatrix._size = submatrix.size;

returnMatrix._data = submatrix.data;
return returnMatrix;
return config.legacySubset ? returnMatrix.reshape(index.size()) : returnMatrix;
}

@@ -278,18 +279,26 @@ }

data: getSubmatrixRecursive(data),
size
size: size.filter(x => x !== null)
};
function getSubmatrixRecursive(data) {
let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
const ranges = index.dimension(depth);
size[depth] = ranges.size()[0];
const dims = index.dimension(depth);
function _mapIndex(dim, callback) {
// applies a callback for when the index is a Number or a Matrix
if ((0, _is.isNumber)(dim)) return callback(dim);else return dim.map(callback).valueOf();
}
if ((0, _is.isNumber)(dims)) {
size[depth] = null;
} else {
size[depth] = dims.size()[0];
}
if (depth < maxDepth) {
return ranges.map(rangeIndex => {
(0, _array.validateIndex)(rangeIndex, data.length);
return getSubmatrixRecursive(data[rangeIndex], depth + 1);
}).valueOf();
return _mapIndex(dims, dimIndex => {
(0, _array.validateIndex)(dimIndex, data.length);
return getSubmatrixRecursive(data[dimIndex], depth + 1);
});
} else {
return ranges.map(rangeIndex => {
(0, _array.validateIndex)(rangeIndex, data.length);
return data[rangeIndex];
}).valueOf();
return _mapIndex(dims, dimIndex => {
(0, _array.validateIndex)(dimIndex, data.length);
return data[dimIndex];
});
}

@@ -321,8 +330,8 @@ }

// calculate the size of the submatrix, and convert it into an Array if needed
let sSize;
let submatrixSize;
if ((0, _is.isMatrix)(submatrix)) {
sSize = submatrix.size();
submatrixSize = submatrix.size();
submatrix = submatrix.valueOf();
} else {
sSize = (0, _array.arraySize)(submatrix);
submatrixSize = (0, _array.arraySize)(submatrix);
}

@@ -333,3 +342,3 @@ if (isScalar) {

// check whether submatrix is a scalar
if (sSize.length !== 0) {
if (submatrixSize.length !== 0) {
throw new TypeError('Scalar expected');

@@ -342,11 +351,11 @@ }

// broadcast submatrix
if (!(0, _object.deepStrictEqual)(sSize, iSize)) {
try {
if (sSize.length === 0) {
submatrix = (0, _array.broadcastTo)([submatrix], iSize);
} else {
if (!(0, _object.deepStrictEqual)(submatrixSize, iSize)) {
if (submatrixSize.length === 0) {
submatrix = (0, _array.broadcastTo)([submatrix], iSize);
} else {
try {
submatrix = (0, _array.broadcastTo)(submatrix, iSize);
}
sSize = (0, _array.arraySize)(submatrix);
} catch (_unused) {}
} catch (error) {}
}
submatrixSize = (0, _array.arraySize)(submatrix);
}

@@ -358,7 +367,7 @@

}
if (sSize.length < iSize.length) {
if (submatrixSize.length < iSize.length) {
// calculate number of missing outer dimensions
let i = 0;
let outer = 0;
while (iSize[i] === 1 && sSize[i] === 1) {
while (iSize[i] === 1 && submatrixSize[i] === 1) {
i++;

@@ -372,8 +381,8 @@ }

// unsqueeze both outer and inner dimensions
submatrix = (0, _array.unsqueeze)(submatrix, iSize.length, outer, sSize);
submatrix = (0, _array.unsqueeze)(submatrix, iSize.length, outer, submatrixSize);
}
// check whether the size of the submatrix matches the index size
if (!(0, _object.deepStrictEqual)(iSize, sSize)) {
throw new _DimensionError.DimensionError(iSize, sSize, '>');
if (!(0, _object.deepStrictEqual)(iSize, submatrixSize)) {
throw new _DimensionError.DimensionError(iSize, submatrixSize, '>');
}

@@ -407,12 +416,14 @@

const range = index.dimension(depth);
const recursiveCallback = (rangeIndex, i) => {
(0, _array.validateIndex)(rangeIndex, data.length);
setSubmatrixRecursive(data[rangeIndex], submatrix[i[0]], depth + 1);
};
const finalCallback = (rangeIndex, i) => {
(0, _array.validateIndex)(rangeIndex, data.length);
data[rangeIndex] = submatrix[i[0]];
};
if (depth < maxDepth) {
range.forEach((rangeIndex, i) => {
(0, _array.validateIndex)(rangeIndex, data.length);
setSubmatrixRecursive(data[rangeIndex], submatrix[i[0]], depth + 1);
});
if ((0, _is.isNumber)(range)) recursiveCallback(range, [0]);else range.forEach(recursiveCallback);
} else {
range.forEach((rangeIndex, i) => {
(0, _array.validateIndex)(rangeIndex, data.length);
data[rangeIndex] = submatrix[i[0]];
});
if ((0, _is.isNumber)(range)) finalCallback(range, [0]);else range.forEach(finalCallback);
}

@@ -419,0 +430,0 @@ }

@@ -40,3 +40,3 @@ "use strict";

*/
function Index(ranges) {
function Index() {
if (!(this instanceof Index)) {

@@ -49,3 +49,3 @@ throw new SyntaxError('Constructor must be called with the new operator');

for (let i = 0, ii = arguments.length; i < ii; i++) {
const arg = arguments[i];
const arg = i < 0 || arguments.length <= i ? undefined : arguments[i];
const argIsArray = (0, _is.isArray)(arg);

@@ -61,2 +61,3 @@ const argIsMatrix = (0, _is.isMatrix)(arg);

let m;
this._isScalar = false;
if (getMatrixDataType(arg) === 'boolean') {

@@ -70,12 +71,6 @@ if (argIsArray) m = _createImmutableMatrix(_booleansArrayToNumbersForIndex(arg).valueOf());

this._dimensions.push(m);
// size
const size = m.size();
// scalar
if (size.length !== 1 || size[0] !== 1 || sourceSize !== null) {
this._isScalar = false;
}
} else if (argType === 'number') {
this._dimensions.push(_createImmutableMatrix([arg]));
this._dimensions.push(arg);
} else if (argType === 'bigint') {
this._dimensions.push(_createImmutableMatrix([Number(arg)]));
this._dimensions.push(Number(arg));
} else if (argType === 'string') {

@@ -100,3 +95,3 @@ // object property (arguments.count should be 1)

for (let i = 0, l = arg.length; i < l; i++) {
if (typeof arg[i] !== 'number' || !(0, _number.isInteger)(arg[i])) {
if (!(0, _is.isNumber)(arg[i]) || !(0, _number.isInteger)(arg[i])) {
throw new TypeError('Index parameters must be positive integer numbers');

@@ -106,3 +101,6 @@ }

// create matrix
return new ImmutableDenseMatrix(arg);
const matrix = new ImmutableDenseMatrix();
matrix._data = arg;
matrix._size = [arg.length];
return matrix;
}

@@ -145,3 +143,3 @@

const d = this._dimensions[i];
size[i] = typeof d === 'string' ? 1 : d.size()[0];
size[i] = (0, _is.isString)(d) || (0, _is.isNumber)(d) ? 1 : d.size()[0];
}

@@ -160,3 +158,3 @@ return size;

const range = this._dimensions[i];
values[i] = typeof range === 'string' ? range : range.max();
values[i] = (0, _is.isString)(range) || (0, _is.isNumber)(range) ? range : range.max();
}

@@ -175,3 +173,3 @@ return values;

const range = this._dimensions[i];
values[i] = typeof range === 'string' ? range : range.min();
values[i] = (0, _is.isString)(range) || (0, _is.isNumber)(range) ? range : range.min();
}

@@ -201,6 +199,7 @@ return values;

Index.prototype.dimension = function (dim) {
if (typeof dim !== 'number') {
var _this$_dimensions$dim;
if (!(0, _is.isNumber)(dim)) {
return null;
}
return this._dimensions[dim] || null;
return (_this$_dimensions$dim = this._dimensions[dim]) !== null && _this$_dimensions$dim !== void 0 ? _this$_dimensions$dim : null;
};

@@ -213,3 +212,3 @@

Index.prototype.isObjectProperty = function () {
return this._dimensions.length === 1 && typeof this._dimensions[0] === 'string';
return this._dimensions.length === 1 && (0, _is.isString)(this._dimensions[0]);
};

@@ -248,3 +247,3 @@

const dimension = this._dimensions[i];
array.push(typeof dimension === 'string' ? dimension : dimension.toArray());
array.push((0, _is.isString)(dimension) || (0, _is.isNumber)(dimension) ? dimension : dimension.toArray());
}

@@ -271,3 +270,3 @@ return array;

const dimension = this._dimensions[i];
if (typeof dimension === 'string') {
if ((0, _is.isString)(dimension)) {
strings.push(JSON.stringify(dimension));

@@ -274,0 +273,0 @@ } else {

@@ -307,3 +307,3 @@ "use strict";

// loop rows in resulting matrix
rows.forEach(function (i, r) {
function rowsCallback(i, r) {
// update permutation vector

@@ -313,3 +313,4 @@ pv[i] = r[0];

w[i] = true;
});
}
if (Number.isInteger(rows)) rowsCallback(rows, [0]);else rows.forEach(rowsCallback);

@@ -322,3 +323,3 @@ // result matrix arrays

// loop columns in result matrix
columns.forEach(function (j) {
function columnsCallback(j) {
// update ptr

@@ -340,3 +341,4 @@ ptr.push(index.length);

}
});
}
if (Number.isInteger(columns)) columnsCallback(columns);else columns.forEach(columnsCallback);
// update ptr

@@ -415,3 +417,3 @@ ptr.push(index.length);

const range = index.dimension(0);
range.forEach(function (dataIndex, subIndex) {
_forEachIndex(range, (dataIndex, subIndex) => {
(0, _array.validateIndex)(dataIndex);

@@ -424,5 +426,5 @@ matrix.set([dataIndex, 0], submatrix[subIndex[0]], defaultValue);

const secondDimensionRange = index.dimension(1);
firstDimensionRange.forEach(function (firstDataIndex, firstSubIndex) {
_forEachIndex(firstDimensionRange, (firstDataIndex, firstSubIndex) => {
(0, _array.validateIndex)(firstDataIndex);
secondDimensionRange.forEach(function (secondDataIndex, secondSubIndex) {
_forEachIndex(secondDimensionRange, (secondDataIndex, secondSubIndex) => {
(0, _array.validateIndex)(secondDataIndex);

@@ -435,2 +437,6 @@ matrix.set([firstDataIndex, secondDataIndex], submatrix[firstSubIndex[0]][secondSubIndex[0]], defaultValue);

return matrix;
function _forEachIndex(index, callback) {
// iterate cases where index is a Matrix or a Number
if ((0, _is.isNumber)(index)) callback(index, [0]);else index.forEach(callback);
}
}

@@ -437,0 +443,0 @@

@@ -7,4 +7,4 @@ "use strict";

exports.version = void 0;
const version = exports.version = '14.9.1';
const version = exports.version = '15.0.0';
// Note: This file is automatically generated when building math.js.
// Changes made in this file will be overwritten.

@@ -24,3 +24,7 @@ export var DEFAULT_CONFIG = {

// null = randomly seed
randomSeed: null
randomSeed: null,
// legacy behavior for matrix subset. When true, the subset function
// returns a matrix or array with the same size as the index (except for scalars).
// When false, it returns a matrix or array with a size depending on the type of index.
legacySubset: false
};

@@ -62,2 +62,6 @@ import { clone, deepExtend } from '../../utils/object.js';

}
if (options.legacySubset === true) {
// this if is only for backwards compatibility, it can be removed in the future.
console.warn('Warning: The configuration option "legacySubset" is for compatibility only and might be deprecated in the future.');
}
var prev = clone(config);

@@ -64,0 +68,0 @@

@@ -5,9 +5,7 @@ /**

*/
import { matrixDependencies } from './dependenciesMatrix.generated.js';
import { typedDependencies } from './dependenciesTyped.generated.js';
import { createSize } from '../../factoriesAny.js';
export var sizeDependencies = {
matrixDependencies,
typedDependencies,
createSize
};

@@ -5,9 +5,7 @@ /**

*/
import { matrixDependencies } from './dependenciesMatrix.generated.js';
import { typedDependencies } from './dependenciesTyped.generated.js';
import { createSize } from '../../factoriesNumber.js';
export var sizeDependencies = {
matrixDependencies,
typedDependencies,
createSize
};

@@ -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, createAssignmentNode, createIndexNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyConstant, createCompile, createSimplifyCore, createEvaluate, createHelpClass, createParserClass, createSimplify, createSymbolicEqual, createLeafCount, createParser, createRationalize, createDerivative, createHelp, createMapSlicesTransform, createFilterTransform, createForEachTransform, createMapTransform, createOrTransform, createAndTransform, createConcatTransform, createIndexTransform, createPrintTransform, createSumTransform, createBitAndTransform, createMinTransform, createNullishTransform, createSubsetTransform, createBitOrTransform, createCumSumTransform, createDiffTransform, createMaxTransform, createRangeTransform, createRowTransform, createColumnTransform, createMeanTransform, createQuantileSeqTransform, 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, createSimplifyCore, createEvaluate, createHelpClass, createParserClass, createSimplify, createSymbolicEqual, createLeafCount, createParser, createRationalize, createDerivative, createHelp, createMapSlicesTransform, createFilterTransform, createForEachTransform, createMapTransform, createOrTransform, createAndTransform, createConcatTransform, createMaxTransform, createPrintTransform, createSumTransform, createBitAndTransform, createMinTransform, createNullishTransform, createSubsetTransform, createBitOrTransform, createDiffTransform, createIndexTransform, createRangeTransform, createRowTransform, createColumnTransform, createCumSumTransform, createMeanTransform, createQuantileSeqTransform, 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, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bigint, bitNot, boolean, clone, combinations, complex, conj, cos, cot, csc, cube, equalScalar, erf, exp, expm1, filter, flatten, 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, subtractScalar, tan, toBest, typeOf, acosh, acsch, asec, bignumber, combinationsWithRep, cosh, csch, isNaN, isPrime, mapSlices, matrix, matrixFromFunction, ones, randomInt, reshape, sech, sinh, sparse, sqrt, squeeze, tanh, transpose, xgcd, zeros, acoth, asin, bin, concat, coth, ctranspose, diag, dotMultiply, equal, fraction, identity, isNumeric, kron, largerEq, leftShift, mode, nthRoot, numeric, prod, resize, rightArithShift, round, size, smaller, to, unaryMinus, unequal, xor, add, atan2, bitAnd, bitOr, bitXor, cbrt, compare, compareText, count, deepEqual, divideScalar, dotDivide, equalText, floor, gcd, hasNumericValue, hypot, ImmutableDenseMatrix, Index, larger, log, lsolve, matrixFromColumns, max, min, mod, nthRoots, nullish, or, partitionSelect, qr, rightLogShift, smallerEq, subset, subtract, trace, usolve, catalan, compareNatural, composition, diff, distance, dot, FibonacciHeap, index, invmod, lcm, log1p, lsolveAll, matrixFromRows, multiply, range, row, setCartesian, setDistinct, setIsSubset, setPowerset, slu, sort, unaryPlus, usolveAll, zpk2tf, and, ceil, column, cross, det, fix, inv, pinv, pow, setDifference, setMultiplicity, setSymDifference, Spa, sqrtm, sum, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, coulomb, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, fft, gamma, gravitationConstant, hartreeEnergy, ifft, inverseConductanceQuantum, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, quantumOfCirculation, reducedPlanckConstant, rydberg, secondRadiation, setSize, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, coulombConstant, divide, electronMass, factorial, firstRadiation, gravity, intersect, lup, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setIntersect, solveODE, stirlingS2, unit, bellNumbers, cumsum, eigs, fermiCoupling, gasConstant, kldivergence, lusolve, mean, molarVolume, planckConstant, quantileSeq, setUnion, variance, classicalElectronRadius, median, corr, freqz, mad, std, zeta, norm, rotationMatrix, planckTime, schur, rotate, sylvester, lyap } from './pureFunctionsAny.generated.js';
sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bigint, bitNot, boolean, clone, combinations, complex, conj, cos, cot, csc, cube, equalScalar, erf, exp, expm1, filter, flatten, 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, size, SparseMatrix, splitUnit, square, string, subtractScalar, tan, toBest, typeOf, acosh, acsch, asec, bignumber, combinationsWithRep, cosh, csch, dot, isNaN, isPrime, mapSlices, matrix, matrixFromFunction, multiply, ones, randomInt, reshape, sech, sinh, sparse, sqrt, squeeze, tanh, transpose, xgcd, zeros, acoth, asin, bin, concat, coth, ctranspose, diag, dotMultiply, equal, fraction, identity, isNumeric, kron, largerEq, leftShift, matrixFromRows, mode, nthRoot, numeric, prod, resize, rightArithShift, round, smaller, to, unaryMinus, unequal, xor, add, atan2, bitAnd, bitOr, bitXor, cbrt, compare, compareText, count, deepEqual, divideScalar, equalText, floor, gcd, hasNumericValue, hypot, ImmutableDenseMatrix, Index, larger, log, lsolve, matrixFromColumns, min, mod, nthRoots, nullish, or, partitionSelect, qr, rightLogShift, smallerEq, subset, subtract, trace, usolve, zpk2tf, catalan, compareNatural, composition, cross, det, diff, distance, dotDivide, FibonacciHeap, index, intersect, invmod, lcm, log1p, lsolveAll, max, range, row, setCartesian, setDistinct, setIsSubset, setPowerset, slu, sort, unaryPlus, usolveAll, and, ceil, column, cumsum, fix, setDifference, setMultiplicity, setSymDifference, Spa, sum, inv, lup, pinv, pow, setIntersect, setUnion, sqrtm, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, coulomb, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, fft, gamma, gravitationConstant, hartreeEnergy, ifft, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, quantumOfCirculation, reducedPlanckConstant, rydberg, secondRadiation, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, coulombConstant, divide, electronMass, factorial, firstRadiation, gravity, inverseConductanceQuantum, lusolve, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setSize, solveODE, stirlingS2, unit, bellNumbers, eigs, fermiCoupling, gasConstant, kldivergence, mean, molarVolume, planckConstant, quantileSeq, variance, classicalElectronRadius, median, corr, freqz, mad, std, zeta, 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({

@@ -72,6 +76,2 @@ Node,

});
export var IndexNode = createIndexNode({
Node,
size
});
export var SymbolNode = createSymbolNode({

@@ -323,2 +323,3 @@ Unit,

sin,
size,
splitUnit,

@@ -339,2 +340,3 @@ square,

csch,
dot,
isNaN,

@@ -345,2 +347,3 @@ isPrime,

matrixFromFunction,
multiply,
ones,

@@ -373,2 +376,3 @@ randomInt,

leftShift,
matrixFromRows,
mode,

@@ -381,3 +385,2 @@ nthRoot,

round,
size,
smaller,

@@ -399,3 +402,2 @@ to,

divideScalar,
dotDivide,
equalText,

@@ -410,3 +412,2 @@ floor,

matrixFromColumns,
max,
min,

@@ -425,9 +426,13 @@ mod,

usolve,
zpk2tf,
catalan,
compareNatural,
composition,
cross,
det,
diff,
distance,
dot,
dotDivide,
index,
intersect,
invmod,

@@ -437,4 +442,3 @@ lcm,

lsolveAll,
matrixFromRows,
multiply,
max,
range,

@@ -450,17 +454,18 @@ row,

usolveAll,
zpk2tf,
and,
ceil,
column,
cross,
det,
cumsum,
fix,
setDifference,
setMultiplicity,
setSymDifference,
sum,
inv,
lup,
pinv,
pow,
setDifference,
setMultiplicity,
setSymDifference,
setIntersect,
setUnion,
sqrtm,
sum,
vacuumImpedance,

@@ -485,3 +490,2 @@ wienDisplacement,

ifft,
inverseConductanceQuantum,
klitzing,

@@ -502,3 +506,2 @@ loschmidt,

secondRadiation,
setSize,
speedOfLight,

@@ -515,4 +518,4 @@ stefanBoltzmann,

gravity,
intersect,
lup,
inverseConductanceQuantum,
lusolve,
magneticFluxQuantum,

@@ -526,3 +529,3 @@ molarMassC12,

resolve,
setIntersect,
setSize,
simplifyConstant,

@@ -534,3 +537,2 @@ solveODE,

compile,
cumsum,
eigs,

@@ -540,3 +542,2 @@ fermiCoupling,

kldivergence,
lusolve,
mean,

@@ -546,3 +547,2 @@ molarVolume,

quantileSeq,
setUnion,
simplifyCore,

@@ -609,5 +609,8 @@ variance,

}),
index: createIndexTransform({
Index,
getMatrixDataType
max: createMaxTransform({
config,
isNaN,
larger,
numeric,
typed
}),

@@ -662,7 +665,2 @@ print: createPrintTransform({

}),
cumsum: createCumSumTransform({
add,
typed,
unaryPlus
}),
diff: createDiffTransform({

@@ -675,8 +673,5 @@ bignumber,

}),
max: createMaxTransform({
config,
isNaN,
larger,
numeric,
typed
index: createIndexTransform({
Index,
getMatrixDataType
}),

@@ -709,2 +704,7 @@ range: createRangeTransform({

}),
cumsum: createCumSumTransform({
add,
typed,
unaryPlus
}),
mean: createMeanTransform({

@@ -767,2 +767,3 @@ add,

SparseMatrix,
IndexNode,
ImmutableDenseMatrix,

@@ -773,3 +774,2 @@ Index,

FibonacciHeap,
IndexNode,
Spa,

@@ -776,0 +776,0 @@ Unit,

@@ -8,3 +8,3 @@ /**

// eslint-disable-line camelcase
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBigint, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createFlatten, 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, createSubtractScalar, createTan, createToBest, createTypeOf, createAcosh, createAcsch, createAsec, createBignumber, createCombinationsWithRep, createCosh, createCsch, createIsNaN, createIsPrime, createMapSlices, createMatrix, createMatrixFromFunction, createOnes, createRandomInt, createReshape, createSech, createSinh, createSparse, createSqrt, createSqueeze, createTanh, createTranspose, createXgcd, createZeros, createAcoth, createAsin, createBin, createConcat, createCoth, createCtranspose, createDiag, createDotMultiply, createEqual, createFraction, createIdentity, createIsNumeric, createKron, createLargerEq, createLeftShift, createMode, createNthRoot, createNumeric, createProd, createResize, createRightArithShift, createRound, createSize, createSmaller, createTo, createUnaryMinus, createUnequal, createXor, createAdd, createAtan2, createBitAnd, createBitOr, createBitXor, createCbrt, createCompare, createCompareText, createCount, createDeepEqual, createDivideScalar, createDotDivide, createEqualText, createFloor, createGcd, createHasNumericValue, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolve, createMatrixFromColumns, createMax, createMin, createMod, createNthRoots, createNullish, createOr, createPartitionSelect, createQr, createRightLogShift, createSmallerEq, createSubset, createSubtract, createTrace, createUsolve, createCatalan, createCompareNatural, createComposition, createDiff, createDistance, createDot, createFibonacciHeapClass, createIndex, createInvmod, createLcm, createLog1p, createLsolveAll, createMatrixFromRows, createMultiply, createRange, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSlu, createSort, createUnaryPlus, createUsolveAll, createZpk2tf, createAnd, createCeil, createColumn, createCross, createDet, createFix, createInv, createPinv, createPow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createSqrtm, createSum, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createInverseConductanceQuantum, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSetSize, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulombConstant, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createIntersect, createLup, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetIntersect, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createCumSum, createEigs, createFermiCoupling, createGasConstant, createKldivergence, createLusolve, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createSetUnion, createVariance, createClassicalElectronRadius, createMedian, createCorr, createFreqz, createMad, createStd, createZeta, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBigint, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createFlatten, 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, createSize, createSparseMatrixClass, createSplitUnit, createSquare, createString, createSubtractScalar, createTan, createToBest, createTypeOf, createAcosh, createAcsch, createAsec, createBignumber, createCombinationsWithRep, createCosh, createCsch, createDot, createIsNaN, createIsPrime, createMapSlices, createMatrix, createMatrixFromFunction, createMultiply, createOnes, createRandomInt, createReshape, createSech, createSinh, createSparse, createSqrt, createSqueeze, createTanh, createTranspose, createXgcd, createZeros, createAcoth, createAsin, createBin, createConcat, createCoth, createCtranspose, createDiag, createDotMultiply, createEqual, createFraction, createIdentity, createIsNumeric, createKron, createLargerEq, createLeftShift, createMatrixFromRows, createMode, createNthRoot, createNumeric, createProd, createResize, createRightArithShift, createRound, createSmaller, createTo, createUnaryMinus, createUnequal, createXor, createAdd, createAtan2, createBitAnd, createBitOr, createBitXor, createCbrt, createCompare, createCompareText, createCount, createDeepEqual, createDivideScalar, createEqualText, createFloor, createGcd, createHasNumericValue, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolve, createMatrixFromColumns, createMin, createMod, createNthRoots, createNullish, createOr, createPartitionSelect, createQr, createRightLogShift, createSmallerEq, createSubset, createSubtract, createTrace, createUsolve, createZpk2tf, createCatalan, createCompareNatural, createComposition, createCross, createDet, createDiff, createDistance, createDotDivide, createFibonacciHeapClass, createIndex, createIntersect, createInvmod, createLcm, createLog1p, createLsolveAll, createMax, createRange, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSlu, createSort, createUnaryPlus, createUsolveAll, createAnd, createCeil, createColumn, createCumSum, createFix, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createSum, createInv, createLup, createPinv, createPow, createSetIntersect, createSetUnion, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulombConstant, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createInverseConductanceQuantum, createLusolve, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetSize, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createGasConstant, createKldivergence, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createVariance, createClassicalElectronRadius, createMedian, createCorr, createFreqz, createMad, createStd, createZeta, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';
export var BigNumber = /* #__PURE__ */createBigNumberClass({

@@ -66,3 +66,4 @@ config

export var DenseMatrix = /* #__PURE__ */createDenseMatrixClass({
Matrix
Matrix,
config
});

@@ -285,2 +286,5 @@ export var efimovFactor = /* #__PURE__ */createEfimovFactor({

});
export var size = /* #__PURE__ */createSize({
typed
});
export var SparseMatrix = /* #__PURE__ */createSparseMatrixClass({

@@ -341,2 +345,9 @@ Matrix,

});
export var dot = /* #__PURE__ */createDot({
addScalar,
conj,
multiplyScalar,
size,
typed
});
export var isNaN = /* #__PURE__ */createIsNaN({

@@ -364,2 +375,10 @@ typed

});
export var multiply = /* #__PURE__ */createMultiply({
addScalar,
dot,
equalScalar,
matrix,
multiplyScalar,
typed
});
export var ones = /* #__PURE__ */createOnes({

@@ -505,2 +524,8 @@ BigNumber,

});
export var matrixFromRows = /* #__PURE__ */createMatrixFromRows({
flatten,
matrix,
size,
typed
});
export var mode = /* #__PURE__ */createMode({

@@ -550,7 +575,2 @@ isNaN,

});
export var size = /* #__PURE__ */createSize({
matrix,
config,
typed
});
export var smaller = /* #__PURE__ */createSmaller({

@@ -664,11 +684,2 @@ DenseMatrix,

});
export var dotDivide = /* #__PURE__ */createDotDivide({
DenseMatrix,
SparseMatrix,
concat,
divideScalar,
equalScalar,
matrix,
typed
});
export var equalText = /* #__PURE__ */createEqualText({

@@ -752,9 +763,2 @@ compareText,

});
export var max = /* #__PURE__ */createMax({
config,
isNaN,
larger,
numeric,
typed
});
export var min = /* #__PURE__ */createMin({

@@ -865,2 +869,9 @@ config,

});
export var zpk2tf = /* #__PURE__ */createZpk2tf({
Complex,
add,
multiply,
number,
typed
});
export var catalan = /* #__PURE__ */createCatalan({

@@ -888,2 +899,17 @@ addScalar,

});
export var cross = /* #__PURE__ */createCross({
matrix,
multiply,
subtract,
typed
});
export var det = /* #__PURE__ */createDet({
divideScalar,
isZero,
matrix,
multiply,
subtractScalar,
typed,
unaryMinus
});
export var diff = /* #__PURE__ */createDiff({

@@ -905,7 +931,9 @@ matrix,

});
export var dot = /* #__PURE__ */createDot({
addScalar,
conj,
multiplyScalar,
size,
export var dotDivide = /* #__PURE__ */createDotDivide({
DenseMatrix,
SparseMatrix,
concat,
divideScalar,
equalScalar,
matrix,
typed

@@ -921,2 +949,19 @@ });

});
export var intersect = /* #__PURE__ */createIntersect({
abs,
add,
addScalar,
config,
divideScalar,
equalScalar,
flatten,
isNumeric,
isZero,
matrix,
multiply,
multiplyScalar,
smaller,
subtract,
typed
});
export var invmod = /* #__PURE__ */createInvmod({

@@ -955,16 +1000,9 @@ BigNumber,

});
export var matrixFromRows = /* #__PURE__ */createMatrixFromRows({
flatten,
matrix,
size,
export var max = /* #__PURE__ */createMax({
config,
isNaN,
larger,
numeric,
typed
});
export var multiply = /* #__PURE__ */createMultiply({
addScalar,
dot,
equalScalar,
matrix,
multiplyScalar,
typed
});
export var range = /* #__PURE__ */createRange({

@@ -1052,9 +1090,2 @@ bignumber,

});
export var zpk2tf = /* #__PURE__ */createZpk2tf({
Complex,
add,
multiply,
number,
typed
});
export var and = /* #__PURE__ */createAnd({

@@ -1083,16 +1114,6 @@ concat,

});
export var cross = /* #__PURE__ */createCross({
matrix,
multiply,
subtract,
typed
});
export var det = /* #__PURE__ */createDet({
divideScalar,
isZero,
matrix,
multiply,
subtractScalar,
export var cumsum = /* #__PURE__ */createCumSum({
add,
typed,
unaryMinus
unaryPlus
});

@@ -1109,2 +1130,36 @@ export var fix = /* #__PURE__ */createFix({

});
export var setDifference = /* #__PURE__ */createSetDifference({
DenseMatrix,
Index,
compareNatural,
size,
subset,
typed
});
export var setMultiplicity = /* #__PURE__ */createSetMultiplicity({
Index,
compareNatural,
size,
subset,
typed
});
export var setSymDifference = /* #__PURE__ */createSetSymDifference({
Index,
concat,
setDifference,
size,
subset,
typed
});
export var Spa = /* #__PURE__ */createSpaClass({
FibonacciHeap,
addScalar,
equalScalar
});
export var sum = /* #__PURE__ */createSum({
add,
config,
numeric,
typed
});
export var inv = /* #__PURE__ */createInv({

@@ -1121,2 +1176,17 @@ abs,

});
export var lup = /* #__PURE__ */createLup({
DenseMatrix,
Spa,
SparseMatrix,
abs,
addScalar,
divideScalar,
equalScalar,
larger,
matrix,
multiplyScalar,
subtractScalar,
typed,
unaryMinus
});
export var pinv = /* #__PURE__ */createPinv({

@@ -1147,3 +1217,3 @@ Complex,

});
export var setDifference = /* #__PURE__ */createSetDifference({
export var setIntersect = /* #__PURE__ */createSetIntersect({
DenseMatrix,

@@ -1156,13 +1226,7 @@ Index,

});
export var setMultiplicity = /* #__PURE__ */createSetMultiplicity({
export var setUnion = /* #__PURE__ */createSetUnion({
Index,
compareNatural,
size,
subset,
typed
});
export var setSymDifference = /* #__PURE__ */createSetSymDifference({
Index,
concat,
setDifference,
setIntersect,
setSymDifference,
size,

@@ -1172,7 +1236,2 @@ subset,

});
export var Spa = /* #__PURE__ */createSpaClass({
FibonacciHeap,
addScalar,
equalScalar
});
export var sqrtm = /* #__PURE__ */createSqrtm({

@@ -1191,8 +1250,2 @@ abs,

});
export var sum = /* #__PURE__ */createSum({
add,
config,
numeric,
typed
});
export var Unit = /* #__PURE__ */createUnitClass({

@@ -1332,7 +1385,2 @@ BigNumber,

});
export var inverseConductanceQuantum = /* #__PURE__ */createInverseConductanceQuantum({
BigNumber,
Unit,
config
});
export var klitzing = /* #__PURE__ */createKlitzing({

@@ -1413,6 +1461,2 @@ BigNumber,

});
export var setSize = /* #__PURE__ */createSetSize({
compareNatural,
typed
});
export var speedOfLight = /* #__PURE__ */createSpeedOfLight({

@@ -1475,33 +1519,15 @@ BigNumber,

});
export var intersect = /* #__PURE__ */createIntersect({
abs,
add,
addScalar,
config,
divideScalar,
equalScalar,
flatten,
isNumeric,
isZero,
matrix,
multiply,
multiplyScalar,
smaller,
subtract,
typed
export var inverseConductanceQuantum = /* #__PURE__ */createInverseConductanceQuantum({
BigNumber,
Unit,
config
});
export var lup = /* #__PURE__ */createLup({
export var lusolve = /* #__PURE__ */createLusolve({
DenseMatrix,
Spa,
SparseMatrix,
abs,
addScalar,
divideScalar,
equalScalar,
larger,
lsolve,
lup,
matrix,
multiplyScalar,
subtractScalar,
slu,
typed,
unaryMinus
usolve
});

@@ -1551,8 +1577,4 @@ export var magneticFluxQuantum = /* #__PURE__ */createMagneticFluxQuantum({

});
export var setIntersect = /* #__PURE__ */createSetIntersect({
DenseMatrix,
Index,
export var setSize = /* #__PURE__ */createSetSize({
compareNatural,
size,
subset,
typed

@@ -1603,7 +1625,2 @@ });

});
export var cumsum = /* #__PURE__ */createCumSum({
add,
typed,
unaryPlus
});
export var eigs = /* #__PURE__ */createEigs({

@@ -1665,11 +1682,2 @@ abs,

});
export var lusolve = /* #__PURE__ */createLusolve({
DenseMatrix,
lsolve,
lup,
matrix,
slu,
typed,
usolve
});
export var mean = /* #__PURE__ */createMean({

@@ -1705,11 +1713,2 @@ add,

});
export var setUnion = /* #__PURE__ */createSetUnion({
Index,
concat,
setIntersect,
setSymDifference,
size,
subset,
typed
});
export var variance = /* #__PURE__ */createVariance({

@@ -1716,0 +1715,0 @@ add,

@@ -215,4 +215,2 @@ /**

export var size = /* #__PURE__ */createSize({
matrix,
config,
typed

@@ -219,0 +217,0 @@ });

@@ -82,3 +82,3 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";

}
var s = size(context).valueOf();
var s = size(context);
var childArgs = Object.create(args);

@@ -85,0 +85,0 @@ childArgs.end = s[i];

@@ -325,3 +325,3 @@ import _extends from "@babel/runtime/helpers/extends";

next(state);
while (parse.isHexDigit(currentCharacter(state))) {
while (parse.isAlpha(currentCharacter(state), prevCharacter(state), nextCharacter(state)) || parse.isDigit(currentCharacter(state))) {
state.token += currentCharacter(state);

@@ -335,3 +335,3 @@ next(state);

// get the digits after the radix
while (parse.isHexDigit(currentCharacter(state))) {
while (parse.isAlpha(currentCharacter(state), prevCharacter(state), nextCharacter(state)) || parse.isDigit(currentCharacter(state))) {
state.token += currentCharacter(state);

@@ -543,11 +543,2 @@ next(state);

/**
* checks if the given char c is a hex digit
* @param {string} c a string with one character
* @return {boolean}
*/
parse.isHexDigit = function isHexDigit(c) {
return c >= '0' && c <= '9' || c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F';
};
/**
* Start of the parse levels below, in order of precedence

@@ -940,3 +931,3 @@ * @return {Node} node

var node, name, fn, params;
node = parseMultiplyDivideModulusPercentage(state);
node = parseMultiplyDivideModulus(state);
var operators = {

@@ -950,3 +941,3 @@ '+': 'add',

getTokenSkipNewline(state);
var rightNode = parseMultiplyDivideModulusPercentage(state);
var rightNode = parseMultiplyDivideModulus(state);
if (rightNode.isPercentage) {

@@ -963,7 +954,7 @@ params = [node, new OperatorNode('*', 'multiply', [node, rightNode])];

/**
* multiply, divide, modulus, percentage
* multiply, divide, modulus
* @return {Node} node
* @private
*/
function parseMultiplyDivideModulusPercentage(state) {
function parseMultiplyDivideModulus(state) {
var node, last, name, fn;

@@ -986,19 +977,4 @@ node = parseImplicitMultiplication(state);

getTokenSkipNewline(state);
if (name === '%' && state.tokenType === TOKENTYPE.DELIMITER && state.token !== '(') {
// If the expression contains only %, then treat that as /100
if (state.token !== '' && operators[state.token]) {
var left = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
name = state.token;
fn = operators[name];
getTokenSkipNewline(state);
last = parseImplicitMultiplication(state);
node = new OperatorNode(name, fn, [left, last]);
} else {
node = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
}
// return node
} else {
last = parseImplicitMultiplication(state);
node = new OperatorNode(name, fn, [node, last]);
}
last = parseImplicitMultiplication(state);
node = new OperatorNode(name, fn, [node, last]);
} else {

@@ -1046,3 +1022,3 @@ break;

function parseRule2(state) {
var node = parseUnary(state);
var node = parseUnaryPercentage(state);
var last = node;

@@ -1069,3 +1045,3 @@ var tokenStates = [];

tokenStates.pop();
last = parseUnary(state);
last = parseUnaryPercentage(state);
node = new OperatorNode('/', 'divide', [node, last]);

@@ -1091,2 +1067,30 @@ } else {

/**
* Unary percentage operator (treated as `value / 100`)
* @return {Node} node
* @private
*/
function parseUnaryPercentage(state) {
var node = parseUnary(state);
if (state.token === '%') {
var previousState = _extends({}, state);
getTokenSkipNewline(state);
// We need to decide if this is a unary percentage % or binary modulo %
// So we attempt to parse a unary expression at this point.
// If it fails, then the only possibility is that this is a unary percentage.
// If it succeeds, then we presume that this must be binary modulo, since the
// only things that parseUnary can handle are _higher_ precedence than unary %.
try {
parseUnary(state);
// Not sure if we could somehow use the result of that parseUnary? Without
// further analysis/testing, safer just to discard and let the parse proceed
_extends(state, previousState);
} catch (_unused) {
// Not seeing a term at this point, so was a unary %
node = new OperatorNode('/', 'divide', [node, new ConstantNode(100)], false, true);
}
}
return node;
}
/**
* Unary plus and minus, and logical and bitwise not

@@ -1093,0 +1097,0 @@ * @return {Node} node

@@ -20,3 +20,4 @@ import { factory } from '../../utils/factory.js';

lusolve,
abs
abs,
config
} = _ref;

@@ -92,3 +93,3 @@ /**

if (k < n - 1 && abs(subset(G, index(k + 1, k))) > 1e-5) {
var RHS = vc(subset(D, index(all, k)), subset(D, index(all, k + 1)));
var RHS = vc(subset(D, index(all, [k])), subset(D, index(all, [k + 1])));
for (var j = 0; j < k; j++) {

@@ -103,7 +104,7 @@ RHS = add(RHS, vc(multiply(y[j], subset(G, index(j, k))), multiply(y[j], subset(G, index(j, k + 1)))));

var yAux = lusolve(LHS, RHS);
y[k] = yAux.subset(index(range(0, m), 0));
y[k + 1] = yAux.subset(index(range(m, 2 * m), 0));
y[k] = yAux.subset(index(range(0, m), [0]));
y[k + 1] = yAux.subset(index(range(m, 2 * m), [0]));
k++;
} else {
var _RHS = subset(D, index(all, k));
var _RHS = subset(D, index(all, [k]));
for (var _j = 0; _j < k; _j++) {

@@ -110,0 +111,0 @@ _RHS = add(_RHS, multiply(y[_j], subset(G, index(_j, k))));

@@ -65,4 +65,4 @@ import { factory } from '../../utils/factory.js';

'SparseMatrix, Array | Matrix': (x, y) => {
var sx = flatten(size(x).valueOf()); // work around #3529/#3530
var sy = flatten(size(y).valueOf());
var sx = size(x);
var sy = size(y);
if (deepEqual(sx, sy)) return x;

@@ -69,0 +69,0 @@ throw new DimensionError(sx, sy);

@@ -55,6 +55,7 @@ import { factory } from '../../utils/factory.js';

var rowRange = range(0, value.size()[0]);
var index = new Index(rowRange, column);
var index = new Index(rowRange, [column]);
var result = value.subset(index);
// once config.legacySubset just return result
return isMatrix(result) ? result : matrix([[result]]);
}
});

@@ -41,4 +41,4 @@ import { factory } from '../../utils/factory.js';

function _validateDim(x, y) {
var xSize = _size(x);
var ySize = _size(y);
var xSize = size(x);
var ySize = size(y);
var xLen, yLen;

@@ -71,4 +71,4 @@ if (xSize.length === 1) {

// are these 2-dimensional column vectors? (as opposed to 1-dimensional vectors)
var aIsColumn = _size(a).length === 2;
var bIsColumn = _size(b).length === 2;
var aIsColumn = size(a).length === 2;
var bIsColumn = size(b).length === 2;
var add = addScalar;

@@ -153,7 +153,2 @@ var mul = multiplyScalar;

}
// TODO remove this once #1771 is fixed
function _size(x) {
return isMatrix(x) ? x.size() : size(x);
}
});

@@ -25,4 +25,4 @@ import { flatten as flattenArray } from '../../utils/array.js';

*
* @param {Matrix | Array} x Matrix to be flattened
* @return {Matrix | Array} Returns the flattened matrix
* @param {DenseMatrix | Array} x Matrix to be flattened
* @return {DenseMatrix | Array} Returns the flattened matrix
*/

@@ -33,8 +33,11 @@ return typed(name, {

},
Matrix: function Matrix(x) {
DenseMatrix: function DenseMatrix(x) {
// Return the same matrix type as x (Dense or Sparse Matrix)
// Return the same data type as x
return x.create(flattenArray(x.valueOf(), true), x.datatype());
},
SparseMatrix: function SparseMatrix(_x) {
throw new TypeError('SparseMatrix is not supported by function flatten ' + 'because it does not support 1D vectors. ' + 'Convert to a DenseMatrix or Array first. Example: flatten(x.toArray())');
}
});
});

@@ -28,3 +28,3 @@ import { arraySize as size } from '../../utils/array.js';

* math.kron([1,1], [2,3,4])
* // returns [ [ 2, 3, 4, 2, 3, 4 ] ]
* // returns [2, 3, 4, 2, 3, 4]
*

@@ -53,35 +53,36 @@ * See also:

/**
* Calculate the Kronecker product of two matrices / vectors
* @param {Array} a First vector
* @param {Array} b Second vector
* @returns {Array} Returns the Kronecker product of x and y
* @private
* Calculate the Kronecker product of two (1-dimensional) vectors,
* with no dimension checking
* @param {Array} a First vector
* @param {Array} b Second vector
* @returns {Array} the 1-dimensional Kronecker product of a and b
* @private
*/
function _kron1d(a, b) {
// TODO in core overhaul: would be faster to see if we can choose a
// particular implementation of multiplyScalar at the beginning,
// rather than re-dispatch for _every_ ordered pair of entries.
return a.flatMap(x => b.map(y => multiplyScalar(x, y)));
}
/**
* Calculate the Kronecker product of two possibly multidimensional arrays
* @param {Array} a First array
* @param {Array} b Second array
* @param {number} [d] common dimension; if missing, compute and match args
* @returns {Array} Returns the Kronecker product of x and y
* @private
*/
function _kron(a, b) {
// Deal with the dimensions of the matricies.
if (size(a).length === 1) {
// Wrap it in a 2D Matrix
a = [a];
var d = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
if (d < 0) {
var adim = size(a).length;
var bdim = size(b).length;
d = Math.max(adim, bdim);
while (adim++ < d) a = [a];
while (bdim++ < d) b = [b];
}
if (size(b).length === 1) {
// Wrap it in a 2D Matrix
b = [b];
}
if (size(a).length > 2 || size(b).length > 2) {
throw new RangeError('Vectors with dimensions greater then 2 are not supported expected ' + '(Size x = ' + JSON.stringify(a.length) + ', y = ' + JSON.stringify(b.length) + ')');
}
var t = [];
var r = [];
return a.map(function (a) {
return b.map(function (b) {
r = [];
t.push(r);
return a.map(function (y) {
return b.map(function (x) {
return r.push(multiplyScalar(y, x));
});
});
});
}) && t;
if (d === 1) return _kron1d(a, b);
return a.flatMap(aSlice => b.map(bSlice => _kron(aSlice, bSlice, d - 1)));
}
});

@@ -55,6 +55,7 @@ import { factory } from '../../utils/factory.js';

var columnRange = range(0, value.size()[1]);
var index = new Index(row, columnRange);
var index = new Index([row], columnRange);
var result = value.subset(index);
// once config.legacySubset just return result
return isMatrix(result) ? result : matrix([[result]]);
}
});
import { arraySize } from '../../utils/array.js';
import { factory } from '../../utils/factory.js';
import { noMatrix } from '../../utils/noop.js';
var name = 'size';
var dependencies = ['typed', 'config', '?matrix'];
var dependencies = ['typed'];
export var createSize = /* #__PURE__ */factory(name, dependencies, _ref => {
var {
typed,
config,
matrix
typed
} = _ref;
/**
* Calculate the size of a matrix or scalar.
* Calculate the size of a matrix or scalar. Always returns an Array containing numbers.
*
* Note that in mathjs v14 and older, function size could return a Matrix depending on
* the input type and configuration.
*
* Syntax:

@@ -33,17 +33,11 @@ *

* @param {boolean | number | Complex | Unit | string | Array | Matrix} x A matrix
* @return {Array | Matrix} A vector with size of `x`.
* @return {Array} A vector with size of `x`.
*/
return typed(name, {
Matrix: function Matrix(x) {
return x.create(x.size(), 'number');
},
Matrix: x => x.size(),
Array: arraySize,
string: function string(x) {
return config.matrix === 'Array' ? [x.length] : matrix([x.length], 'dense', 'number');
},
'number | Complex | BigNumber | Unit | boolean | null': function number__Complex__BigNumber__Unit__boolean__null(x) {
// scalar
return config.matrix === 'Array' ? [] : matrix ? matrix([], 'dense', 'number') : noMatrix();
}
string: x => [x.length],
// scalar
'number | Complex | BigNumber | Unit | boolean | null': _x => []
});
});

@@ -28,4 +28,4 @@ import { isIndex } from '../../utils/is.js';

* 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]]
* math.subset(d, math.index([0, 1], [1])) // returns [[2], [4]]
* math.subset(d, math.index([false, true], [0])) // returns [[3]]
*

@@ -40,5 +40,5 @@ * // replace a subset

* const M = [
* [1,2,3],
* [4,5,6],
* [7,8,9]
* [1, 2, 3],
* [4, 5, 6],
* [7, 8, 9]
* ]

@@ -122,3 +122,3 @@ * math.subset(M, math.index(math.range(0,2), math.range(0,3))) // [[1, 2, 3], [4, 5, 6]]

}
if (index._isScalar) {
if (index.isScalar()) {
return replacement;

@@ -165,5 +165,10 @@ }

var substr = '';
range.forEach(function (v) {
function callback(v) {
substr += str.charAt(v);
});
}
if (Number.isInteger(range)) {
callback(range);
} else {
range.forEach(callback);
}
return substr;

@@ -202,3 +207,3 @@ }

var range = index.dimension(0);
var len = range.size()[0];
var len = Number.isInteger(range) ? 1 : range.size()[0];
if (len !== replacement.length) {

@@ -218,5 +223,10 @@ throw new DimensionError(range.size()[0], replacement.length);

}
range.forEach(function (v, i) {
function callback(v, i) {
chars[v] = replacement.charAt(i[0]);
});
}
if (Number.isInteger(range)) {
callback(range, [0]);
} else {
range.forEach(callback);
}

@@ -223,0 +233,0 @@ // initialize undefined characters with a space

@@ -11,6 +11,7 @@ // deno-lint-ignore-file no-this-alias

var name = 'DenseMatrix';
var dependencies = ['Matrix'];
var dependencies = ['Matrix', 'config'];
export var createDenseMatrixClass = /* #__PURE__ */factory(name, dependencies, _ref => {
var {
Matrix
Matrix,
config
} = _ref;

@@ -225,3 +226,3 @@ /**

}
var isScalar = index.isScalar();
var isScalar = config.legacySubset ? index.size().every(idx => idx === 1) : index.isScalar();
if (isScalar) {

@@ -246,3 +247,3 @@ // return a scalar

// retrieve submatrix
var returnMatrix = new DenseMatrix([]);
var returnMatrix = new DenseMatrix();
var submatrix = _getSubmatrix(matrix._data, index);

@@ -252,3 +253,3 @@ returnMatrix._size = submatrix.size;

returnMatrix._data = submatrix.data;
return returnMatrix;
return config.legacySubset ? returnMatrix.reshape(index.size()) : returnMatrix;
}

@@ -271,18 +272,26 @@ }

data: getSubmatrixRecursive(data),
size
size: size.filter(x => x !== null)
};
function getSubmatrixRecursive(data) {
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var ranges = index.dimension(depth);
size[depth] = ranges.size()[0];
var dims = index.dimension(depth);
function _mapIndex(dim, callback) {
// applies a callback for when the index is a Number or a Matrix
if (isNumber(dim)) return callback(dim);else return dim.map(callback).valueOf();
}
if (isNumber(dims)) {
size[depth] = null;
} else {
size[depth] = dims.size()[0];
}
if (depth < maxDepth) {
return ranges.map(rangeIndex => {
validateIndex(rangeIndex, data.length);
return getSubmatrixRecursive(data[rangeIndex], depth + 1);
}).valueOf();
return _mapIndex(dims, dimIndex => {
validateIndex(dimIndex, data.length);
return getSubmatrixRecursive(data[dimIndex], depth + 1);
});
} else {
return ranges.map(rangeIndex => {
validateIndex(rangeIndex, data.length);
return data[rangeIndex];
}).valueOf();
return _mapIndex(dims, dimIndex => {
validateIndex(dimIndex, data.length);
return data[dimIndex];
});
}

@@ -314,8 +323,8 @@ }

// calculate the size of the submatrix, and convert it into an Array if needed
var sSize;
var submatrixSize;
if (isMatrix(submatrix)) {
sSize = submatrix.size();
submatrixSize = submatrix.size();
submatrix = submatrix.valueOf();
} else {
sSize = arraySize(submatrix);
submatrixSize = arraySize(submatrix);
}

@@ -326,3 +335,3 @@ if (isScalar) {

// check whether submatrix is a scalar
if (sSize.length !== 0) {
if (submatrixSize.length !== 0) {
throw new TypeError('Scalar expected');

@@ -335,11 +344,11 @@ }

// broadcast submatrix
if (!deepStrictEqual(sSize, iSize)) {
try {
if (sSize.length === 0) {
submatrix = broadcastTo([submatrix], iSize);
} else {
if (!deepStrictEqual(submatrixSize, iSize)) {
if (submatrixSize.length === 0) {
submatrix = broadcastTo([submatrix], iSize);
} else {
try {
submatrix = broadcastTo(submatrix, iSize);
}
sSize = arraySize(submatrix);
} catch (_unused) {}
} catch (error) {}
}
submatrixSize = arraySize(submatrix);
}

@@ -351,7 +360,7 @@

}
if (sSize.length < iSize.length) {
if (submatrixSize.length < iSize.length) {
// calculate number of missing outer dimensions
var i = 0;
var outer = 0;
while (iSize[i] === 1 && sSize[i] === 1) {
while (iSize[i] === 1 && submatrixSize[i] === 1) {
i++;

@@ -365,8 +374,8 @@ }

// unsqueeze both outer and inner dimensions
submatrix = unsqueeze(submatrix, iSize.length, outer, sSize);
submatrix = unsqueeze(submatrix, iSize.length, outer, submatrixSize);
}
// check whether the size of the submatrix matches the index size
if (!deepStrictEqual(iSize, sSize)) {
throw new DimensionError(iSize, sSize, '>');
if (!deepStrictEqual(iSize, submatrixSize)) {
throw new DimensionError(iSize, submatrixSize, '>');
}

@@ -400,12 +409,14 @@

var range = index.dimension(depth);
var recursiveCallback = (rangeIndex, i) => {
validateIndex(rangeIndex, data.length);
setSubmatrixRecursive(data[rangeIndex], submatrix[i[0]], depth + 1);
};
var finalCallback = (rangeIndex, i) => {
validateIndex(rangeIndex, data.length);
data[rangeIndex] = submatrix[i[0]];
};
if (depth < maxDepth) {
range.forEach((rangeIndex, i) => {
validateIndex(rangeIndex, data.length);
setSubmatrixRecursive(data[rangeIndex], submatrix[i[0]], depth + 1);
});
if (isNumber(range)) recursiveCallback(range, [0]);else range.forEach(recursiveCallback);
} else {
range.forEach((rangeIndex, i) => {
validateIndex(rangeIndex, data.length);
data[rangeIndex] = submatrix[i[0]];
});
if (isNumber(range)) finalCallback(range, [0]);else range.forEach(finalCallback);
}

@@ -412,0 +423,0 @@ }

@@ -1,2 +0,2 @@

import { isArray, isMatrix, isRange } from '../../utils/is.js';
import { isArray, isMatrix, isRange, isNumber, isString } from '../../utils/is.js';
import { clone } from '../../utils/object.js';

@@ -34,3 +34,3 @@ import { isInteger } from '../../utils/number.js';

*/
function Index(ranges) {
function Index() {
if (!(this instanceof Index)) {

@@ -43,3 +43,3 @@ throw new SyntaxError('Constructor must be called with the new operator');

for (var i = 0, ii = arguments.length; i < ii; i++) {
var arg = arguments[i];
var arg = i < 0 || arguments.length <= i ? undefined : arguments[i];
var argIsArray = isArray(arg);

@@ -55,2 +55,3 @@ var argIsMatrix = isMatrix(arg);

var m = void 0;
this._isScalar = false;
if (getMatrixDataType(arg) === 'boolean') {

@@ -64,12 +65,6 @@ if (argIsArray) m = _createImmutableMatrix(_booleansArrayToNumbersForIndex(arg).valueOf());

this._dimensions.push(m);
// size
var size = m.size();
// scalar
if (size.length !== 1 || size[0] !== 1 || sourceSize !== null) {
this._isScalar = false;
}
} else if (argType === 'number') {
this._dimensions.push(_createImmutableMatrix([arg]));
this._dimensions.push(arg);
} else if (argType === 'bigint') {
this._dimensions.push(_createImmutableMatrix([Number(arg)]));
this._dimensions.push(Number(arg));
} else if (argType === 'string') {

@@ -94,3 +89,3 @@ // object property (arguments.count should be 1)

for (var i = 0, l = arg.length; i < l; i++) {
if (typeof arg[i] !== 'number' || !isInteger(arg[i])) {
if (!isNumber(arg[i]) || !isInteger(arg[i])) {
throw new TypeError('Index parameters must be positive integer numbers');

@@ -100,3 +95,6 @@ }

// create matrix
return new ImmutableDenseMatrix(arg);
var matrix = new ImmutableDenseMatrix();
matrix._data = arg;
matrix._size = [arg.length];
return matrix;
}

@@ -139,3 +137,3 @@

var d = this._dimensions[i];
size[i] = typeof d === 'string' ? 1 : d.size()[0];
size[i] = isString(d) || isNumber(d) ? 1 : d.size()[0];
}

@@ -154,3 +152,3 @@ return size;

var range = this._dimensions[i];
values[i] = typeof range === 'string' ? range : range.max();
values[i] = isString(range) || isNumber(range) ? range : range.max();
}

@@ -169,3 +167,3 @@ return values;

var range = this._dimensions[i];
values[i] = typeof range === 'string' ? range : range.min();
values[i] = isString(range) || isNumber(range) ? range : range.min();
}

@@ -195,6 +193,7 @@ return values;

Index.prototype.dimension = function (dim) {
if (typeof dim !== 'number') {
var _this$_dimensions$dim;
if (!isNumber(dim)) {
return null;
}
return this._dimensions[dim] || null;
return (_this$_dimensions$dim = this._dimensions[dim]) !== null && _this$_dimensions$dim !== void 0 ? _this$_dimensions$dim : null;
};

@@ -207,3 +206,3 @@

Index.prototype.isObjectProperty = function () {
return this._dimensions.length === 1 && typeof this._dimensions[0] === 'string';
return this._dimensions.length === 1 && isString(this._dimensions[0]);
};

@@ -242,3 +241,3 @@

var dimension = this._dimensions[i];
array.push(typeof dimension === 'string' ? dimension : dimension.toArray());
array.push(isString(dimension) || isNumber(dimension) ? dimension : dimension.toArray());
}

@@ -265,3 +264,3 @@ return array;

var dimension = this._dimensions[i];
if (typeof dimension === 'string') {
if (isString(dimension)) {
strings.push(JSON.stringify(dimension));

@@ -268,0 +267,0 @@ } else {

@@ -301,3 +301,3 @@ import { isArray, isBigNumber, isCollection, isIndex, isMatrix, isNumber, isString, typeOf } from '../../utils/is.js';

// loop rows in resulting matrix
rows.forEach(function (i, r) {
function rowsCallback(i, r) {
// update permutation vector

@@ -307,3 +307,4 @@ pv[i] = r[0];

w[i] = true;
});
}
if (Number.isInteger(rows)) rowsCallback(rows, [0]);else rows.forEach(rowsCallback);

@@ -316,3 +317,3 @@ // result matrix arrays

// loop columns in result matrix
columns.forEach(function (j) {
function columnsCallback(j) {
// update ptr

@@ -334,3 +335,4 @@ ptr.push(index.length);

}
});
}
if (Number.isInteger(columns)) columnsCallback(columns);else columns.forEach(columnsCallback);
// update ptr

@@ -409,3 +411,3 @@ ptr.push(index.length);

var range = index.dimension(0);
range.forEach(function (dataIndex, subIndex) {
_forEachIndex(range, (dataIndex, subIndex) => {
validateIndex(dataIndex);

@@ -418,5 +420,5 @@ matrix.set([dataIndex, 0], submatrix[subIndex[0]], defaultValue);

var secondDimensionRange = index.dimension(1);
firstDimensionRange.forEach(function (firstDataIndex, firstSubIndex) {
_forEachIndex(firstDimensionRange, (firstDataIndex, firstSubIndex) => {
validateIndex(firstDataIndex);
secondDimensionRange.forEach(function (secondDataIndex, secondSubIndex) {
_forEachIndex(secondDimensionRange, (secondDataIndex, secondSubIndex) => {
validateIndex(secondDataIndex);

@@ -429,2 +431,6 @@ matrix.set([firstDataIndex, secondDataIndex], submatrix[firstSubIndex[0]][secondSubIndex[0]], defaultValue);

return matrix;
function _forEachIndex(index, callback) {
// iterate cases where index is a Matrix or a Number
if (isNumber(index)) callback(index, [0]);else index.forEach(callback);
}
}

@@ -431,0 +437,0 @@

@@ -1,3 +0,3 @@

export var version = '14.9.1';
export var version = '15.0.0';
// Note: This file is automatically generated when building math.js.
// Changes made in this file will be overwritten.
{
"name": "mathjs",
"version": "14.9.1",
"version": "15.0.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 too big to display