mathjs 11.8.0 → 11.8.2

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 (63) hide show
  1. package/HISTORY.md +25 -1
  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/dependenciesAny/dependenciesDistance.generated.js +2 -2
  6. package/lib/cjs/entry/pureFunctionsAny.generated.js +2 -2
  7. package/lib/cjs/expression/Parser.js +1 -1
  8. package/lib/cjs/expression/function/parser.js +1 -1
  9. package/lib/cjs/expression/transform/filter.transform.js +4 -13
  10. package/lib/cjs/expression/transform/forEach.transform.js +3 -12
  11. package/lib/cjs/expression/transform/map.transform.js +4 -13
  12. package/lib/cjs/function/algebra/derivative.js +2 -2
  13. package/lib/cjs/function/algebra/leafCount.js +1 -1
  14. package/lib/cjs/function/algebra/polynomialRoot.js +1 -1
  15. package/lib/cjs/function/algebra/rationalize.js +4 -4
  16. package/lib/cjs/function/algebra/resolve.js +1 -1
  17. package/lib/cjs/function/algebra/simplify.js +7 -7
  18. package/lib/cjs/function/algebra/simplifyConstant.js +2 -2
  19. package/lib/cjs/function/algebra/simplifyCore.js +2 -2
  20. package/lib/cjs/function/algebra/symbolicEqual.js +8 -8
  21. package/lib/cjs/function/geometry/distance.js +21 -17
  22. package/lib/cjs/function/matrix/filter.js +2 -11
  23. package/lib/cjs/function/matrix/forEach.js +3 -12
  24. package/lib/cjs/function/matrix/map.js +6 -38
  25. package/lib/cjs/function/matrix/sqrtm.js +1 -1
  26. package/lib/cjs/header.js +2 -2
  27. package/lib/cjs/type/bignumber/function/bignumber.js +7 -0
  28. package/lib/cjs/type/fraction/function/fraction.js +8 -1
  29. package/lib/cjs/type/number.js +7 -3
  30. package/lib/cjs/type/unit/function/splitUnit.js +1 -1
  31. package/lib/cjs/utils/applyCallback.js +73 -0
  32. package/lib/cjs/utils/bignumber/formatter.js +4 -3
  33. package/lib/cjs/version.js +1 -1
  34. package/lib/esm/entry/dependenciesAny/dependenciesDistance.generated.js +2 -2
  35. package/lib/esm/entry/pureFunctionsAny.generated.js +2 -2
  36. package/lib/esm/expression/Parser.js +1 -1
  37. package/lib/esm/expression/function/parser.js +1 -1
  38. package/lib/esm/expression/transform/filter.transform.js +4 -13
  39. package/lib/esm/expression/transform/forEach.transform.js +3 -12
  40. package/lib/esm/expression/transform/map.transform.js +4 -13
  41. package/lib/esm/function/algebra/derivative.js +2 -2
  42. package/lib/esm/function/algebra/leafCount.js +1 -1
  43. package/lib/esm/function/algebra/polynomialRoot.js +1 -1
  44. package/lib/esm/function/algebra/rationalize.js +4 -4
  45. package/lib/esm/function/algebra/resolve.js +1 -1
  46. package/lib/esm/function/algebra/simplify.js +7 -7
  47. package/lib/esm/function/algebra/simplifyConstant.js +2 -2
  48. package/lib/esm/function/algebra/simplifyCore.js +2 -2
  49. package/lib/esm/function/algebra/symbolicEqual.js +8 -8
  50. package/lib/esm/function/geometry/distance.js +21 -17
  51. package/lib/esm/function/matrix/filter.js +2 -11
  52. package/lib/esm/function/matrix/forEach.js +3 -12
  53. package/lib/esm/function/matrix/map.js +6 -38
  54. package/lib/esm/function/matrix/sqrtm.js +1 -1
  55. package/lib/esm/type/bignumber/function/bignumber.js +5 -0
  56. package/lib/esm/type/fraction/function/fraction.js +6 -1
  57. package/lib/esm/type/number.js +5 -3
  58. package/lib/esm/type/unit/function/splitUnit.js +1 -1
  59. package/lib/esm/utils/applyCallback.js +67 -0
  60. package/lib/esm/utils/bignumber/formatter.js +4 -3
  61. package/lib/esm/version.js +1 -1
  62. package/package.json +19 -19
  63. package/types/index.d.ts +149 -50
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.distanceDependencies = void 0;
7
7
  var _dependenciesAbsGenerated = require("./dependenciesAbs.generated.js");
