mathjs 12.3.2 → 12.4.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.
Files changed (39) hide show
  1. package/HISTORY.md +15 -0
  2. package/lib/browser/math.js +1 -1
  3. package/lib/browser/math.js.LICENSE.txt +2 -2
  4. package/lib/browser/math.js.map +1 -1
  5. package/lib/cjs/entry/pureFunctionsAny.generated.js +1 -0
  6. package/lib/cjs/expression/parse.js +8 -4
  7. package/lib/cjs/function/arithmetic/multiply.js +30 -29
  8. package/lib/cjs/function/arithmetic/round.js +38 -7
  9. package/lib/cjs/function/matrix/dot.js +3 -3
  10. package/lib/cjs/header.js +2 -2
  11. package/lib/cjs/type/matrix/utils/matAlgo01xDSid.js +4 -4
  12. package/lib/cjs/type/matrix/utils/matAlgo02xDS0.js +4 -4
  13. package/lib/cjs/type/matrix/utils/matAlgo03xDSf.js +4 -4
  14. package/lib/cjs/type/matrix/utils/matAlgo04xSidSid.js +4 -4
  15. package/lib/cjs/type/matrix/utils/matAlgo05xSfSf.js +4 -4
  16. package/lib/cjs/type/matrix/utils/matAlgo06xS0S0.js +4 -4
  17. package/lib/cjs/type/matrix/utils/matAlgo07xSSf.js +4 -4
  18. package/lib/cjs/type/matrix/utils/matAlgo08xS0Sid.js +4 -4
  19. package/lib/cjs/type/matrix/utils/matAlgo09xS0Sf.js +4 -4
  20. package/lib/cjs/utils/map.js +2 -0
  21. package/lib/cjs/version.js +1 -1
  22. package/lib/esm/entry/pureFunctionsAny.generated.js +1 -0
  23. package/lib/esm/expression/parse.js +8 -4
  24. package/lib/esm/function/arithmetic/multiply.js +30 -29
  25. package/lib/esm/function/arithmetic/round.js +38 -7
  26. package/lib/esm/function/matrix/dot.js +3 -3
  27. package/lib/esm/type/matrix/utils/matAlgo01xDSid.js +4 -4
  28. package/lib/esm/type/matrix/utils/matAlgo02xDS0.js +4 -4
  29. package/lib/esm/type/matrix/utils/matAlgo03xDSf.js +4 -4
  30. package/lib/esm/type/matrix/utils/matAlgo04xSidSid.js +4 -4
  31. package/lib/esm/type/matrix/utils/matAlgo05xSfSf.js +4 -4
  32. package/lib/esm/type/matrix/utils/matAlgo06xS0S0.js +4 -4
  33. package/lib/esm/type/matrix/utils/matAlgo07xSSf.js +4 -4
  34. package/lib/esm/type/matrix/utils/matAlgo08xS0Sid.js +4 -4
  35. package/lib/esm/type/matrix/utils/matAlgo09xS0Sf.js +4 -4
  36. package/lib/esm/utils/map.js +2 -0
  37. package/lib/esm/version.js +1 -1
  38. package/package.json +7 -7
  39. package/types/index.d.ts +5 -5
