mathjs 14.7.0 → 14.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HISTORY.md +5 -0
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -2
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesNullish.generated.js +25 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesNullishTransform.generated.js +25 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +14 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +8 -0
- package/lib/cjs/entry/pureFunctionsAny.generated.js +10 -3
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/cjs/expression/embeddedDocs/function/logical/nullish.js +14 -0
- package/lib/cjs/expression/operators.js +7 -0
- package/lib/cjs/expression/parse.js +17 -1
- package/lib/cjs/expression/transform/nullish.transform.js +43 -0
- package/lib/cjs/factoriesAny.js +14 -0
- package/lib/cjs/function/logical/nullish.js +87 -0
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesNullish.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny/dependenciesNullishTransform.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny.generated.js +2 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +10 -2
- package/lib/esm/entry/pureFunctionsAny.generated.js +8 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/esm/expression/embeddedDocs/function/logical/nullish.js +8 -0
- package/lib/esm/expression/operators.js +7 -0
- package/lib/esm/expression/parse.js +17 -1
- package/lib/esm/expression/transform/nullish.transform.js +37 -0
- package/lib/esm/factoriesAny.js +2 -0
- package/lib/esm/function/logical/nullish.js +81 -0
- package/lib/esm/version.js +1 -1
- package/package.json +5 -5
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.nullishDependencies = void 0;
|
7
|
+
var _dependenciesDeepEqualGenerated = require("./dependenciesDeepEqual.generated.js");
|
8
|
+
var _dependenciesFlattenGenerated = require("./dependenciesFlatten.generated.js");
|
9
|
+
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js");
|
10
|
+
var _dependenciesSizeGenerated = require("./dependenciesSize.generated.js");
|
11
|
+
var _dependenciesTypedGenerated = require("./dependenciesTyped.generated.js");
|
12
|
+
var _factoriesAny = require("../../factoriesAny.js");
|
13
|
+
/**
|
14
|
+
* THIS FILE IS AUTO-GENERATED
|
15
|
+
* DON'T MAKE CHANGES HERE
|
16
|
+
*/
|
17
|
+
|
18
|
+
const nullishDependencies = exports.nullishDependencies = {
|
19
|
+
deepEqualDependencies: _dependenciesDeepEqualGenerated.deepEqualDependencies,
|
20
|
+
flattenDependencies: _dependenciesFlattenGenerated.flattenDependencies,
|
21
|
+
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies,
|
22
|
+
sizeDependencies: _dependenciesSizeGenerated.sizeDependencies,
|
23
|
+
typedDependencies: _dependenciesTypedGenerated.typedDependencies,
|
24
|
+
createNullish: _factoriesAny.createNullish
|
25
|
+
};
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.nullishTransformDependencies = void 0;
|
7
|
+
var _dependenciesDeepEqualGenerated = require("./dependenciesDeepEqual.generated.js");
|
8
|
+
var _dependenciesFlattenGenerated = require("./dependenciesFlatten.generated.js");
|
9
|
+
var _dependenciesMatrixGenerated = require("./dependenciesMatrix.generated.js");
|
10
|
+
var _dependenciesSizeGenerated = require("./dependenciesSize.generated.js");
|
11
|
+
var _dependenciesTypedGenerated = require("./dependenciesTyped.generated.js");
|
12
|
+
var _factoriesAny = require("../../factoriesAny.js");
|
13
|
+
/**
|
14
|
+
* THIS FILE IS AUTO-GENERATED
|
15
|
+
* DON'T MAKE CHANGES HERE
|
16
|
+
*/
|
17
|
+
|
18
|
+
const nullishTransformDependencies = exports.nullishTransformDependencies = {
|
19
|
+
deepEqualDependencies: _dependenciesDeepEqualGenerated.deepEqualDependencies,
|
20
|
+
flattenDependencies: _dependenciesFlattenGenerated.flattenDependencies,
|
21
|
+
matrixDependencies: _dependenciesMatrixGenerated.matrixDependencies,
|
22
|
+
sizeDependencies: _dependenciesSizeGenerated.sizeDependencies,
|
23
|
+
typedDependencies: _dependenciesTypedGenerated.typedDependencies,
|
24
|
+
createNullishTransform: _factoriesAny.createNullishTransform
|
25
|
+
};
|
@@ -1443,6 +1443,18 @@ Object.defineProperty(exports, "nullDependencies", {
|
|
1443
1443
|
return _dependenciesNullGenerated.nullDependencies;
|
1444
1444
|
}
|
1445
1445
|
});
|
1446
|
+
Object.defineProperty(exports, "nullishDependencies", {
|
1447
|
+
enumerable: true,
|
1448
|
+
get: function () {
|
1449
|
+
return _dependenciesNullishGenerated.nullishDependencies;
|
1450
|
+
}
|
1451
|
+
});
|
1452
|
+
Object.defineProperty(exports, "nullishTransformDependencies", {
|
1453
|
+
enumerable: true,
|
1454
|
+
get: function () {
|
1455
|
+
return _dependenciesNullishTransformGenerated.nullishTransformDependencies;
|
1456
|
+
}
|
1457
|
+
});
|
1446
1458
|
Object.defineProperty(exports, "numberDependencies", {
|
1447
1459
|
enumerable: true,
|
1448
1460
|
get: function () {
|
@@ -2416,6 +2428,8 @@ var _dependenciesNthRootGenerated = require("./dependenciesAny/dependenciesNthRo
|
|
2416
2428
|
var _dependenciesNthRootsGenerated = require("./dependenciesAny/dependenciesNthRoots.generated.js");
|
2417
2429
|
var _dependenciesNuclearMagnetonGenerated = require("./dependenciesAny/dependenciesNuclearMagneton.generated.js");
|
2418
2430
|
var _dependenciesNullGenerated = require("./dependenciesAny/dependenciesNull.generated.js");
|
2431
|
+
var _dependenciesNullishGenerated = require("./dependenciesAny/dependenciesNullish.generated.js");
|
2432
|
+
var _dependenciesNullishTransformGenerated = require("./dependenciesAny/dependenciesNullishTransform.generated.js");
|
2419
2433
|
var _dependenciesNumberGenerated = require("./dependenciesAny/dependenciesNumber.generated.js");
|
2420
2434
|
var _dependenciesNumericGenerated = require("./dependenciesAny/dependenciesNumeric.generated.js");
|
2421
2435
|
var _dependenciesObjectNodeGenerated = require("./dependenciesAny/dependenciesObjectNode.generated.js");
|
@@ -416,6 +416,7 @@ const help = exports.help = (0, _factoriesAny.createHelp)({
|
|
416
416
|
min: _pureFunctionsAnyGenerated.min,
|
417
417
|
mod: _pureFunctionsAnyGenerated.mod,
|
418
418
|
nthRoots: _pureFunctionsAnyGenerated.nthRoots,
|
419
|
+
nullish: _pureFunctionsAnyGenerated.nullish,
|
419
420
|
or: _pureFunctionsAnyGenerated.or,
|
420
421
|
partitionSelect: _pureFunctionsAnyGenerated.partitionSelect,
|
421
422
|
qr: _pureFunctionsAnyGenerated.qr,
|
@@ -631,6 +632,13 @@ const help = exports.help = (0, _factoriesAny.createHelp)({
|
|
631
632
|
smaller: _pureFunctionsAnyGenerated.smaller,
|
632
633
|
typed: _pureFunctionsAnyGenerated.typed
|
633
634
|
}),
|
635
|
+
nullish: (0, _factoriesAny.createNullishTransform)({
|
636
|
+
deepEqual: _pureFunctionsAnyGenerated.deepEqual,
|
637
|
+
flatten: _pureFunctionsAnyGenerated.flatten,
|
638
|
+
matrix: _pureFunctionsAnyGenerated.matrix,
|
639
|
+
size: _pureFunctionsAnyGenerated.size,
|
640
|
+
typed: _pureFunctionsAnyGenerated.typed
|
641
|
+
}),
|
634
642
|
subset: (0, _factoriesAny.createSubsetTransform)({
|
635
643
|
add: _pureFunctionsAnyGenerated.add,
|
636
644
|
matrix: _pureFunctionsAnyGenerated.matrix,
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.dotPow = exports.dotMultiply = exports.dotDivide = exports.dot = exports.divideScalar = exports.divide = exports.distance = exports.diff = exports.diag = exports.deuteronMass = exports.det = exports.deepEqual = exports.cumsum = exports.cube = exports.ctranspose = exports.csch = exports.csc = exports.cross = exports.createUnit = exports.count = exports.coulombConstant = exports.coulomb = exports.coth = exports.cot = exports.cosh = exports.cos = exports.corr = exports.conj = exports.conductanceQuantum = exports.concat = exports.composition = exports.complex = exports.compareText = exports.compareNatural = exports.compare = exports.combinationsWithRep = exports.combinations = exports.column = exports.clone = exports.classicalElectronRadius = exports.ceil = exports.cbrt = exports.catalan = exports.boolean = exports.boltzmann = exports.bohrRadius = exports.bohrMagneton = exports.bitXor = exports.bitOr = exports.bitNot = exports.bitAnd = exports.bin = exports.bignumber = exports.bigint = exports.bellNumbers = exports.avogadro = exports.atomicMass = exports.atanh = exports.atan2 = exports.atan = exports.asinh = exports.asin = exports.asech = exports.asec = exports.arg = exports.apply = exports.and = exports.addScalar = exports.add = exports.acsch = exports.acsc = exports.acoth = exports.acot = exports.acosh = exports.acos = exports.abs = exports._true = exports._null = exports._false = exports._NaN = exports._Infinity = exports.Unit = exports.SparseMatrix = exports.Spa = exports.SQRT2 = exports.SQRT1_2 = exports.ResultSet = exports.Range = exports.Matrix = exports.LOG2E = exports.LOG10E = exports.LN2 = exports.LN10 = exports.Index = exports.ImmutableDenseMatrix = exports.Fraction = exports.FibonacciHeap = exports.DenseMatrix = exports.Complex = exports.BigNumber = void 0;
|
7
|
-
exports.
|
8
|
-
exports.
|
9
|
-
exports.zpk2tf = exports.zeta = exports.zeros = exports.xor = exports.xgcd = void 0;
|
7
|
+
exports.nullish = exports.nuclearMagneton = exports.nthRoots = exports.nthRoot = exports.not = exports.norm = exports.neutronMass = exports.multiplyScalar = exports.multiply = exports.multinomial = exports.molarVolume = exports.molarPlanckConstant = exports.molarMassC12 = exports.molarMass = exports.mode = exports.mod = exports.min = exports.median = exports.mean = exports.max = exports.matrixFromRows = exports.matrixFromFunction = exports.matrixFromColumns = exports.matrix = exports.mapSlices = exports.map = exports.magneticFluxQuantum = exports.magneticConstant = exports.mad = exports.lyap = exports.lusolve = exports.lup = exports.lsolveAll = exports.lsolve = exports.loschmidt = exports.log2 = exports.log1p = exports.log10 = exports.log = exports.lgamma = exports.leftShift = exports.lcm = exports.largerEq = exports.larger = exports.kron = exports.klitzing = exports.kldivergence = exports.isZero = exports.isPrime = exports.isPositive = exports.isNumeric = exports.isNegative = exports.isNaN = exports.isInteger = exports.invmod = exports.inverseConductanceQuantum = exports.inv = exports.intersect = exports.index = exports.im = exports.ifft = exports.identity = exports.i = exports.hypot = exports.hex = exports.hasNumericValue = exports.hartreeEnergy = exports.gravity = exports.gravitationConstant = exports.getMatrixDataType = exports.gcd = exports.gasConstant = exports.gamma = exports.freqz = exports.fraction = exports.format = exports.forEach = exports.floor = exports.flatten = exports.fix = exports.firstRadiation = exports.fineStructure = exports.filter = exports.fft = exports.fermiCoupling = exports.faraday = exports.factorial = exports.expm1 = exports.expm = exports.exp = exports.erf = exports.equalText = exports.equalScalar = exports.equal = exports.elementaryCharge = exports.electronMass = exports.electricConstant = exports.eigs = exports.efimovFactor = exports.e = void 0;
|
8
|
+
exports.weakMixingAngle = exports.version = exports.variance = exports.vacuumImpedance = exports.usolveAll = exports.usolve = exports.unit = exports.unequal = exports.unaryPlus = exports.unaryMinus = exports.typed = exports.typeOf = exports.transpose = exports.trace = exports.toBest = exports.to = exports.thomsonCrossSection = exports.tau = exports.tanh = exports.tan = exports.sylvester = exports.sum = exports.subtractScalar = exports.subtract = exports.subset = exports.string = exports.stirlingS2 = exports.stefanBoltzmann = exports.std = exports.squeeze = exports.square = exports.sqrtm = exports.sqrt = exports.splitUnit = exports.speedOfLight = exports.sparse = exports.sort = exports.solveODE = exports.smallerEq = exports.smaller = exports.slu = exports.size = exports.sinh = exports.sin = exports.sign = exports.setUnion = exports.setSymDifference = exports.setSize = exports.setPowerset = exports.setMultiplicity = exports.setIsSubset = exports.setIntersect = exports.setDistinct = exports.setDifference = exports.setCartesian = exports.secondRadiation = exports.sech = exports.sec = exports.schur = exports.sackurTetrode = exports.rydberg = exports.row = exports.round = exports.rotationMatrix = exports.rotate = exports.rightLogShift = exports.rightArithShift = exports.resize = exports.reshape = exports.replacer = exports.reducedPlanckConstant = exports.re = exports.range = exports.randomInt = exports.random = exports.quantumOfCirculation = exports.quantileSeq = exports.qr = exports.protonMass = exports.prod = exports.print = exports.pow = exports.polynomialRoot = exports.planckTime = exports.planckTemperature = exports.planckMass = exports.planckLength = exports.planckConstant = exports.planckCharge = exports.pinv = exports.pickRandom = exports.pi = exports.phi = exports.permutations = exports.partitionSelect = exports.or = exports.ones = exports.oct = exports.numeric = exports.number = void 0;
|
9
|
+
exports.zpk2tf = exports.zeta = exports.zeros = exports.xor = exports.xgcd = exports.wienDisplacement = void 0;
|
10
10
|
var _configReadonly = require("./configReadonly.js");
|
11
11
|
var _factoriesAny = require("../factoriesAny.js");
|
12
12
|
/**
|
@@ -779,6 +779,13 @@ const nthRoots = exports.nthRoots = /* #__PURE__ */(0, _factoriesAny.createNthRo
|
|
779
779
|
divideScalar,
|
780
780
|
typed
|
781
781
|
});
|
782
|
+
const nullish = exports.nullish = /* #__PURE__ */(0, _factoriesAny.createNullish)({
|
783
|
+
deepEqual,
|
784
|
+
flatten,
|
785
|
+
matrix,
|
786
|
+
size,
|
787
|
+
typed
|
788
|
+
});
|
782
789
|
const or = exports.or = /* #__PURE__ */(0, _factoriesAny.createOr)({
|
783
790
|
DenseMatrix,
|
784
791
|
concat,
|
@@ -118,6 +118,7 @@ var _distance = require("./function/geometry/distance.js");
|
|
118
118
|
var _intersect = require("./function/geometry/intersect.js");
|
119
119
|
var _and = require("./function/logical/and.js");
|
120
120
|
var _not = require("./function/logical/not.js");
|
121
|
+
var _nullish = require("./function/logical/nullish.js");
|
121
122
|
var _or = require("./function/logical/or.js");
|
122
123
|
var _xor = require("./function/logical/xor.js");
|
123
124
|
var _mapSlices = require("./function/matrix/mapSlices.js");
|
@@ -587,6 +588,7 @@ const embeddedDocs = exports.embeddedDocs = {
|
|
587
588
|
// functions - logical
|
588
589
|
and: _and.andDocs,
|
589
590
|
not: _not.notDocs,
|
591
|
+
nullish: _nullish.nullishDocs,
|
590
592
|
or: _or.orDocs,
|
591
593
|
xor: _xor.xorDocs,
|
592
594
|
// functions - matrix
|
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.nullishDocs = void 0;
|
7
|
+
const nullishDocs = exports.nullishDocs = {
|
8
|
+
name: 'nullish',
|
9
|
+
category: 'Logical',
|
10
|
+
syntax: ['x ?? y', 'nullish(x, y)'],
|
11
|
+
description: 'Nullish coalescing operator. Returns the right-hand operand when the left-hand operand is null or undefined, and otherwise returns the left-hand operand.',
|
12
|
+
examples: ['null ?? 42', 'undefined ?? 42', '0 ?? 42', 'false ?? 42', 'null ?? undefined ?? 42'],
|
13
|
+
seealso: ['and', 'or', 'not']
|
14
|
+
};
|
@@ -232,6 +232,13 @@ const properties = exports.properties = [{
|
|
232
232
|
associativity: 'right',
|
233
233
|
associativeWith: []
|
234
234
|
}
|
235
|
+
}, {
|
236
|
+
// nullish coalescing
|
237
|
+
'OperatorNode:nullish': {
|
238
|
+
op: '??',
|
239
|
+
associativity: 'left',
|
240
|
+
associativeWith: []
|
241
|
+
}
|
235
242
|
}, {
|
236
243
|
// factorial
|
237
244
|
'OperatorNode:factorial': {
|
@@ -136,6 +136,7 @@ const createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(n
|
|
136
136
|
'=': true,
|
137
137
|
':': true,
|
138
138
|
'?': true,
|
139
|
+
'??': true,
|
139
140
|
'==': true,
|
140
141
|
'!=': true,
|
141
142
|
'<': true,
|
@@ -1115,7 +1116,7 @@ const createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(n
|
|
1115
1116
|
*/
|
1116
1117
|
function parsePow(state) {
|
1117
1118
|
let node, name, fn, params;
|
1118
|
-
node =
|
1119
|
+
node = parseNullishCoalescing(state);
|
1119
1120
|
if (state.token === '^' || state.token === '.^') {
|
1120
1121
|
name = state.token;
|
1121
1122
|
fn = name === '^' ? 'pow' : 'dotPow';
|
@@ -1126,6 +1127,21 @@ const createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(n
|
|
1126
1127
|
return node;
|
1127
1128
|
}
|
1128
1129
|
|
1130
|
+
/**
|
1131
|
+
* nullish coalescing operator
|
1132
|
+
* @return {Node} node
|
1133
|
+
* @private
|
1134
|
+
*/
|
1135
|
+
function parseNullishCoalescing(state) {
|
1136
|
+
let node = parseLeftHandOperators(state);
|
1137
|
+
while (state.token === '??') {
|
1138
|
+
// eslint-disable-line no-unmodified-loop-condition
|
1139
|
+
getTokenSkipNewline(state);
|
1140
|
+
node = new OperatorNode('??', 'nullish', [node, parseLeftHandOperators(state)]);
|
1141
|
+
}
|
1142
|
+
return node;
|
1143
|
+
}
|
1144
|
+
|
1129
1145
|
/**
|
1130
1146
|
* Left hand operators: factorial x!, ctranspose x'
|
1131
1147
|
* @return {Node} node
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createNullishTransform = void 0;
|
7
|
+
var _nullish = require("../../function/logical/nullish.js");
|
8
|
+
var _factory = require("../../utils/factory.js");
|
9
|
+
var _is = require("../../utils/is.js");
|
10
|
+
const name = 'nullish';
|
11
|
+
const dependencies = ['typed', 'matrix', 'size', 'flatten', 'deepEqual'];
|
12
|
+
const createNullishTransform = exports.createNullishTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
13
|
+
let {
|
14
|
+
typed,
|
15
|
+
matrix,
|
16
|
+
size,
|
17
|
+
flatten,
|
18
|
+
deepEqual
|
19
|
+
} = _ref;
|
20
|
+
const nullish = (0, _nullish.createNullish)({
|
21
|
+
typed,
|
22
|
+
matrix,
|
23
|
+
size,
|
24
|
+
flatten,
|
25
|
+
deepEqual
|
26
|
+
});
|
27
|
+
function nullishTransform(args, math, scope) {
|
28
|
+
const left = args[0].compile().evaluate(scope);
|
29
|
+
|
30
|
+
// If left is not a collection and not nullish, short-circuit and return it
|
31
|
+
if (!(0, _is.isCollection)(left) && left != null && left !== undefined) {
|
32
|
+
return left;
|
33
|
+
}
|
34
|
+
|
35
|
+
// Otherwise evaluate right and apply full nullish semantics (incl. element-wise)
|
36
|
+
const right = args[1].compile().evaluate(scope);
|
37
|
+
return nullish(left, right);
|
38
|
+
}
|
39
|
+
nullishTransform.rawArgs = true;
|
40
|
+
return nullishTransform;
|
41
|
+
}, {
|
42
|
+
isTransformFunction: true
|
43
|
+
});
|
package/lib/cjs/factoriesAny.js
CHANGED
@@ -1341,6 +1341,18 @@ Object.defineProperty(exports, "createNull", {
|
|
1341
1341
|
return _constants.createNull;
|
1342
1342
|
}
|
1343
1343
|
});
|
1344
|
+
Object.defineProperty(exports, "createNullish", {
|
1345
|
+
enumerable: true,
|
1346
|
+
get: function () {
|
1347
|
+
return _nullish.createNullish;
|
1348
|
+
}
|
1349
|
+
});
|
1350
|
+
Object.defineProperty(exports, "createNullishTransform", {
|
1351
|
+
enumerable: true,
|
1352
|
+
get: function () {
|
1353
|
+
return _nullishTransform.createNullishTransform;
|
1354
|
+
}
|
1355
|
+
});
|
1344
1356
|
Object.defineProperty(exports, "createNumber", {
|
1345
1357
|
enumerable: true,
|
1346
1358
|
get: function () {
|
@@ -2255,6 +2267,7 @@ var _conj = require("./function/complex/conj.js");
|
|
2255
2267
|
var _im = require("./function/complex/im.js");
|
2256
2268
|
var _re = require("./function/complex/re.js");
|
2257
2269
|
var _not = require("./function/logical/not.js");
|
2270
|
+
var _nullish = require("./function/logical/nullish.js");
|
2258
2271
|
var _or = require("./function/logical/or.js");
|
2259
2272
|
var _xor = require("./function/logical/xor.js");
|
2260
2273
|
var _concat = require("./function/matrix/concat.js");
|
@@ -2481,5 +2494,6 @@ var _varianceTransform = require("./expression/transform/variance.transform.js")
|
|
2481
2494
|
var _printTransform = require("./expression/transform/print.transform.js");
|
2482
2495
|
var _andTransform = require("./expression/transform/and.transform.js");
|
2483
2496
|
var _orTransform = require("./expression/transform/or.transform.js");
|
2497
|
+
var _nullishTransform = require("./expression/transform/nullish.transform.js");
|
2484
2498
|
var _bitAndTransform = require("./expression/transform/bitAnd.transform.js");
|
2485
2499
|
var _bitOrTransform = require("./expression/transform/bitOr.transform.js");
|
@@ -0,0 +1,87 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createNullish = void 0;
|
7
|
+
var _factory = require("../../utils/factory.js");
|
8
|
+
var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
|
9
|
+
var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
|
10
|
+
var _matAlgo13xDD = require("../../type/matrix/utils/matAlgo13xDD.js");
|
11
|
+
var _DimensionError = require("../../error/DimensionError.js");
|
12
|
+
const name = 'nullish';
|
13
|
+
const dependencies = ['typed', 'matrix', 'size', 'flatten', 'deepEqual'];
|
14
|
+
const createNullish = exports.createNullish = /* #__PURE__ */(0, _factory.factory)(name, dependencies, _ref => {
|
15
|
+
let {
|
16
|
+
typed,
|
17
|
+
matrix,
|
18
|
+
size,
|
19
|
+
flatten,
|
20
|
+
deepEqual
|
21
|
+
} = _ref;
|
22
|
+
const matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
|
23
|
+
typed
|
24
|
+
});
|
25
|
+
const matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
|
26
|
+
typed
|
27
|
+
});
|
28
|
+
const matAlgo13xDD = (0, _matAlgo13xDD.createMatAlgo13xDD)({
|
29
|
+
typed
|
30
|
+
});
|
31
|
+
|
32
|
+
/**
|
33
|
+
* Nullish coalescing operator (??). Returns the right-hand side operand
|
34
|
+
* when the left-hand side operand is null or undefined, and otherwise
|
35
|
+
* returns the left-hand side operand.
|
36
|
+
*
|
37
|
+
* For matrices, the function is evaluated element wise.
|
38
|
+
*
|
39
|
+
* Syntax:
|
40
|
+
*
|
41
|
+
* math.nullish(x, y)
|
42
|
+
*
|
43
|
+
* Examples:
|
44
|
+
*
|
45
|
+
* math.nullish(null, 42) // returns 42
|
46
|
+
* math.nullish(undefined, 42) // returns 42
|
47
|
+
* math.nullish(0, 42) // returns 0
|
48
|
+
* math.nullish(false, 42) // returns false
|
49
|
+
* math.nullish('', 42) // returns ''
|
50
|
+
*
|
51
|
+
* // Object property access with fallback
|
52
|
+
* const obj = {foo: 7, bar: 3}
|
53
|
+
* math.nullish(obj.baz, 0) // returns 0
|
54
|
+
*
|
55
|
+
* See also:
|
56
|
+
*
|
57
|
+
* and, or, not
|
58
|
+
*
|
59
|
+
* @param {*} x First value to check
|
60
|
+
* @param {*} y Fallback value
|
61
|
+
* @return {*} Returns y when x is null or undefined, otherwise returns x
|
62
|
+
*/
|
63
|
+
|
64
|
+
return typed(name, {
|
65
|
+
// Scalar and SparseMatrix-first short-circuit handlers
|
66
|
+
'number|bigint|Complex|BigNumber|Fraction|Unit|string|boolean|SparseMatrix, any': (x, _y) => x,
|
67
|
+
'null, any': (_x, y) => y,
|
68
|
+
'undefined, any': (_x, y) => y,
|
69
|
+
// SparseMatrix-first with collection RHS: enforce exact shape match
|
70
|
+
'SparseMatrix, Array | Matrix': (x, y) => {
|
71
|
+
const sx = flatten(size(x).valueOf()); // work around #3529/#3530
|
72
|
+
const sy = flatten(size(y).valueOf());
|
73
|
+
if (deepEqual(sx, sy)) return x;
|
74
|
+
throw new _DimensionError.DimensionError(sx, sy);
|
75
|
+
},
|
76
|
+
// DenseMatrix-first handlers (no broadcasting between collections)
|
77
|
+
'DenseMatrix, DenseMatrix': typed.referToSelf(self => (x, y) => matAlgo13xDD(x, y, self)),
|
78
|
+
'DenseMatrix, SparseMatrix': typed.referToSelf(self => (x, y) => matAlgo03xDSf(x, y, self, false)),
|
79
|
+
'DenseMatrix, Array': typed.referToSelf(self => (x, y) => matAlgo13xDD(x, matrix(y), self)),
|
80
|
+
'DenseMatrix, any': typed.referToSelf(self => (x, y) => matAlgo14xDs(x, y, self, false)),
|
81
|
+
// Array-first handlers (bridge via matrix() where needed)
|
82
|
+
'Array, Array': typed.referToSelf(self => (x, y) => matAlgo13xDD(matrix(x), matrix(y), self).valueOf()),
|
83
|
+
'Array, DenseMatrix': typed.referToSelf(self => (x, y) => matAlgo13xDD(matrix(x), y, self)),
|
84
|
+
'Array, SparseMatrix': typed.referToSelf(self => (x, y) => matAlgo03xDSf(matrix(x), y, self, false)),
|
85
|
+
'Array, any': typed.referToSelf(self => (x, y) => matAlgo14xDs(matrix(x), y, self, false).valueOf())
|
86
|
+
});
|
87
|
+
});
|
package/lib/cjs/header.js
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
* It features real and complex numbers, units, matrices, a large set of
|
7
7
|
* mathematical functions, and a flexible expression parser.
|
8
8
|
*
|
9
|
-
* @version 14.
|
10
|
-
* @date 2025-09-
|
9
|
+
* @version 14.8.0
|
10
|
+
* @date 2025-09-24
|
11
11
|
*
|
12
12
|
* @license
|
13
13
|
* Copyright (C) 2013-2025 Jos de Jong <wjosdejong@gmail.com>
|
package/lib/cjs/version.js
CHANGED
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.version = void 0;
|
7
|
-
const version = exports.version = '14.
|
7
|
+
const version = exports.version = '14.8.0';
|
8
8
|
// Note: This file is automatically generated when building math.js.
|
9
9
|
// Changes made in this file will be overwritten.
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
3
|
+
* DON'T MAKE CHANGES HERE
|
4
|
+
*/
|
5
|
+
import { deepEqualDependencies } from './dependenciesDeepEqual.generated.js';
|
6
|
+
import { flattenDependencies } from './dependenciesFlatten.generated.js';
|
7
|
+
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
8
|
+
import { sizeDependencies } from './dependenciesSize.generated.js';
|
9
|
+
import { typedDependencies } from './dependenciesTyped.generated.js';
|
10
|
+
import { createNullish } from '../../factoriesAny.js';
|
11
|
+
export var nullishDependencies = {
|
12
|
+
deepEqualDependencies,
|
13
|
+
flattenDependencies,
|
14
|
+
matrixDependencies,
|
15
|
+
sizeDependencies,
|
16
|
+
typedDependencies,
|
17
|
+
createNullish
|
18
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
3
|
+
* DON'T MAKE CHANGES HERE
|
4
|
+
*/
|
5
|
+
import { deepEqualDependencies } from './dependenciesDeepEqual.generated.js';
|
6
|
+
import { flattenDependencies } from './dependenciesFlatten.generated.js';
|
7
|
+
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
8
|
+
import { sizeDependencies } from './dependenciesSize.generated.js';
|
9
|
+
import { typedDependencies } from './dependenciesTyped.generated.js';
|
10
|
+
import { createNullishTransform } from '../../factoriesAny.js';
|
11
|
+
export var nullishTransformDependencies = {
|
12
|
+
deepEqualDependencies,
|
13
|
+
flattenDependencies,
|
14
|
+
matrixDependencies,
|
15
|
+
sizeDependencies,
|
16
|
+
typedDependencies,
|
17
|
+
createNullishTransform
|
18
|
+
};
|
@@ -225,6 +225,8 @@ export { nthRootDependencies } from './dependenciesAny/dependenciesNthRoot.gener
|
|
225
225
|
export { nthRootsDependencies } from './dependenciesAny/dependenciesNthRoots.generated.js';
|
226
226
|
export { nuclearMagnetonDependencies } from './dependenciesAny/dependenciesNuclearMagneton.generated.js';
|
227
227
|
export { nullDependencies } from './dependenciesAny/dependenciesNull.generated.js';
|
228
|
+
export { nullishDependencies } from './dependenciesAny/dependenciesNullish.generated.js';
|
229
|
+
export { nullishTransformDependencies } from './dependenciesAny/dependenciesNullishTransform.generated.js';
|
228
230
|
export { numberDependencies } from './dependenciesAny/dependenciesNumber.generated.js';
|
229
231
|
export { numericDependencies } from './dependenciesAny/dependenciesNumeric.generated.js';
|
230
232
|
export { ObjectNodeDependencies } from './dependenciesAny/dependenciesObjectNode.generated.js';
|
@@ -4,10 +4,10 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
4
4
|
* DON'T MAKE CHANGES HERE
|
5
5
|
*/
|
6
6
|
import { config } from './configReadonly.js';
|
7
|
-
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, createSubsetTransform, createBitOrTransform, createCumSumTransform, createDiffTransform, createMaxTransform, createRangeTransform, createRowTransform, createColumnTransform, createMeanTransform, createQuantileSeqTransform, createVarianceTransform, createStdTransform } from '../factoriesAny.js';
|
7
|
+
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';
|
8
8
|
import { BigNumber, Complex, e, _false, fineStructure, Fraction, i, _Infinity, LN10, LOG10E, Matrix, _NaN, _null, phi, Range, ResultSet, SQRT1_2,
|
9
9
|
// eslint-disable-line camelcase
|
10
|
-
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, 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';
|
10
|
+
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';
|
11
11
|
var math = {}; // NOT pure!
|
12
12
|
var mathWithTransform = {}; // NOT pure!
|
13
13
|
var classes = {}; // NOT pure!
|
@@ -402,6 +402,7 @@ _extends(math, {
|
|
402
402
|
min,
|
403
403
|
mod,
|
404
404
|
nthRoots,
|
405
|
+
nullish,
|
405
406
|
or,
|
406
407
|
partitionSelect,
|
407
408
|
qr,
|
@@ -617,6 +618,13 @@ _extends(mathWithTransform, math, {
|
|
617
618
|
smaller,
|
618
619
|
typed
|
619
620
|
}),
|
621
|
+
nullish: createNullishTransform({
|
622
|
+
deepEqual,
|
623
|
+
flatten,
|
624
|
+
matrix,
|
625
|
+
size,
|
626
|
+
typed
|
627
|
+
}),
|
620
628
|
subset: createSubsetTransform({
|
621
629
|
add,
|
622
630
|
matrix,
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import { config } from './configReadonly.js';
|
6
6
|
import { createBigNumberClass, createComplexClass, createE, createFalse, createFineStructure, createFractionClass, createI, createInfinity, createLN10, createLOG10E, createMatrixClass, createNaN, createNull, createPhi, createRangeClass, createResultSet, createSQRT1_2,
|
7
7
|
// eslint-disable-line camelcase
|
8
|
-
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, 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';
|
8
|
+
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';
|
9
9
|
export var BigNumber = /* #__PURE__ */createBigNumberClass({
|
10
10
|
config
|
11
11
|
});
|
@@ -771,6 +771,13 @@ export var nthRoots = /* #__PURE__ */createNthRoots({
|
|
771
771
|
divideScalar,
|
772
772
|
typed
|
773
773
|
});
|
774
|
+
export var nullish = /* #__PURE__ */createNullish({
|
775
|
+
deepEqual,
|
776
|
+
flatten,
|
777
|
+
matrix,
|
778
|
+
size,
|
779
|
+
typed
|
780
|
+
});
|
774
781
|
export var or = /* #__PURE__ */createOr({
|
775
782
|
DenseMatrix,
|
776
783
|
concat,
|
@@ -112,6 +112,7 @@ import { distanceDocs } from './function/geometry/distance.js';
|
|
112
112
|
import { intersectDocs } from './function/geometry/intersect.js';
|
113
113
|
import { andDocs } from './function/logical/and.js';
|
114
114
|
import { notDocs } from './function/logical/not.js';
|
115
|
+
import { nullishDocs } from './function/logical/nullish.js';
|
115
116
|
import { orDocs } from './function/logical/or.js';
|
116
117
|
import { xorDocs } from './function/logical/xor.js';
|
117
118
|
import { mapSlicesDocs } from './function/matrix/mapSlices.js';
|
@@ -581,6 +582,7 @@ export var embeddedDocs = {
|
|
581
582
|
// functions - logical
|
582
583
|
and: andDocs,
|
583
584
|
not: notDocs,
|
585
|
+
nullish: nullishDocs,
|
584
586
|
or: orDocs,
|
585
587
|
xor: xorDocs,
|
586
588
|
// functions - matrix
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var nullishDocs = {
|
2
|
+
name: 'nullish',
|
3
|
+
category: 'Logical',
|
4
|
+
syntax: ['x ?? y', 'nullish(x, y)'],
|
5
|
+
description: 'Nullish coalescing operator. Returns the right-hand operand when the left-hand operand is null or undefined, and otherwise returns the left-hand operand.',
|
6
|
+
examples: ['null ?? 42', 'undefined ?? 42', '0 ?? 42', 'false ?? 42', 'null ?? undefined ?? 42'],
|
7
|
+
seealso: ['and', 'or', 'not']
|
8
|
+
};
|
@@ -221,6 +221,13 @@ export var properties = [{
|
|
221
221
|
associativity: 'right',
|
222
222
|
associativeWith: []
|
223
223
|
}
|
224
|
+
}, {
|
225
|
+
// nullish coalescing
|
226
|
+
'OperatorNode:nullish': {
|
227
|
+
op: '??',
|
228
|
+
associativity: 'left',
|
229
|
+
associativeWith: []
|
230
|
+
}
|
224
231
|
}, {
|
225
232
|
// factorial
|
226
233
|
'OperatorNode:factorial': {
|
@@ -129,6 +129,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
129
129
|
'=': true,
|
130
130
|
':': true,
|
131
131
|
'?': true,
|
132
|
+
'??': true,
|
132
133
|
'==': true,
|
133
134
|
'!=': true,
|
134
135
|
'<': true,
|
@@ -1108,7 +1109,7 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
1108
1109
|
*/
|
1109
1110
|
function parsePow(state) {
|
1110
1111
|
var node, name, fn, params;
|
1111
|
-
node =
|
1112
|
+
node = parseNullishCoalescing(state);
|
1112
1113
|
if (state.token === '^' || state.token === '.^') {
|
1113
1114
|
name = state.token;
|
1114
1115
|
fn = name === '^' ? 'pow' : 'dotPow';
|
@@ -1119,6 +1120,21 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
1119
1120
|
return node;
|
1120
1121
|
}
|
1121
1122
|
|
1123
|
+
/**
|
1124
|
+
* nullish coalescing operator
|
1125
|
+
* @return {Node} node
|
1126
|
+
* @private
|
1127
|
+
*/
|
1128
|
+
function parseNullishCoalescing(state) {
|
1129
|
+
var node = parseLeftHandOperators(state);
|
1130
|
+
while (state.token === '??') {
|
1131
|
+
// eslint-disable-line no-unmodified-loop-condition
|
1132
|
+
getTokenSkipNewline(state);
|
1133
|
+
node = new OperatorNode('??', 'nullish', [node, parseLeftHandOperators(state)]);
|
1134
|
+
}
|
1135
|
+
return node;
|
1136
|
+
}
|
1137
|
+
|
1122
1138
|
/**
|
1123
1139
|
* Left hand operators: factorial x!, ctranspose x'
|
1124
1140
|
* @return {Node} node
|