mathjs 10.0.2 → 10.1.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 (50) hide show
  1. package/HISTORY.md +11 -0
  2. package/NOTICE +1 -1
  3. package/README.md +10 -2
  4. package/bin/cli.js +1 -1
  5. package/docs/expressions/syntax.md +1 -1
  6. package/docs/reference/functions/invmod.md +41 -0
  7. package/docs/reference/functions.md +1 -0
  8. package/lib/browser/math.js +6 -6
  9. package/lib/browser/math.js.map +1 -1
  10. package/lib/cjs/entry/dependenciesAny/dependenciesInvmod.generated.js +41 -0
  11. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +15 -0
  12. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +15 -0
  13. package/lib/cjs/entry/dependenciesAny.generated.js +8 -0
  14. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +15 -0
  15. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +15 -0
  16. package/lib/cjs/entry/impureFunctionsAny.generated.js +11 -0
  17. package/lib/cjs/entry/impureFunctionsNumber.generated.js +10 -0
  18. package/lib/cjs/entry/pureFunctionsAny.generated.js +14 -2
  19. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +6 -1
  20. package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +15 -0
  21. package/lib/cjs/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  22. package/lib/cjs/factoriesAny.js +8 -0
  23. package/lib/cjs/function/algebra/rationalize.js +18 -4
  24. package/lib/cjs/function/algebra/simplify/simplifyConstant.js +223 -29
  25. package/lib/cjs/function/algebra/simplify/simplifyCore.js +34 -6
  26. package/lib/cjs/function/algebra/simplify.js +70 -22
  27. package/lib/cjs/function/arithmetic/invmod.js +73 -0
  28. package/lib/cjs/header.js +3 -3
  29. package/lib/cjs/version.js +1 -1
  30. package/lib/esm/entry/dependenciesAny/dependenciesInvmod.generated.js +24 -0
  31. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +10 -0
  32. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +10 -0
  33. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  34. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +10 -0
  35. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +10 -0
  36. package/lib/esm/entry/impureFunctionsAny.generated.js +12 -1
  37. package/lib/esm/entry/impureFunctionsNumber.generated.js +10 -0
  38. package/lib/esm/entry/pureFunctionsAny.generated.js +12 -1
  39. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +4 -1
  40. package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +8 -0
  41. package/lib/esm/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  42. package/lib/esm/factoriesAny.js +1 -0
  43. package/lib/esm/function/algebra/rationalize.js +18 -4
  44. package/lib/esm/function/algebra/simplify/simplifyConstant.js +197 -29
  45. package/lib/esm/function/algebra/simplify/simplifyCore.js +35 -7
  46. package/lib/esm/function/algebra/simplify.js +70 -22
  47. package/lib/esm/function/arithmetic/invmod.js +57 -0
  48. package/lib/esm/header.js +1 -1
  49. package/lib/esm/version.js +1 -1
  50. package/package.json +2 -1
package/HISTORY.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # History
2
2
 
3
+ # 2022-01-15, version 10.1.0
4
+
5
+ - Implemented function `invmod`, see #2368, #1744. Thanks @thetazero.
6
+ - Improvements and fixes in function `simplify`, thanks @gwhitney:
7
+ - Fix #1179, #1290: improve collection of non-constant like terms (#2384).
8
+ - Fix #2152: do not transform strings into numbers (#2372).
9
+ - Fix #1913: implement support for array and object simplification (#2382).
10
+ - Fix #2379: add embedded documentation for function `print`.
11
+ - Remove broken example from the embedded documentation of function `forEach`.
12
+
13
+
3
14
  # 2021-12-29, version 10.0.2
4
15
 
5
16
  - Fix #2156: simplify expressions like `-1 / (-x)` to `1/x`. Thanks @ony3000.
package/NOTICE CHANGED
@@ -1,7 +1,7 @@
1
1
  math.js
2
2
  https://github.com/josdejong/mathjs
3
3
 
4
- Copyright (C) 2013-2021 Jos de Jong <wjosdejong@gmail.com>
4
+ Copyright (C) 2013-2022 Jos de Jong <wjosdejong@gmail.com>
5
5
 
6
6
  Licensed under the Apache License, Version 2.0 (the "License");
