mathjs 12.3.2 → 12.4.0

Sign up to get free protection for your applications and to get access to all the features.
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