8
8
  var _dependenciesAddScalarGenerated = require("./dependenciesAddScalar.generated.js");
9
+ var _dependenciesDeepEqualGenerated = require("./dependenciesDeepEqual.generated.js");
9
10
  var _dependenciesDivideScalarGenerated = require("./dependenciesDivideScalar.generated.js");
10
11
  var _dependenciesMultiplyScalarGenerated = require("./dependenciesMultiplyScalar.generated.js");
11
12
  var _dependenciesSqrtGenerated = require("./dependenciesSqrt.generated.js");
12
13
  var _dependenciesSubtractGenerated = require("./dependenciesSubtract.generated.js");
13
14
  var _dependenciesTypedGenerated = require("./dependenciesTyped.generated.js");
14
- var _dependenciesUnaryMinusGenerated = require("./dependenciesUnaryMinus.generated.js");
15
15
  var _factoriesAny = require("../../factoriesAny.js");
16
16
  /**
17
17
  * THIS FILE IS AUTO-GENERATED
@@ -21,12 +21,12 @@ var _factoriesAny = require("../../factoriesAny.js");
21
21
  var distanceDependencies = {
22
22
  absDependencies: _dependenciesAbsGenerated.absDependencies,
23
23
  addScalarDependencies: _dependenciesAddScalarGenerated.addScalarDependencies,
24
+ deepEqualDependencies: _dependenciesDeepEqualGenerated.deepEqualDependencies,
24
25
  divideScalarDependencies: _dependenciesDivideScalarGenerated.divideScalarDependencies,
25
26
  multiplyScalarDependencies: _dependenciesMultiplyScalarGenerated.multiplyScalarDependencies,
26
27
  sqrtDependencies: _dependenciesSqrtGenerated.sqrtDependencies,
27
28
  subtractDependencies: _dependenciesSubtractGenerated.subtractDependencies,
28
29
  typedDependencies: _dependenciesTypedGenerated.typedDependencies,
29
- unaryMinusDependencies: _dependenciesUnaryMinusGenerated.unaryMinusDependencies,
30
30
  createDistance: _factoriesAny.createDistance
31
31
  };
32
32
  exports.distanceDependencies = distanceDependencies;
@@ -1066,12 +1066,12 @@ exports.diff = diff;
1066
1066
  var distance = /* #__PURE__ */(0, _factoriesAny.createDistance)({
1067
1067
  abs: abs,
1068
1068
  addScalar: addScalar,
1069
+ deepEqual: deepEqual,
1069
1070
  divideScalar: divideScalar,
1070
1071
  multiplyScalar: multiplyScalar,
1071
1072
  sqrt: sqrt,
1072
1073
  subtract: subtract,
1073
- typed: typed,
1074
- unaryMinus: unaryMinus
1074
+ typed: typed
1075
1075
  });
1076
1076
  exports.distance = distance;