7
7
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -7,7 +7,7 @@ Math.js is an extensive math library for JavaScript and Node.js. It features a f
7
7
  [![Version](https://img.shields.io/npm/v/mathjs.svg)](https://www.npmjs.com/package/mathjs)
8
8
  [![Downloads](https://img.shields.io/npm/dm/mathjs.svg)](https://www.npmjs.com/package/mathjs)
9
9
  [![Build Status](https://github.com/josdejong/mathjs/workflows/Node.js%20CI/badge.svg)](https://github.com/josdejong/mathjs/actions)
10
- [![Maintenance](https://img.shields.io/maintenance/yes/2021.svg)](https://github.com/josdejong/mathjs/graphs/commit-activity)
10
+ [![Maintenance](https://img.shields.io/maintenance/yes/2022.svg)](https://github.com/josdejong/mathjs/graphs/commit-activity)
11
11
  [![License](https://img.shields.io/github/license/josdejong/mathjs.svg)](https://github.com/josdejong/mathjs/blob/master/LICENSE)
12
12
  [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjosdejong%2Fmathjs.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjosdejong%2Fmathjs?ref=badge_shield)
13
13
  [![Codecov](https://codecov.io/gh/josdejong/mathjs/branch/develop/graph/badge.svg)](https://codecov.io/gh/josdejong/mathjs)
@@ -155,6 +155,14 @@ To run the tests remotely on BrowserStack, first set the environment variables `
155
155
 
156
156
  npm run test:browserstack
157
157
 
158
+ You can separately run the code linter, though it is also executed with `npm test`:
159
+
160
+ npm run lint
161
+
162
+ To automatically fix linting issue, run:
163
+
164
+ npm run format
165
+
158
166
  To test code coverage of the tests:
159
167
 
160
168
  npm run coverage
@@ -174,7 +182,7 @@ Thanks Github Actions and BrowserStack for the generous free hosting of this ope
174
182
 
175
183
  ## License
176
184
 
177
- Copyright (C) 2013-2021 Jos de Jong <wjosdejong@gmail.com>
185
+ Copyright (C) 2013-2022 Jos de Jong <wjosdejong@gmail.com>
178
186
 
179
187
  Licensed under the Apache License, Version 2.0 (the "License");
180
188
  you may not use this file except in compliance with the License.
package/bin/cli.js CHANGED
@@ -30,7 +30,7 @@
30
30
  * cat script.txt | mathjs > results.txt Run input stream, output to file
31
31
  *
32
32
  * @license
33
- * Copyright (C) 2013-2021 Jos de Jong <wjosdejong@gmail.com>
33
+ * Copyright (C) 2013-2022 Jos de Jong <wjosdejong@gmail.com>
34
34
  *
35
35
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
36
36
  * use this file except in compliance with the License. You may obtain a copy
@@ -547,7 +547,7 @@ parser.evaluate('c[end - 1 : -1 : 2]') // Matrix, [8, 7, 6]
547
547
  ## Objects
548
548
 
549
549
  Objects in math.js work the same as in languages like JavaScript and Python.
550
- An object is enclosed by square brackets `{`, `}`, and contains a set of
550
+ An object is enclosed by curly brackets `{`, `}`, and contains a set of
551
551
  comma separated key/value pairs. Keys and values are separated by a colon `:`.
552
552
  Keys can be a symbol like `prop` or a string like `"prop"`.
553
553
 
@@ -0,0 +1,41 @@
1
+ <!-- Note: This file is automatically generated from source code comments. Changes made in this file will be overridden. -->
2
+
3
+ # Function invmod
4
+
5
+ Calculate the (modular) multiplicative inverse of a modulo b. Solution to the equation `ax ≣ 1 (mod b)`
6
+ See https://en.wikipedia.org/wiki/Modular_multiplicative_inverse.
7
+
8
+
9
+ ## Syntax
10
+
11
+ ```js
12
+ math.invmod(a, b)
13
+ ```
14
+
15
+ ### Parameters
16
+
17
+ Parameter | Type | Description
18
+ --------- | ---- | -----------
19
+ `a` | number &#124; BigNumber | An integer number
20
+ `b` | number &#124; BigNumber | An integer number
21
+
22
+ ### Returns
23
+
24
+ Type | Description
25
+ ---- | -----------
26
+ number &#124; BigNumber | Returns an integer number where `invmod(a,b)*a ≣ 1 (mod b)`
27
+
28
+
29
+ ## Examples
30
+
31
+ ```js
32
+ math.invmod(8, 12) // returns NaN
33
+ math.invmod(7, 13) // return 2
34
+ math.invmod(15151, 15122) // returns 10429
35
+ ```
36
+
37
+
38
+ ## See also
39
+
40
+ [gcd](gcd.md),
41
+ [xgcd](xgcd.md)
@@ -44,6 +44,7 @@ Function | Description
44
44
  [math.floor(x)](functions/floor.md) | Round a value towards minus infinity.
45
45
  [math.gcd(a,&nbsp;b)](functions/gcd.md) | Calculate the greatest common divisor for two or more values or arrays.
46
46
  [math.hypot(a,&nbsp;b,&nbsp;...)](functions/hypot.md) | Calculate the hypotenusa of a list with values.
47
+ [math.invmod(a,&nbsp;b)](functions/invmod.md) | Calculate the (modular) multiplicative inverse of a modulo b.
47
48
  [math.lcm(a,&nbsp;b)](functions/lcm.md) | Calculate the least common multiple for two or more values or arrays.
48
49
  [math.log(x&nbsp;[,&nbsp;base])](functions/log.md) | Calculate the logarithm of a value.
49
50
  [math.log10(x)](functions/log10.md) | Calculate the 10-base logarithm of a value.