@@ -24,10 +24,10 @@ export var createMatAlgo07xSSf = /* #__PURE__ */factory(name, dependencies, _ref
24
24
  return function matAlgo07xSSf(a, b, callback) {
25
25
  // sparse matrix arrays
26
26
  var asize = a._size;
27
- var adt = a._datatype;
27
+ var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType();
28
28
  // sparse matrix arrays
29
29
  var bsize = b._size;
30
- var bdt = b._datatype;
30
+ var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType();
31
31
 
32
32
  // validate dimensions
33
33
  if (asize.length !== bsize.length) {
@@ -51,7 +51,7 @@ export var createMatAlgo07xSSf = /* #__PURE__ */factory(name, dependencies, _ref
51
51
  var cf = callback;
52
52
 
53
53
  // process data types
54
- if (typeof adt === 'string' && adt === bdt) {
54
+ if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') {
55
55
  // datatype
56
56
  dt = adt;
57
57
  // convert 0 to the same datatype
@@ -99,7 +99,7 @@ export var createMatAlgo07xSSf = /* #__PURE__ */factory(name, dependencies, _ref
99
99
  return new DenseMatrix({
100
100
  data: cdata,
101
101
  size: [rows, columns],
102
- datatype: dt
102
+ datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined
103
103
  });
104
104
  };
105
105
  function _scatter(m, j, w, x, mark) {
@@ -31,13 +31,13 @@ export var createMatAlgo08xS0Sid = /* #__PURE__ */factory(name, dependencies, _r
31
31
  var aindex = a._index;
32
32
  var aptr = a._ptr;
33
33
  var asize = a._size;
34
- var adt = a._datatype;
34
+ var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType();
35
35
  // sparse matrix arrays
36
36
  var bvalues = b._values;
37
37
  var bindex = b._index;
38
38
  var bptr = b._ptr;
39
39
  var bsize = b._size;
40
- var bdt = b._datatype;
40
+ var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType();
41
41
 
42
42
  // validate dimensions
43
43
  if (asize.length !== bsize.length) {
@@ -68,7 +68,7 @@ export var createMatAlgo08xS0Sid = /* #__PURE__ */factory(name, dependencies, _r
68
68
  var cf = callback;
69
69
 
70
70
  // process data types
71
- if (typeof adt === 'string' && adt === bdt) {
71
+ if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') {
72
72
  // datatype
73
73
  dt = adt;
74
74
  // find signature that matches (dt, dt)
@@ -148,7 +148,7 @@ export var createMatAlgo08xS0Sid = /* #__PURE__ */factory(name, dependencies, _r
148
148
  index: cindex,
149
149
  ptr: cptr,
150
150
  size: [rows, columns],
151
- datatype: dt
151
+ datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined
152
152
  });
153
153
  };
154
154
  });
@@ -31,13 +31,13 @@ export var createMatAlgo09xS0Sf = /* #__PURE__ */factory(name, dependencies, _re
31
31
  var aindex = a._index;
32
32
  var aptr = a._ptr;
33
33
  var asize = a._size;
34
- var adt = a._datatype;
34
+ var adt = a._datatype || a._data === undefined ? a._datatype : a.getDataType();
35
35
  // sparse matrix arrays
36
36
  var bvalues = b._values;
37
37
  var bindex = b._index;
38
38
  var bptr = b._ptr;
39
39
  var bsize = b._size;
40
- var bdt = b._datatype;
40
+ var bdt = b._datatype || b._data === undefined ? b._datatype : b.getDataType();
41
41
 
42
42
  // validate dimensions
43
43
  if (asize.length !== bsize.length) {
@@ -63,7 +63,7 @@ export var createMatAlgo09xS0Sf = /* #__PURE__ */factory(name, dependencies, _re
63
63
  var cf = callback;
64
64
 
65
65
  // process data types
66
- if (typeof adt === 'string' && adt === bdt) {
66
+ if (typeof adt === 'string' && adt === bdt && adt !== 'mixed') {
67
67
  // datatype
68
68
  dt = adt;
69
69
  // find signature that matches (dt, dt)
@@ -136,7 +136,7 @@ export var createMatAlgo09xS0Sf = /* #__PURE__ */factory(name, dependencies, _re
136
136
  index: cindex,
137
137
  ptr: cptr,
138
138
  size: [rows, columns],
139
- datatype: dt
139
+ datatype: adt === a._datatype && bdt === b._datatype ? dt : undefined
140
140
  });
141
141
  };
142
142
  });
@@ -12,6 +12,7 @@ import { isObject } from './is.js';
12
12
  export class ObjectWrappingMap {
13
13
  constructor(object) {
14
14
  this.wrappedObject = object;
15
+ this[Symbol.iterator] = this.entries;
15
16
  }
16
17
  keys() {
17
18
  return Object.keys(this.wrappedObject).values();
@@ -71,6 +72,7 @@ export class PartitionedMap {
71
72
  this.a = a;
72
73
  this.b = b;
73
74
  this.bKeys = bKeys;
75
+ this[Symbol.iterator] = this.entries;
74
76
  }
75
77
  get(key) {
76
78
  return this.bKeys.has(key) ? this.b.get(key) : this.a.get(key);
@@ -1,3 +1,3 @@
1
- export var version = '12.3.2';
1
+ export var version = '12.4.0';
2
2
  // Note: This file is automatically generated when building math.js.
3
3
  // Changes made in this file will be overwritten.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mathjs",
3
- "version": "12.3.2",
3
+ "version": "12.4.0",
4
4
  "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
5
  "author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
6
6
  "homepage": "https://mathjs.org",
@@ -43,21 +43,21 @@
43
43
  "@babel/register": "7.23.7",
44
44
  "@types/assert": "1.5.10",
45
45
  "@types/mocha": "10.0.6",
46
- "@typescript-eslint/eslint-plugin": "6.21.0",
47
- "@typescript-eslint/parser": "6.21.0",
46
+ "@typescript-eslint/eslint-plugin": "7.0.2",
47
+ "@typescript-eslint/parser": "7.0.2",
48
48
  "assert": "2.1.0",
49
49
  "babel-loader": "9.1.3",
50
50
  "benchmark": "2.1.4",
51
51
  "c8": "9.1.0",
52
52
  "codecov": "3.8.3",
53
- "core-js": "3.35.1",
53
+ "core-js": "3.36.0",
54
54
  "del": "6.1.1",
55
55
  "dtslint": "4.2.1",
56
56
  "eslint": "8.56.0",
57
57
  "eslint-config-prettier": "9.1.0",
58
58
  "eslint-config-standard": "17.1.0",
59
59
  "eslint-plugin-import": "2.29.1",
60
- "eslint-plugin-mocha": "10.2.0",
60
+ "eslint-plugin-mocha": "10.3.0",
61
61
  "eslint-plugin-n": "16.6.2",
62
62
  "eslint-plugin-prettier": "5.1.3",
63
63
  "eslint-plugin-promise": "6.1.1",
@@ -76,7 +76,7 @@
76
76
  "karma-mocha-reporter": "2.2.5",
77
77
  "karma-webpack": "5.0.1",
78
78
  "mkdirp": "3.0.1",
79
- "mocha": "10.2.0",
79
+ "mocha": "10.3.0",
80
80
  "mocha-junit-reporter": "2.2.1",
81
81
  "ndarray": "1.0.19",
82
82
  "ndarray-determinant": "1.0.0",
@@ -90,7 +90,7 @@
90
90
  "sylvester": "0.0.21",
91
91
  "ts-node": "10.9.2",
92
92
  "typescript": "5.3.3",
93
- "webpack": "5.90.1",
93
+ "webpack": "5.90.3",
94
94
  "zeros": "1.0.0"
95
95
  },
96
96
  "type": "module",
package/types/index.d.ts CHANGED
@@ -2760,22 +2760,22 @@ export interface MathJsInstance extends MathJsFactory {
2760
2760
  * @param args Multiple scalar values
2761
2761
  * @returns The mode of all values
2762
2762
  */
2763
- mode<T extends MathScalarType>(...args: T[]): T
2763
+ mode<T extends MathScalarType>(...args: T[]): T[]
2764
2764
  /**
2765
2765
  * @param args Multiple scalar values
2766
2766
  * @returns The mode of all values
2767
2767
  */
2768
- mode(...args: MathScalarType[]): MathScalarType
2768
+ mode(...args: MathScalarType[]): MathScalarType[]
2769
2769
  /**
2770
2770
  * @param A A single matrix
2771
- * @returns The median value
2771
+ * @returns The mode value
2772
2772
  */
2773
- mode<T extends MathScalarType>(A: T[] | T[][]): T
2773
+ mode<T extends MathScalarType>(A: T[] | T[][]): T[]
2774
2774
  /**
2775
2775
  * @param A A single matrix
2776
2776
  * @returns The mode of all values
2777
2777
  */
2778
- mode(A: MathCollection): MathScalarType
2778
+ mode(A: MathCollection): MathScalarType[]
2779
2779
 
2780
2780
  /**
2781
2781
  * Compute the product of a matrix or a list with values. In case of a