1077
1077
  var dotMultiply = /* #__PURE__ */(0, _factoriesAny.createDotMultiply)({
@@ -44,7 +44,7 @@ var createParserClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
44
44
  * parser.evaluate('f(2, 3)') // 8
45
45
  *
46
46
  * // get and set variables and functions
47
- * const x = parser.get('x') // 7
47
+ * const x = parser.get('x') // 3.5
48
48
  * const f = parser.get('f') // function
49
49
  * const g = f(3, 2) // 9
50
50
  * parser.set('h', 500)
@@ -34,7 +34,7 @@ var createParser = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
34
34
  * parser.evaluate('f(2, 3)') // 8
35
35
  *
36
36
  * // get and set variables and functions
37
- * const x = parser.get('x') // 7
37
+ * const x = parser.get('x') // 3.5
38
38
  * const f = parser.get('f') // function
39
39
  * const g = f(3, 2) // 9
40
40
  * parser.set('h', 500)
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createFilterTransform = void 0;
7
- var _is = require("../../utils/is.js");
7
+ var _applyCallback = require("../../utils/applyCallback.js");
8
8
  var _array = require("../../utils/array.js");
9
- var _function = require("../../utils/function.js");
10
- var _compileInlineExpression = require("./utils/compileInlineExpression.js");
11
9
  var _factory = require("../../utils/factory.js");
10
+ var _is = require("../../utils/is.js");
11
+ var _compileInlineExpression = require("./utils/compileInlineExpression.js");
12
12
  var name = 'filter';
13
13
  var dependencies = ['typed'];
14
14
  var createFilterTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -66,17 +66,8 @@ var createFilterTransform = /* #__PURE__ */(0, _factory.factory)(name, dependenc
66
66
  */
67
67
  exports.createFilterTransform = createFilterTransform;
68
68
  function _filter(x, callback) {
69
- // figure out what number of arguments the callback function expects
70
- var args = (0, _function.maxArgumentCount)(callback);
71
69
  return (0, _array.filter)(x, function (value, index, array) {
72
70
  // invoke the callback function with the right number of arguments
73
- if (args === 1) {
74
- return callback(value);
75
- } else if (args === 2) {
76
- return callback(value, [index + 1]);
77
- } else {
78
- // 3 or -1
79
- return callback(value, [index + 1], array);
80
- }
71
+ return (0, _applyCallback.applyCallback)(callback, value, [index + 1], array, 'filter');
81
72
  });
82
73
  }
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createForEachTransform = void 0;
7
- var _is = require("../../utils/is.js");
8
- var _function = require("../../utils/function.js");
7
+ var _applyCallback = require("../../utils/applyCallback.js");
9
8
  var _array = require("../../utils/array.js");
10
9
  var _factory = require("../../utils/factory.js");
10
+ var _is = require("../../utils/is.js");
11
11
  var _compileInlineExpression = require("./utils/compileInlineExpression.js");
12
12
  var name = 'forEach';
13
13
  var dependencies = ['typed'];
@@ -40,8 +40,6 @@ var createForEachTransform = /* #__PURE__ */(0, _factory.factory)(name, dependen
40
40
  // one-based version of forEach
41
41
  var _forEach = typed('forEach', {
42
42
  'Array | Matrix, function': function ArrayMatrixFunction(array, callback) {
43
- // figure out what number of arguments the callback function expects
44
- var args = (0, _function.maxArgumentCount)(callback);
45
43
  var recurse = function recurse(value, index) {
46
44
  if (Array.isArray(value)) {
47
45
  (0, _array.forEach)(value, function (child, i) {
@@ -50,14 +48,7 @@ var createForEachTransform = /* #__PURE__ */(0, _factory.factory)(name, dependen
50
48
  });
51
49
  } else {
52
50
  // invoke the callback function with the right number of arguments
53
- if (args === 1) {
54
- callback(value);
55
- } else if (args === 2) {
56
- callback(value, index);
57
- } else {
58
- // 3 or -1
59
- callback(value, index, array);
60
- }
51
+ return (0, _applyCallback.applyCallback)(callback, value, index, array, 'forEach');
61
52
  }
62
53
  };
63
54
  recurse(array.valueOf(), []); // pass Array
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createMapTransform = void 0;
7
- var _is = require("../../utils/is.js");
8
- var _function = require("../../utils/function.js");
7
+ var _applyCallback = require("../../utils/applyCallback.js");
9
8
  var _array = require("../../utils/array.js");
10
9
  var _factory = require("../../utils/factory.js");
10
+ var _is = require("../../utils/is.js");
11
11
  var _compileInlineExpression = require("./utils/compileInlineExpression.js");
12
12
  var name = 'map';
13
13
  var dependencies = ['typed'];
@@ -52,7 +52,7 @@ var createMapTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies
52
52
  });
53
53
 
54
54
  /**
55
- * Map for a multi dimensional array. One-based indexes
55
+ * Map for a multidimensional array. One-based indexes
56
56
  * @param {Array} array
57
57
  * @param {function} callback
58
58
  * @param {Array} orig
@@ -61,8 +61,6 @@ var createMapTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies
61
61
  */
62
62
  exports.createMapTransform = createMapTransform;
63
63
  function _map(array, callback, orig) {
64
- // figure out what number of arguments the callback function expects
65
- var argsCount = (0, _function.maxArgumentCount)(callback);
66
64
  function recurse(value, index) {
67
65
  if (Array.isArray(value)) {
68
66
  return (0, _array.map)(value, function (child, i) {
@@ -71,14 +69,7 @@ function _map(array, callback, orig) {
71
69
  });
72
70
  } else {
73
71
  // invoke the (typed) callback function with the right number of arguments
74
- if (argsCount === 1) {
75
- return callback(value);
76
- } else if (argsCount === 2) {
77
- return callback(value, index);
78
- } else {
79
- // 3 or -1
80
- return callback(value, index, orig);
81
- }
72
+ return (0, _applyCallback.applyCallback)(callback, value, index, orig, 'map');
82
73
  }
83
74
  }
84
75
  return recurse(array, []);
@@ -33,8 +33,8 @@ var createDerivative = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
33
33
  *
34
34
  * Syntax:
35
35
  *
36
- * derivative(expr, variable)
37
- * derivative(expr, variable, options)
36
+ * math.derivative(expr, variable)
37
+ * math.derivative(expr, variable, options)
38
38
  *
39
39
  * Examples:
40
40
  *
@@ -33,7 +33,7 @@ var createLeafCount = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
33
33
  *
34
34
  * Syntax:
35
35
  *
36
- * leafCount(expr)
36
+ * math.leafCount(expr)
37
37
  *
38
38
  * Examples:
39
39
  *
@@ -31,7 +31,7 @@ var createPolynomialRoot = /* #__PURE__ */(0, _factory.factory)(name, dependenci
31
31
  *
32
32
  * Syntax:
33
33
  *
34
- * polynomialRoot(constant, linearCoeff, quadraticCoeff, cubicCoeff)
34
+ * math.polynomialRoot(constant, linearCoeff, quadraticCoeff, cubicCoeff)
35
35
  *
36
36
  * Examples:
37
37
  * // linear
@@ -43,10 +43,10 @@ var createRationalize = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
43
43
  *
44
44
  * Syntax:
45
45
  *
46
- * rationalize(expr)
47
- * rationalize(expr, detailed)
48
- * rationalize(expr, scope)
49
- * rationalize(expr, scope, detailed)
46
+ * math.rationalize(expr)
47
+ * math.rationalize(expr, detailed)
48
+ * math.rationalize(expr, scope)
49
+ * math.rationalize(expr, scope, detailed)
50
50
  *
51
51
  * Examples:
52
52
  *
@@ -21,7 +21,7 @@ var createResolve = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
21
21
  *
22
22
  * Syntax:
23
23
  *
24
- * resolve(expr, scope)
24
+ * math.resolve(expr, scope)
25
25
  *
26
26
  * Examples:
27
27
  *
@@ -143,13 +143,13 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
143
143
  *
144
144
  * Syntax:
145
145
  *
146
- * simplify(expr)
147
- * simplify(expr, rules)
148
- * simplify(expr, rules)
149
- * simplify(expr, rules, scope)
150
- * simplify(expr, rules, scope, options)
151
- * simplify(expr, scope)
152
- * simplify(expr, scope, options)
146
+ * math.simplify(expr)
147
+ * math.simplify(expr, rules)
148
+ * math.simplify(expr, rules)
149
+ * math.simplify(expr, rules, scope)
150
+ * math.simplify(expr, rules, scope, options)
151
+ * math.simplify(expr, scope)
152
+ * math.simplify(expr, scope, options)
153
153
  *
154
154
  * Examples:
155
155
  *
@@ -48,8 +48,8 @@ var createSimplifyConstant = /* #__PURE__ */(0, _factory.factory)(name, dependen
48
48
  *
49
49
  * Syntax:
50
50
  *
51
- * simplifyConstant(expr)
52
- * simplifyConstant(expr, options)
51
+ * math.simplifyConstant(expr)
52
+ * math.simplifyConstant(expr, options)
53
53
  *
54
54
  * Examples:
55
55
  *
@@ -70,8 +70,8 @@ var createSimplifyCore = /* #__PURE__ */(0, _factory.factory)(name, dependencies
70
70
  *
71
71
  * Syntax:
72
72
  *
73
- * simplifyCore(expr)
74
- * simplifyCore(expr, options)
73
+ * math.simplifyCore(expr)
74
+ * math.simplifyCore(expr, options)
75
75
  *
76
76
  * Examples:
77
77
  *
@@ -29,20 +29,20 @@ var createSymbolicEqual = /* #__PURE__ */(0, _factory.factory)(name, dependencie
29
29
  *
30
30
  * Syntax:
31
31
  *
32
- * symbolicEqual(expr1, expr2)
33
- * symbolicEqual(expr1, expr2, options)
32
+ * math.symbolicEqual(expr1, expr2)
33
+ * math.symbolicEqual(expr1, expr2, options)
34
34
  *
35
35
  * Examples:
36
36
  *
37
- * symbolicEqual('x*y', 'y*x') // Returns true
38
- * symbolicEqual('x*y', 'y*x', {context: {multiply: {commutative: false}}}) // Returns false
39
- * symbolicEqual('x/y', '(y*x^(-1))^(-1)') // Returns true
40
- * symbolicEqual('abs(x)','x') // Returns false
41
- * symbolicEqual('abs(x)','x', simplify.positiveContext) // Returns true
37
+ * math.symbolicEqual('x*y', 'y*x') // Returns true
38
+ * math.symbolicEqual('x*y', 'y*x', {context: {multiply: {commutative: false}}}) // Returns false
39
+ * math.symbolicEqual('x/y', '(y*x^(-1))^(-1)') // Returns true
40
+ * math.symbolicEqual('abs(x)','x') // Returns false
41
+ * math.symbolicEqual('abs(x)','x', simplify.positiveContext) // Returns true
42
42
  *
43
43
  * See also:
44
44
  *
45
- * simplify, evaluate
45
+ * simplify, evaluate
46
46
  *
47
47
  * @param {Node|string} expr1 The first expression to compare
48
48
  * @param {Node|string} expr2 The second expression to compare
@@ -7,14 +7,14 @@ exports.createDistance = void 0;
7
7
  var _is = require("../../utils/is.js");
8
8
  var _factory = require("../../utils/factory.js");
9
9
  var name = 'distance';
10
- var dependencies = ['typed', 'addScalar', 'subtract', 'divideScalar', 'multiplyScalar', 'unaryMinus', 'sqrt', 'abs'];
10
+ var dependencies = ['typed', 'addScalar', 'subtract', 'divideScalar', 'multiplyScalar', 'deepEqual', 'sqrt', 'abs'];
11
11
  var createDistance = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
12
12
  var typed = _ref.typed,
13
13
  addScalar = _ref.addScalar,
14
14
  subtract = _ref.subtract,
15
15
  multiplyScalar = _ref.multiplyScalar,
16
16
  divideScalar = _ref.divideScalar,
17
- unaryMinus = _ref.unaryMinus,
17
+ deepEqual = _ref.deepEqual,
18
18
  sqrt = _ref.sqrt,
19
19
  abs = _ref.abs;
20
20
  /**
@@ -35,10 +35,10 @@ var createDistance = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
35
35
  * math.distance([x1,y1,z1,a1], [x2,y2,z2,a2])
36
36
  * math.distance([[x1,y1], [x2,y2], [x3,y3]])
37
37
  * math.distance([[x1,y1,z1], [x2,y2,z2], [x3,y3,z3]])
38
- * math.distance([x1,y1], [x2,y2,z2])
39
- * math.distance([x1,y1], [x2,y2], [x3,y3])
38
+ * math.distance([pointX,pointY], [a,b,c])
39
+ * math.distance([pointX,pointY], [lineOnePtX,lineOnePtY], [lineTwoPtX,lineTwoPtY])
40
40
  * math.distance({pointX, pointY}, {lineOnePtX, lineOnePtY}, {lineTwoPtX, lineTwoPtY})
41
- * math.distance([x1,y1,z1], [x0, y0, z0, a, b, c])
41
+ * math.distance([pointX,pointY,pointZ], [x0, y0, z0, a, b, c])
42
42
  * math.distance({pointX, pointY, pointZ}, {x0, y0, z0, a, b, c})
43
43
  *
44
44
  * Examples:
@@ -54,11 +54,11 @@ var createDistance = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
54
54
  * math.distance([[1, 2], [1, 2], [1, 3]]) // Returns [0, 1, 1]
55
55
  * math.distance([[1,2,4], [1,2,6], [8,1,3]]) // Returns [2, 7.14142842854285, 7.681145747868608]
56
56
  * math.distance([10, 10], [8, 1, 3]) // Returns 11.535230316796387
57
- * math.distance([10, 10], [2, 3], [-8, 0]) // Returns 8.759953130362847
57
+ * math.distance([0, 0], [3, 0], [0, 4]) // Returns 2.4
58
58
  * math.distance(
59
- * {pointX: 1, pointY: 4},
60
- * {lineOnePtX: 6, lineOnePtY: 3},
61
- * {lineTwoPtX: 2, lineTwoPtY: 8}) // Returns 2.720549372624744
59
+ * {pointX: 0, pointY: 0},
60
+ * {lineOnePtX: 3, lineOnePtY: 0},
61
+ * {lineTwoPtX: 0, lineTwoPtY: 4}) // Returns 2.4
62
62
  * math.distance([2, 3, 1], [1, 1, 2, 5, 0, 1]) // Returns 2.3204774044612857
63
63
  * math.distance(
64
64
  * {pointX: 2, pointY: 3, pointZ: 1},
@@ -81,10 +81,12 @@ var createDistance = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
81
81
  if (!_2d(z)) {
82
82
  throw new TypeError('Array with 2 numbers or BigNumbers expected for third argument');
83
83
  }
84
- var m = divideScalar(subtract(z[1], z[0]), subtract(y[1], y[0]));
85
- var xCoeff = multiplyScalar(multiplyScalar(m, m), y[0]);
86
- var yCoeff = unaryMinus(multiplyScalar(m, y[0]));
87
- var constant = x[1];
84
+ if (deepEqual(y, z)) {
85
+ throw new TypeError('LinePoint1 should not be same with LinePoint2');
86
+ }
87
+ var xCoeff = subtract(z[1], y[1]);
88
+ var yCoeff = subtract(y[0], z[0]);
89
+ var constant = subtract(multiplyScalar(z[0], y[1]), multiplyScalar(y[0], z[1]));
88
90
  return _distancePointLine2D(x[0], x[1], xCoeff, yCoeff, constant);
89
91
  } else {
90
92
  throw new TypeError('Invalid Arguments: Try again');
@@ -101,11 +103,13 @@ var createDistance = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
101
103
  if (!_2d(z)) {
102
104
  throw new TypeError('Values of lineTwoPtX and lineTwoPtY should be numbers or BigNumbers');
103
105
  }
106
+ if (deepEqual(_objectToArray(y), _objectToArray(z))) {
107
+ throw new TypeError('LinePoint1 should not be same with LinePoint2');
108
+ }
104
109
  if ('pointX' in x && 'pointY' in x && 'lineOnePtX' in y && 'lineOnePtY' in y && 'lineTwoPtX' in z && 'lineTwoPtY' in z) {
105
- var m = divideScalar(subtract(z.lineTwoPtY, z.lineTwoPtX), subtract(y.lineOnePtY, y.lineOnePtX));
106
- var xCoeff = multiplyScalar(multiplyScalar(m, m), y.lineOnePtX);
107
- var yCoeff = unaryMinus(multiplyScalar(m, y.lineOnePtX));
108
- var constant = x.pointX;
110
+ var xCoeff = subtract(z.lineTwoPtY, y.lineOnePtY);
111
+ var yCoeff = subtract(y.lineOnePtX, z.lineTwoPtX);
112
+ var constant = subtract(multiplyScalar(z.lineTwoPtX, y.lineOnePtY), multiplyScalar(y.lineOnePtX, z.lineTwoPtY));
109
113
  return _distancePointLine2D(x.pointX, x.pointY, xCoeff, yCoeff, constant);
110
114
  } else {
111
115
  throw new TypeError('Key names do not match');
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createFilter = void 0;
7
+ var _applyCallback = require("../../utils/applyCallback.js");
7
8
  var _array = require("../../utils/array.js");
8
- var _function = require("../../utils/function.js");
9
9
  var _factory = require("../../utils/factory.js");
10
10
  var name = 'filter';
11
11
  var dependencies = ['typed'];
@@ -61,17 +61,8 @@ var createFilter = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
61
61
  */
62
62
  exports.createFilter = createFilter;
63
63
  function _filterCallback(x, callback) {
64
- // figure out what number of arguments the callback function expects
65
- var args = (0, _function.maxArgumentCount)(callback);
66
64
  return (0, _array.filter)(x, function (value, index, array) {
67
65
  // invoke the callback function with the right number of arguments
68
- if (args === 1) {
69
- return callback(value);
70
- } else if (args === 2) {
71
- return callback(value, [index]);
72
- } else {
73
- // 3 or -1
74
- return callback(value, [index], array);
75
- }
66
+ return (0, _applyCallback.applyCallback)(callback, value, [index], array, 'filter');
76
67
  });
77
68
  }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createForEach = void 0;
7
- var _function = require("../../utils/function.js");
7
+ var _applyCallback = require("../../utils/applyCallback.js");
8
8
  var _array = require("../../utils/array.js");
9
9
  var _factory = require("../../utils/factory.js");
10
10
  var name = 'forEach';
@@ -43,15 +43,13 @@ var createForEach = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
43
43
  });
44
44
 
45
45
  /**
46
- * forEach for a multi dimensional array
46
+ * forEach for a multidimensional array
47
47
  * @param {Array} array
48
48
  * @param {Function} callback
49
49
  * @private
50
50
  */
51
51
  exports.createForEach = createForEach;
52
52
  function _forEach(array, callback) {
53
- // figure out what number of arguments the callback function expects
54
- var args = (0, _function.maxArgumentCount)(callback);
55
53
  var recurse = function recurse(value, index) {
56
54
  if (Array.isArray(value)) {
57
55
  (0, _array.forEach)(value, function (child, i) {
@@ -60,14 +58,7 @@ function _forEach(array, callback) {
60
58
  });
61
59
  } else {
62
60
  // invoke the callback function with the right number of arguments
63
- if (args === 1) {
64
- callback(value);
65
- } else if (args === 2) {
66
- callback(value, index);
67
- } else {
68
- // 3 or -1
69
- callback(value, index, array);
70
- }
61
+ return (0, _applyCallback.applyCallback)(callback, value, index, array, 'forEach');
71
62
  }
72
63
  };
73
64
  recurse(array, []);
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createMap = void 0;
7
- var _function = require("../../utils/function.js");
7
+ var _applyCallback = require("../../utils/applyCallback.js");
8
8
  var _factory = require("../../utils/factory.js");
9
9
  var name = 'map';
10
10
  var dependencies = ['typed'];
@@ -31,14 +31,9 @@ var createMap = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
31
31
  * return value * value
32
32
  * }) // returns [1, 4, 9]
33
33
  *
34
- * // The calling convention for the callback can cause subtleties:
35
- * math.map([1, 2, 3], math.format)
36
- * // throws TypeError: map attempted to call 'format(1,[0])' but argument 2 of type Array does not match expected type number or function or Object or string or boolean
37
- * // [This happens because `format` _can_ take a second argument,
38
- * // but its semantics don't match that of the 2nd argument `map` provides]
39
- *
40
- * // To avoid this error, use a function that takes exactly the
41
- * // desired arguments:
34
+ * // The callback is normally called with three arguments:
35
+ * // callback(value, index, Array)
36
+ * // If you want to call with only one argument, use:
42
37
  * math.map([1, 2, 3], x => math.format(x)) // returns ['1', '2', '3']
43
38
  *
44
39
  * See also:
@@ -68,8 +63,6 @@ var createMap = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
68
63
  */
69
64
  exports.createMap = createMap;
70
65
  function _map(array, callback) {
71
- // figure out what number of arguments the callback function expects
72
- var args = (0, _function.maxArgumentCount)(callback);
73
66
  var recurse = function recurse(value, index) {
74
67
  if (Array.isArray(value)) {
75
68
  return value.map(function (child, i) {
@@ -77,33 +70,8 @@ function _map(array, callback) {
77
70
  return recurse(child, index.concat(i));
78
71
  });
79
72
  } else {
80
- try {
81
- // invoke the callback function with the right number of arguments
82
- if (args === 1) {
83
- return callback(value);
84
- } else if (args === 2) {
85
- return callback(value, index);
86
- } else {
87
- // 3 or -1
88
- return callback(value, index, array);
89
- }
90
- } catch (err) {
91
- // But maybe the arguments still weren't right
92
- if (err instanceof TypeError && 'data' in err && err.data.category === 'wrongType') {
93
- var newmsg = "map attempted to call '".concat(err.data.fn, "(").concat(value);
94
- var indexString = JSON.stringify(index);
95
- if (args === 2) {
96
- newmsg += ',' + indexString;
97
- } else if (args !== 1) {
98
- newmsg += ",".concat(indexString, ",").concat(array);
99
- }
100
- newmsg += ")' but argument ".concat(err.data.index + 1, " of type ");
101
- newmsg += "".concat(err.data.actual, " does not match expected type ");
102
- newmsg += err.data.expected.join(' or ');
103
- throw new TypeError(newmsg);
104
- }
105
- throw err;
106
- }
73
+ // invoke the callback function with the right number of arguments
74
+ return (0, _applyCallback.applyCallback)(callback, value, index, array, 'map');
107
75
  }
108
76
  };
109
77
  return recurse(array, []);
@@ -59,7 +59,7 @@ var createSqrtm = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
59
59
  *
60
60
  * Syntax:
61
61
  *
62
- * X = math.sqrtm(A)
62
+ * math.sqrtm(A)
63
63
  *
64
64
  * Examples:
65
65
  *
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 11.8.0
10
- * @date 2023-04-03
9
+ * @version 11.8.2
10
+ * @date 2023-06-20
11
11
  *
12
12
  * @license
13
13
  * Copyright (C) 2013-2023 Jos de Jong <wjosdejong@gmail.com>
@@ -67,6 +67,13 @@ var createBignumber = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
67
67
  // we assume a BigNumber is immutable
68
68
  return x;
69
69
  },
70
+ Unit: typed.referToSelf(function (self) {
71
+ return function (x) {
72
+ var clone = x.clone();
73
+ clone.value = self(x.value);
74
+ return clone;
75
+ };
76
+ }),
70
77
  Fraction: function Fraction(x) {
71
78
  return new BigNumber(x.n).div(x.d).times(x.s);
72
79
  },
@@ -43,7 +43,7 @@ var createFraction = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
43
43
  *
44
44
  * bignumber, number, string, unit
45
45
  *
46
- * @param {number | string | Fraction | BigNumber | Array | Matrix} [args]
46
+ * @param {number | string | Fraction | BigNumber | Unit | Array | Matrix} [args]
47
47
  * Arguments specifying the value, or numerator and denominator of
48
48
  * the fraction
49
49
  * @return {Fraction | Array | Matrix} Returns a fraction
@@ -71,6 +71,13 @@ var createFraction = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
71
71
  return x; // fractions are immutable
72
72
  },
73
73
 
74
+ Unit: typed.referToSelf(function (self) {
75
+ return function (x) {
76
+ var clone = x.clone();
77
+ clone.value = self(x.value);
78
+ return clone;
79
+ };
80
+ }),
74
81
  Object: function Object(x) {
75
82
  return new Fraction(x);
76
83
  },
@@ -125,9 +125,13 @@ var createNumber = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
125
125
  Fraction: function Fraction(x) {
126
126
  return x.valueOf();
127
127
  },
128
- Unit: function Unit(x) {
129
- throw new Error('Second argument with valueless unit expected');
130
- },
128
+ Unit: typed.referToSelf(function (self) {
129
+ return function (x) {
130
+ var clone = x.clone();
131
+ clone.value = self(x.value);
132
+ return clone;
133
+ };
134
+ }),
131
135
  "null": function _null(x) {
132
136
  return 0;
133
137
  },
@@ -14,7 +14,7 @@ var createSplitUnit = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
14
14
  *
15
15
  * Syntax:
16
16
  *
17
- * splitUnit(unit: Unit, parts: Array.<Unit>)
17
+ * math.splitUnit(unit: Unit, parts: Array.<Unit>)
18
18
  *
19
19
  * Example:
20
20
  *