mathjs 11.10.1 → 11.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. package/HISTORY.md +10 -2
  2. package/lib/browser/math.js +1 -1
  3. package/lib/browser/math.js.LICENSE.txt +4 -4
  4. package/lib/browser/math.js.map +1 -1
  5. package/lib/cjs/entry/dependenciesAny/dependenciesCorr.generated.js +36 -0
  6. package/lib/cjs/entry/dependenciesAny.generated.js +7 -0
  7. package/lib/cjs/entry/dependenciesNumber/dependenciesCorr.generated.js +36 -0
  8. package/lib/cjs/entry/dependenciesNumber.generated.js +7 -0
  9. package/lib/cjs/entry/impureFunctionsAny.generated.js +25 -24
  10. package/lib/cjs/entry/impureFunctionsNumber.generated.js +4 -3
  11. package/lib/cjs/entry/pureFunctionsAny.generated.js +46 -33
  12. package/lib/cjs/entry/pureFunctionsNumber.generated.js +26 -13
  13. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -0
  14. package/lib/cjs/expression/embeddedDocs/function/statistics/corr.js +15 -0
  15. package/lib/cjs/factoriesAny.js +7 -0
  16. package/lib/cjs/factoriesNumber.js +10 -4
  17. package/lib/cjs/function/statistics/corr.js +85 -0
  18. package/lib/cjs/header.js +2 -2
  19. package/lib/cjs/version.js +1 -1
  20. package/lib/esm/entry/dependenciesAny/dependenciesCorr.generated.js +28 -0
  21. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  22. package/lib/esm/entry/dependenciesNumber/dependenciesCorr.generated.js +28 -0
  23. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  24. package/lib/esm/entry/impureFunctionsAny.generated.js +26 -25
  25. package/lib/esm/entry/impureFunctionsNumber.generated.js +5 -4
  26. package/lib/esm/entry/pureFunctionsAny.generated.js +35 -23
  27. package/lib/esm/entry/pureFunctionsNumber.generated.js +21 -9
  28. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  29. package/lib/esm/expression/embeddedDocs/function/statistics/corr.js +8 -0
  30. package/lib/esm/factoriesAny.js +1 -0
  31. package/lib/esm/factoriesNumber.js +1 -0
  32. package/lib/esm/function/statistics/corr.js +74 -0
  33. package/lib/esm/version.js +1 -1
  34. package/package.json +2 -2
  35. package/types/index.d.ts +8 -0
@@ -0,0 +1,74 @@
1
+ import { factory } from '../../utils/factory.js';
2
+ var name = 'corr';
3
+ var dependencies = ['typed', 'matrix', 'mean', 'sqrt', 'sum', 'add', 'subtract', 'multiply', 'pow', 'divide'];
4
+ export var createCorr = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ var {
6
+ typed,
7
+ matrix,
8
+ sqrt,
9
+ sum,
10
+ add,
11
+ subtract,
12
+ multiply,
13
+ pow,
14
+ divide
15
+ } = _ref;
16
+ /**
17
+ * Compute the correlation coefficient of a two list with values, For matrices, the matrix correlation coefficient is calculated.
18
+ *
19
+ * Syntax:
20
+ *
21
+ * math.corr(A, B)
22
+ *
23
+ * Examples:
24
+ *
25
+ * math.corr([1, 2, 3, 4, 5], [4, 5, 6, 7, 8]) // returns 1
26
+ * math.corr([1, 2.2, 3, 4.8, 5], [4, 5.3, 6.6, 7, 8]) // returns 0.9569941688503644
27
+ * math.corr(math.matrix([[1, 2.2, 3, 4.8, 5], [1, 2, 3, 4, 5]]), math.matrix([[4, 5.3, 6.6, 7, 8], [1, 2, 3, 4, 5]])) // returns DenseMatrix [0.9569941688503644, 1]
28
+ *
29
+ * See also:
30
+ *
31
+ * median, mean, min, max, sum, prod, std, variance
32
+ *
33
+ * @param {Array | Matrix} A The first array or matrix to compute correlation coefficient
34
+ * @param {Array | Matrix} B The second array or matrix to compute correlation coefficient
35
+ * @return {*} The correlation coefficient
36
+ */
37
+ return typed(name, {
38
+ 'Array, Array': function ArrayArray(A, B) {
39
+ return _corr(A, B);
40
+ },
41
+ 'Matrix, Matrix': function MatrixMatrix(xMatrix, yMatrix) {
42
+ return matrix(_corr(xMatrix.toArray(), yMatrix.toArray()));
43
+ }
44
+ });
45
+ /**
46
+ * Calculate the correlation coefficient between two arrays or matrices.
47
+ * @param {Array | Matrix} A
48
+ * @param {Array | Matrix} B
49
+ * @return {*} correlation coefficient
50
+ * @private
51
+ */
52
+ function _corr(A, B) {
53
+ if (Array.isArray(A[0]) && Array.isArray(B[0])) {
54
+ var correlations = [];
55
+ for (var i = 0; i < A.length; i++) {
56
+ correlations.push(correlation(A[i], B[i]));
57
+ }
58
+ return correlations;
59
+ } else {
60
+ return correlation(A, B);
61
+ }
62
+ }
63
+ function correlation(A, B) {
64
+ var n = A.length;
65
+ var sumX = sum(A);
66
+ var sumY = sum(B);
67
+ var sumXY = A.reduce((acc, x, index) => add(acc, multiply(x, B[index])), 0);
68
+ var sumXSquare = sum(A.map(x => pow(x, 2)));
69
+ var sumYSquare = sum(B.map(y => pow(y, 2)));
70
+ var numerator = subtract(multiply(n, sumXY), multiply(sumX, sumY));
71
+ var denominator = sqrt(multiply(subtract(multiply(n, sumXSquare), pow(sumX, 2)), subtract(multiply(n, sumYSquare), pow(sumY, 2))));
72
+ return divide(numerator, denominator);
73
+ }
74
+ });
@@ -1,3 +1,3 @@
1
- export var version = '11.10.1';
1
+ export var version = '11.11.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": "11.10.1",
3
+ "version": "11.11.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",
@@ -29,7 +29,7 @@
29
29
  "complex.js": "^2.1.1",
30
30
  "decimal.js": "^10.4.3",
31
31
  "escape-latex": "^1.2.0",
32
- "fraction.js": "^4.3.4",
32
+ "fraction.js": "4.3.4",
33
33
  "javascript-natural-sort": "^0.7.1",
34
34
  "seedrandom": "^3.0.5",
35
35
  "tiny-emitter": "^2.1.0",
package/types/index.d.ts CHANGED
@@ -2970,6 +2970,14 @@ declare namespace math {
2970
2970
  normalization: 'unbiased' | 'uncorrected' | 'biased'
2971
2971
  ): MathNumericType
2972
2972
 
2973
+ /**
2974
+ * Calculate the correlation coefficient between two matrix.
2975
+ * @param {Array | Matrix} x The first array or matrix to compute correlation coefficient
2976
+ * @param {Array | Matrix} y The second array or matrix to compute correlation coefficient
2977
+ * @returns correlation coefficient
2978
+ */
2979
+ corr(x: MathCollection, y: MathCollection): MathType
2980
+
2973
2981
  /*************************************************************************
2974
2982
  * String functions
2975
2983
  ************************************************************************/