Comparing version 12.3.2 to 12.4.0
@@ -26,4 +26,4 @@ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ | ||
* | ||
* @version 12.3.2 | ||
* @date 2024-02-08 | ||
* @version 12.4.0 | ||
* @date 2024-02-22 | ||
* | ||
@@ -30,0 +30,0 @@ * @license |
@@ -604,2 +604,3 @@ "use strict"; | ||
DenseMatrix: DenseMatrix, | ||
config: _configReadonly.config, | ||
equalScalar: equalScalar, | ||
@@ -606,0 +607,0 @@ matrix: matrix, |
@@ -1419,4 +1419,6 @@ "use strict"; | ||
getToken(state); | ||
params[rows] = parseRow(state); | ||
rows++; | ||
if (state.token !== ']') { | ||
params[rows] = parseRow(state); | ||
rows++; | ||
} | ||
} | ||
@@ -1469,4 +1471,6 @@ if (state.token !== ']') { | ||
// parse expression | ||
params[len] = parseAssignment(state); | ||
len++; | ||
if (state.token !== ']' && state.token !== ';') { | ||
params[len] = parseAssignment(state); | ||
len++; | ||
} | ||
} | ||
@@ -1473,0 +1477,0 @@ return new ArrayNode(params); |
@@ -122,7 +122,7 @@ "use strict"; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a.getDataType(); | ||
// b dense | ||
var bdata = b._data; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -140,3 +140,3 @@ var alength = asize[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -168,3 +168,3 @@ dt = adt; | ||
size: [bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -213,6 +213,6 @@ } | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a.getDataType(); | ||
// b dense | ||
var bdata = b._data; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -230,3 +230,3 @@ var arows = asize[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -260,3 +260,3 @@ dt = adt; | ||
size: [arows], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -274,10 +274,11 @@ } | ||
function _multiplyDenseMatrixDenseMatrix(a, b) { | ||
// getDataType() | ||
// a dense | ||
var adata = a._data; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a.getDataType(); | ||
// b dense | ||
var bdata = b._data; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -296,3 +297,3 @@ var arows = asize[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed' && adt !== 'mixed') { | ||
// datatype | ||
@@ -331,3 +332,3 @@ dt = adt; | ||
size: [arows, bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -348,3 +349,3 @@ } | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a.getDataType(); | ||
// b sparse | ||
@@ -355,3 +356,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
// validate b matrix | ||
@@ -377,3 +378,3 @@ if (!bvalues) { | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -399,3 +400,3 @@ dt = adt; | ||
size: [arows, bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -464,3 +465,3 @@ | ||
var aptr = a._ptr; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// validate a matrix | ||
@@ -472,3 +473,3 @@ if (!avalues) { | ||
var bdata = b._data; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -494,3 +495,3 @@ var arows = a._size[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -548,3 +549,3 @@ dt = adt; | ||
// return sparse matrix | ||
// matrix to return | ||
return a.createSparseMatrix({ | ||
@@ -555,3 +556,3 @@ values: cvalues, | ||
size: [arows, 1], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -573,3 +574,3 @@ } | ||
var aptr = a._ptr; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// validate a matrix | ||
@@ -581,3 +582,3 @@ if (!avalues) { | ||
var bdata = b._data; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -600,3 +601,3 @@ var arows = a._size[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -622,3 +623,3 @@ dt = adt; | ||
size: [arows, bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -690,3 +691,3 @@ | ||
var aptr = a._ptr; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// b sparse | ||
@@ -696,3 +697,3 @@ var bvalues = b._values; | ||
var bptr = b._ptr; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -713,3 +714,3 @@ // rows & columns | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -732,3 +733,3 @@ dt = adt; | ||
size: [arows, bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -735,0 +736,0 @@ |
@@ -9,2 +9,4 @@ "use strict"; | ||
var _collection = require("../../utils/collection.js"); | ||
var _number = require("../../utils/number.js"); | ||
var _nearlyEqual = require("../../utils/bignumber/nearlyEqual.js"); | ||
var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js"); | ||
@@ -16,9 +18,10 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js"); | ||
var name = 'round'; | ||
var dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'BigNumber', 'DenseMatrix']; | ||
var dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'zeros', 'BigNumber', 'DenseMatrix']; | ||
var createRound = exports.createRound = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) { | ||
var typed = _ref.typed, | ||
config = _ref.config, | ||
matrix = _ref.matrix, | ||
equalScalar = _ref.equalScalar, | ||
zeros = _ref.zeros, | ||
BigNumber = _ref.BigNumber, | ||
_BigNumber = _ref.BigNumber, | ||
DenseMatrix = _ref.DenseMatrix; | ||
@@ -36,2 +39,5 @@ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({ | ||
}); | ||
function toExponent(epsilon) { | ||
return Math.abs((0, _number.splitNumber)(epsilon).exponent); | ||
} | ||
@@ -83,4 +89,18 @@ /** | ||
return typed(name, { | ||
number: _index.roundNumber, | ||
'number, number': _index.roundNumber, | ||
number: function number(x) { | ||
// Handle round off errors by first rounding to epsilon precision | ||
var xEpsilon = (0, _index.roundNumber)(x, toExponent(config.epsilon)); | ||
var xSelected = (0, _number.nearlyEqual)(x, xEpsilon, config.epsilon) ? xEpsilon : x; | ||
return (0, _index.roundNumber)(xSelected); | ||
}, | ||
'number, number': function numberNumber(x, n) { | ||
// Same as number: unless user specifies more decimals than epsilon | ||
var epsilonExponent = toExponent(config.epsilon); | ||
if (n >= epsilonExponent) { | ||
return (0, _index.roundNumber)(x, n); | ||
} | ||
var xEpsilon = (0, _index.roundNumber)(x, epsilonExponent); | ||
var xSelected = (0, _number.nearlyEqual)(x, xEpsilon, config.epsilon) ? xEpsilon : x; | ||
return (0, _index.roundNumber)(xSelected, n); | ||
}, | ||
'number, BigNumber': function numberBigNumber(x, n) { | ||
@@ -90,3 +110,3 @@ if (!n.isInteger()) { | ||
} | ||
return new BigNumber(x).toDecimalPlaces(n.toNumber()); | ||
return new _BigNumber(x).toDecimalPlaces(n.toNumber()); | ||
}, | ||
@@ -110,3 +130,6 @@ Complex: function Complex(x) { | ||
BigNumber: function BigNumber(x) { | ||
return x.toDecimalPlaces(0); | ||
// Handle round off errors by first rounding to epsilon precision | ||
var xEpsilon = new _BigNumber(x).toDecimalPlaces(toExponent(config.epsilon)); | ||
var xSelected = (0, _nearlyEqual.nearlyEqual)(x, xEpsilon, config.epsilon) ? xEpsilon : x; | ||
return xSelected.toDecimalPlaces(0); | ||
}, | ||
@@ -117,3 +140,11 @@ 'BigNumber, BigNumber': function BigNumberBigNumber(x, n) { | ||
} | ||
return x.toDecimalPlaces(n.toNumber()); | ||
// Same as BigNumber: unless user specifies more decimals than epsilon | ||
var epsilonExponent = toExponent(config.epsilon); | ||
if (n >= epsilonExponent) { | ||
return x.toDecimalPlaces(n.toNumber()); | ||
} | ||
var xEpsilon = x.toDecimalPlaces(epsilonExponent); | ||
var xSelected = (0, _nearlyEqual.nearlyEqual)(x, xEpsilon, config.epsilon) ? xEpsilon : x; | ||
return xSelected.toDecimalPlaces(n.toNumber()); | ||
}, | ||
@@ -120,0 +151,0 @@ Fraction: function Fraction(x) { |
@@ -69,5 +69,5 @@ "use strict"; | ||
var adata = (0, _is.isMatrix)(a) ? a._data : a; | ||
var adt = (0, _is.isMatrix)(a) ? a._datatype : undefined; | ||
var adt = (0, _is.isMatrix)(a) ? a._datatype || a.getDataType() : undefined; | ||
var bdata = (0, _is.isMatrix)(b) ? b._data : b; | ||
var bdt = (0, _is.isMatrix)(b) ? b._datatype : undefined; | ||
var bdt = (0, _is.isMatrix)(b) ? b._datatype || b.getDataType() : undefined; | ||
@@ -81,3 +81,3 @@ // are these 2-dimensional column vectors? (as opposed to 1-dimensional vectors) | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
var dt = adt; | ||
@@ -84,0 +84,0 @@ // find signatures that matches (dt, dt) |
@@ -9,4 +9,4 @@ /** | ||
* | ||
* @version 12.3.2 | ||
* @date 2024-02-08 | ||
* @version 12.4.0 | ||
* @date 2024-02-22 | ||
* | ||
@@ -13,0 +13,0 @@ * @license |
@@ -36,3 +36,3 @@ "use strict"; | ||
var asize = denseMatrix._size; | ||
var adt = denseMatrix._datatype; | ||
var adt = denseMatrix._datatype || denseMatrix.getDataType(); | ||
// sparse matrix arrays | ||
@@ -43,3 +43,3 @@ var bvalues = sparseMatrix._values; | ||
var bsize = sparseMatrix._size; | ||
var bdt = sparseMatrix._datatype; | ||
var bdt = sparseMatrix._datatype || sparseMatrix._data === undefined ? sparseMatrix._datatype : sparseMatrix.getDataType(); | ||
@@ -66,3 +66,3 @@ // validate dimensions | ||
// process data types | ||
var dt = typeof adt === 'string' && adt === bdt ? adt : undefined; | ||
var dt = typeof adt === 'string' && adt !== 'mixed' && adt === bdt ? adt : undefined; | ||
// callback function | ||
@@ -116,5 +116,5 @@ var cf = dt ? typed.find(callback, [dt, dt]) : callback; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === denseMatrix._datatype && bdt === sparseMatrix._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -37,3 +37,3 @@ "use strict"; | ||
var asize = denseMatrix._size; | ||
var adt = denseMatrix._datatype; | ||
var adt = denseMatrix._datatype || denseMatrix.getDataType(); | ||
// sparse matrix arrays | ||
@@ -44,3 +44,3 @@ var bvalues = sparseMatrix._values; | ||
var bsize = sparseMatrix._size; | ||
var bdt = sparseMatrix._datatype; | ||
var bdt = sparseMatrix._datatype || sparseMatrix._data === undefined ? sparseMatrix._datatype : sparseMatrix.getDataType(); | ||
@@ -76,3 +76,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -120,5 +120,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === denseMatrix._datatype && bdt === sparseMatrix._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -36,3 +36,3 @@ "use strict"; | ||
var asize = denseMatrix._size; | ||
var adt = denseMatrix._datatype; | ||
var adt = denseMatrix._datatype || denseMatrix.getDataType(); | ||
// sparse matrix arrays | ||
@@ -43,3 +43,3 @@ var bvalues = sparseMatrix._values; | ||
var bsize = sparseMatrix._size; | ||
var bdt = sparseMatrix._datatype; | ||
var bdt = sparseMatrix._datatype || sparseMatrix._data === undefined ? sparseMatrix._datatype : sparseMatrix.getDataType(); | ||
@@ -73,3 +73,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -126,5 +126,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === denseMatrix._datatype && bdt === sparseMatrix._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -38,3 +38,3 @@ "use strict"; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
@@ -45,3 +45,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -72,3 +72,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -183,5 +183,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -38,3 +38,3 @@ "use strict"; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
@@ -45,3 +45,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -72,3 +72,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -175,5 +175,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -37,7 +37,7 @@ "use strict"; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -68,3 +68,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -156,5 +156,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -31,6 +31,6 @@ "use strict"; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -59,3 +59,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -108,3 +108,3 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -111,0 +111,0 @@ }; |
@@ -38,3 +38,3 @@ "use strict"; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
@@ -45,3 +45,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -77,3 +77,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -158,5 +158,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -38,3 +38,3 @@ "use strict"; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
@@ -45,3 +45,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -72,3 +72,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -146,5 +146,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -33,2 +33,3 @@ "use strict"; | ||
this.wrappedObject = object; | ||
this[Symbol.iterator] = this.entries; | ||
} | ||
@@ -134,2 +135,3 @@ (0, _createClass2["default"])(ObjectWrappingMap, [{ | ||
this.bKeys = bKeys; | ||
this[Symbol.iterator] = this.entries; | ||
} | ||
@@ -136,0 +138,0 @@ (0, _createClass2["default"])(PartitionedMap, [{ |
@@ -7,4 +7,4 @@ "use strict"; | ||
exports.version = void 0; | ||
var version = exports.version = '12.3.2'; | ||
var version = exports.version = '12.4.0'; | ||
// Note: This file is automatically generated when building math.js. | ||
// Changes made in this file will be overwritten. |
@@ -596,2 +596,3 @@ /** | ||
DenseMatrix, | ||
config, | ||
equalScalar, | ||
@@ -598,0 +599,0 @@ matrix, |
@@ -1412,4 +1412,6 @@ import _extends from "@babel/runtime/helpers/extends"; | ||
getToken(state); | ||
params[rows] = parseRow(state); | ||
rows++; | ||
if (state.token !== ']') { | ||
params[rows] = parseRow(state); | ||
rows++; | ||
} | ||
} | ||
@@ -1462,4 +1464,6 @@ if (state.token !== ']') { | ||
// parse expression | ||
params[len] = parseAssignment(state); | ||
len++; | ||
if (state.token !== ']' && state.token !== ';') { | ||
params[len] = parseAssignment(state); | ||
len++; | ||
} | ||
} | ||
@@ -1466,0 +1470,0 @@ return new ArrayNode(params); |
@@ -118,7 +118,7 @@ import { factory } from '../../utils/factory.js'; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a.getDataType(); | ||
// b dense | ||
var bdata = b._data; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -136,3 +136,3 @@ var alength = asize[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -164,3 +164,3 @@ dt = adt; | ||
size: [bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -209,6 +209,6 @@ } | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a.getDataType(); | ||
// b dense | ||
var bdata = b._data; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -226,3 +226,3 @@ var arows = asize[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -256,3 +256,3 @@ dt = adt; | ||
size: [arows], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -270,10 +270,11 @@ } | ||
function _multiplyDenseMatrixDenseMatrix(a, b) { | ||
// getDataType() | ||
// a dense | ||
var adata = a._data; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a.getDataType(); | ||
// b dense | ||
var bdata = b._data; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -292,3 +293,3 @@ var arows = asize[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed' && adt !== 'mixed') { | ||
// datatype | ||
@@ -327,3 +328,3 @@ dt = adt; | ||
size: [arows, bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -344,3 +345,3 @@ } | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a.getDataType(); | ||
// b sparse | ||
@@ -351,3 +352,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
// validate b matrix | ||
@@ -373,3 +374,3 @@ if (!bvalues) { | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -395,3 +396,3 @@ dt = adt; | ||
size: [arows, bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -460,3 +461,3 @@ | ||
var aptr = a._ptr; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// validate a matrix | ||
@@ -468,3 +469,3 @@ if (!avalues) { | ||
var bdata = b._data; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -490,3 +491,3 @@ var arows = a._size[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -544,3 +545,3 @@ dt = adt; | ||
// return sparse matrix | ||
// matrix to return | ||
return a.createSparseMatrix({ | ||
@@ -551,3 +552,3 @@ values: cvalues, | ||
size: [arows, 1], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -569,3 +570,3 @@ } | ||
var aptr = a._ptr; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// validate a matrix | ||
@@ -577,3 +578,3 @@ if (!avalues) { | ||
var bdata = b._data; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b.getDataType(); | ||
// rows & columns | ||
@@ -596,3 +597,3 @@ var arows = a._size[0]; | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -618,3 +619,3 @@ dt = adt; | ||
size: [arows, bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -686,3 +687,3 @@ | ||
var aptr = a._ptr; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// b sparse | ||
@@ -692,3 +693,3 @@ var bvalues = b._values; | ||
var bptr = b._ptr; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -709,3 +710,3 @@ // rows & columns | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
// datatype | ||
@@ -728,3 +729,3 @@ dt = adt; | ||
size: [arows, bcolumns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -731,0 +732,0 @@ |
import { factory } from '../../utils/factory.js'; | ||
import { deepMap } from '../../utils/collection.js'; | ||
import { nearlyEqual, splitNumber } from '../../utils/number.js'; | ||
import { nearlyEqual as bigNearlyEqual } from '../../utils/bignumber/nearlyEqual.js'; | ||
import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js'; | ||
@@ -9,10 +11,11 @@ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js'; | ||
var name = 'round'; | ||
var dependencies = ['typed', 'matrix', 'equalScalar', 'zeros', 'BigNumber', 'DenseMatrix']; | ||
var dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'zeros', 'BigNumber', 'DenseMatrix']; | ||
export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => { | ||
var { | ||
typed, | ||
config, | ||
matrix, | ||
equalScalar, | ||
zeros, | ||
BigNumber, | ||
BigNumber: _BigNumber, | ||
DenseMatrix | ||
@@ -31,2 +34,5 @@ } = _ref; | ||
}); | ||
function toExponent(epsilon) { | ||
return Math.abs(splitNumber(epsilon).exponent); | ||
} | ||
@@ -78,4 +84,18 @@ /** | ||
return typed(name, { | ||
number: roundNumber, | ||
'number, number': roundNumber, | ||
number: function number(x) { | ||
// Handle round off errors by first rounding to epsilon precision | ||
var xEpsilon = roundNumber(x, toExponent(config.epsilon)); | ||
var xSelected = nearlyEqual(x, xEpsilon, config.epsilon) ? xEpsilon : x; | ||
return roundNumber(xSelected); | ||
}, | ||
'number, number': function numberNumber(x, n) { | ||
// Same as number: unless user specifies more decimals than epsilon | ||
var epsilonExponent = toExponent(config.epsilon); | ||
if (n >= epsilonExponent) { | ||
return roundNumber(x, n); | ||
} | ||
var xEpsilon = roundNumber(x, epsilonExponent); | ||
var xSelected = nearlyEqual(x, xEpsilon, config.epsilon) ? xEpsilon : x; | ||
return roundNumber(xSelected, n); | ||
}, | ||
'number, BigNumber': function numberBigNumber(x, n) { | ||
@@ -85,3 +105,3 @@ if (!n.isInteger()) { | ||
} | ||
return new BigNumber(x).toDecimalPlaces(n.toNumber()); | ||
return new _BigNumber(x).toDecimalPlaces(n.toNumber()); | ||
}, | ||
@@ -105,3 +125,6 @@ Complex: function Complex(x) { | ||
BigNumber: function BigNumber(x) { | ||
return x.toDecimalPlaces(0); | ||
// Handle round off errors by first rounding to epsilon precision | ||
var xEpsilon = new _BigNumber(x).toDecimalPlaces(toExponent(config.epsilon)); | ||
var xSelected = bigNearlyEqual(x, xEpsilon, config.epsilon) ? xEpsilon : x; | ||
return xSelected.toDecimalPlaces(0); | ||
}, | ||
@@ -112,3 +135,11 @@ 'BigNumber, BigNumber': function BigNumberBigNumber(x, n) { | ||
} | ||
return x.toDecimalPlaces(n.toNumber()); | ||
// Same as BigNumber: unless user specifies more decimals than epsilon | ||
var epsilonExponent = toExponent(config.epsilon); | ||
if (n >= epsilonExponent) { | ||
return x.toDecimalPlaces(n.toNumber()); | ||
} | ||
var xEpsilon = x.toDecimalPlaces(epsilonExponent); | ||
var xSelected = bigNearlyEqual(x, xEpsilon, config.epsilon) ? xEpsilon : x; | ||
return xSelected.toDecimalPlaces(n.toNumber()); | ||
}, | ||
@@ -115,0 +146,0 @@ Fraction: function Fraction(x) { |
@@ -65,5 +65,5 @@ import { factory } from '../../utils/factory.js'; | ||
var adata = isMatrix(a) ? a._data : a; | ||
var adt = isMatrix(a) ? a._datatype : undefined; | ||
var adt = isMatrix(a) ? a._datatype || a.getDataType() : undefined; | ||
var bdata = isMatrix(b) ? b._data : b; | ||
var bdt = isMatrix(b) ? b._datatype : undefined; | ||
var bdt = isMatrix(b) ? b._datatype || b.getDataType() : undefined; | ||
@@ -77,3 +77,3 @@ // are these 2-dimensional column vectors? (as opposed to 1-dimensional vectors) | ||
// process data types | ||
if (adt && bdt && adt === bdt && typeof adt === 'string') { | ||
if (adt && bdt && adt === bdt && typeof adt === 'string' && adt !== 'mixed') { | ||
var dt = adt; | ||
@@ -80,0 +80,0 @@ // find signatures that matches (dt, dt) |
@@ -32,3 +32,3 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = denseMatrix._size; | ||
var adt = denseMatrix._datatype; | ||
var adt = denseMatrix._datatype || denseMatrix.getDataType(); | ||
// sparse matrix arrays | ||
@@ -39,3 +39,3 @@ var bvalues = sparseMatrix._values; | ||
var bsize = sparseMatrix._size; | ||
var bdt = sparseMatrix._datatype; | ||
var bdt = sparseMatrix._datatype || sparseMatrix._data === undefined ? sparseMatrix._datatype : sparseMatrix.getDataType(); | ||
@@ -62,3 +62,3 @@ // validate dimensions | ||
// process data types | ||
var dt = typeof adt === 'string' && adt === bdt ? adt : undefined; | ||
var dt = typeof adt === 'string' && adt !== 'mixed' && adt === bdt ? adt : undefined; | ||
// callback function | ||
@@ -112,5 +112,5 @@ var cf = dt ? typed.find(callback, [dt, dt]) : callback; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === denseMatrix._datatype && bdt === sparseMatrix._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -33,3 +33,3 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = denseMatrix._size; | ||
var adt = denseMatrix._datatype; | ||
var adt = denseMatrix._datatype || denseMatrix.getDataType(); | ||
// sparse matrix arrays | ||
@@ -40,3 +40,3 @@ var bvalues = sparseMatrix._values; | ||
var bsize = sparseMatrix._size; | ||
var bdt = sparseMatrix._datatype; | ||
var bdt = sparseMatrix._datatype || sparseMatrix._data === undefined ? sparseMatrix._datatype : sparseMatrix.getDataType(); | ||
@@ -72,3 +72,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -116,5 +116,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === denseMatrix._datatype && bdt === sparseMatrix._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -32,3 +32,3 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = denseMatrix._size; | ||
var adt = denseMatrix._datatype; | ||
var adt = denseMatrix._datatype || denseMatrix.getDataType(); | ||
// sparse matrix arrays | ||
@@ -39,3 +39,3 @@ var bvalues = sparseMatrix._values; | ||
var bsize = sparseMatrix._size; | ||
var bdt = sparseMatrix._datatype; | ||
var bdt = sparseMatrix._datatype || sparseMatrix._data === undefined ? sparseMatrix._datatype : sparseMatrix.getDataType(); | ||
@@ -69,3 +69,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -122,5 +122,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === denseMatrix._datatype && bdt === sparseMatrix._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -34,3 +34,3 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
@@ -41,3 +41,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -68,3 +68,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -179,5 +179,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -34,3 +34,3 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
@@ -41,3 +41,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -68,3 +68,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -171,5 +171,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -33,7 +33,7 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -64,3 +64,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -152,5 +152,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -27,6 +27,6 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -55,3 +55,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -104,3 +104,3 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
@@ -107,0 +107,0 @@ }; |
@@ -34,3 +34,3 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
@@ -41,3 +41,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -73,3 +73,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -154,5 +154,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -34,3 +34,3 @@ import { factory } from '../../../utils/factory.js'; | ||
var asize = a._size; | ||
var adt = a._datatype; | ||
var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType(); | ||
// sparse matrix arrays | ||
@@ -41,3 +41,3 @@ var bvalues = b._values; | ||
var bsize = b._size; | ||
var bdt = b._datatype; | ||
var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType(); | ||
@@ -68,3 +68,3 @@ // validate dimensions | ||
// process data types | ||
if (typeof adt === 'string' && adt === bdt) { | ||
if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') { | ||
// datatype | ||
@@ -142,5 +142,5 @@ dt = adt; | ||
size: [rows, columns], | ||
datatype: dt | ||
datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined | ||
}); | ||
}; | ||
}); |
@@ -15,2 +15,3 @@ import { setSafeProperty, hasSafeProperty, getSafeProperty } from './customs.js'; | ||
this.wrappedObject = object; | ||
this[Symbol.iterator] = this.entries; | ||
} | ||
@@ -75,2 +76,3 @@ keys() { | ||
this.bKeys = bKeys; | ||
this[Symbol.iterator] = this.entries; | ||
} | ||
@@ -77,0 +79,0 @@ get(key) { |
@@ -1,3 +0,3 @@ | ||
export var version = '12.3.2'; | ||
export var version = '12.4.0'; | ||
// Note: This file is automatically generated when building math.js. | ||
// Changes made in this file will be overwritten. |
{ | ||
"name": "mathjs", | ||
"version": "12.3.2", | ||
"version": "12.4.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.", | ||
@@ -46,4 +46,4 @@ "author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)", | ||
"@types/mocha": "10.0.6", | ||
"@typescript-eslint/eslint-plugin": "6.21.0", | ||
"@typescript-eslint/parser": "6.21.0", | ||
"@typescript-eslint/eslint-plugin": "7.0.2", | ||
"@typescript-eslint/parser": "7.0.2", | ||
"assert": "2.1.0", | ||
@@ -54,3 +54,3 @@ "babel-loader": "9.1.3", | ||
"codecov": "3.8.3", | ||
"core-js": "3.35.1", | ||
"core-js": "3.36.0", | ||
"del": "6.1.1", | ||
@@ -62,3 +62,3 @@ "dtslint": "4.2.1", | ||
"eslint-plugin-import": "2.29.1", | ||
"eslint-plugin-mocha": "10.2.0", | ||
"eslint-plugin-mocha": "10.3.0", | ||
"eslint-plugin-n": "16.6.2", | ||
@@ -82,3 +82,3 @@ "eslint-plugin-prettier": "5.1.3", | ||
"mkdirp": "3.0.1", | ||
"mocha": "10.2.0", | ||
"mocha": "10.3.0", | ||
"mocha-junit-reporter": "2.2.1", | ||
@@ -97,3 +97,3 @@ "ndarray": "1.0.19", | ||
"typescript": "5.3.3", | ||
"webpack": "5.90.1", | ||
"webpack": "5.90.3", | ||
"zeros": "1.0.0" | ||
@@ -100,0 +100,0 @@ }, |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
9710613
155323