mathjs 13.0.0 → 13.0.2

Sign up to get free protection for your applications and to get access to all the features.
package/HISTORY.md CHANGED
@@ -1,24 +1,37 @@
1
1
  # History
2
2
 
3
+ # 2024-07-04, 13.0.2
4
+
5
+ - Fix an error in the type definitions of `quantileSeq` (#3223).
6
+ Thanks @domdomegg.
7
+
8
+ # 2024-06-28, 13.0.1
9
+
10
+ - Fix: #3227 generated bundle containing `catch` blocks without parameters.
11
+ - Fix: #2348 update type definitions of the `Parser` methods (#3226).
12
+ Thanks @orelbn.
13
+
3
14
  # 2024-05-31, 13.0.0
4
15
 
5
- Breaking changes:
16
+ Breaking changes:
6
17
 
7
18
  - Change `isZero`, `isPositive`, and `isNegative` to respect `config.epsilon`
8
19
  (#3139, #2838).
9
- - Change the behavior of the internal `nearlyEqual` to align with Python and
20
+ - Change the behavior of the internal `nearlyEqual` to align with Python and
10
21
  Julia (#3152, #2838)
11
22
  - Upgrade to `fraction.js@4.3.7`,
12
- see https://github.com/rawify/Fraction.js/issues/68.
23
+ see <https://github.com/rawify/Fraction.js/issues/68>.
24
+ - Dropped support for JavaScript engines that do not fully support ES6 or
25
+ `bigint`, or are not actively maintained. ES2020 is now the minimum required
26
+ EcmaScript version.
13
27
 
14
28
  Non-breaking changes:
15
29
 
16
30
  - Implemented support for `bigint` (#3207, #3207)
17
- - Implemented a new config option `config.numberFallback` needed for `bigint`
31
+ - Implemented a new config option `config.numberFallback` needed for `bigint`
18
32
  (#3207).
19
33
  - Internal: refactored tooling to ES modules and upgraded all devDependencies.
20
34
 
21
-
22
35
  # 2024-05-31, 12.4.3
23
36
 
24
37
  - Fix: serialization of Units without a value, see #1240.
@@ -26,17 +39,15 @@ Non-breaking changes:
26
39
  operator modulus `%`. See #3189.
27
40
  - Fix: #3197 improve `quantileSeq` type definitions (#3198). Thanks @domdomegg.
28
41
 
29
-
30
42
  # 2024-04-24, 12.4.2
31
43
 
32
44
  - Fix #3192: function `isNaN` returns `false` for `NaN` units in a matrix or
33
45
  array (#3193). Thanks @lgerin.
34
46
  - Fix: #3180 fix type definitions of functions `add` and `multiply` to allow
35
- more than two arguments.
36
- - Docs: correct the docs about `traverse` returning void (#3177).
47
+ more than two arguments.
48
+ - Docs: correct the docs about `traverse` returning void (#3177).
37
49
  Thanks @rohildshah.
38
50
 
39
-
40
51
  # 2024-03-13, 12.4.1
41
52
 
42
53
  - Docs: implement an interactive version of the Lorenz example, and show the
@@ -49,79 +60,71 @@ Non-breaking changes:
49
60
  - Fix: remove using polyfill.io inside the example
50
61
  `pretty_printing_with_mathjax.html` (#3167). Thanks @SukkaW.
51
62
 
52
-
53
63
  # 2024-02-22, 12.4.0
54
64
 
55
65
  - Feat: implement support for trailing commas in matrices (#3154, #2968).
56
66
  Thanks @dvd101x.
57
- - Feat: improve the performance of `multiply` a lot by adding matrix type
67
+ - Feat: improve the performance of `multiply` a lot by adding matrix type
58
68
  inferencing (#3149). Thanks @RandomGamingDev.
59
- - Fix: #3100 function `round` not handling round-off errors (#3136).
69
+ - Fix: #3100 function `round` not handling round-off errors (#3136).
60
70
  Thanks @BrianFugate.
61
- - Fix: `PartitionedMap` and `ObjectWrappingMap` missing a property
71
+ - Fix: `PartitionedMap` and `ObjectWrappingMap` missing a property
62
72
  `Symbol.iterator`, causing problems when trying `new Map(scope)` (#3156).
63
73
  - Fix: type definitions of function `mode` (#3153). Thanks @rich-martinez.
64
74
  - Docs: describe method `getAllAsMap` in the Parser docs (#3158, #3157).
65
75
  Thanks @dvd101x.
66
76
 
67
-
68
77
  # 2024-02-08, 12.3.2
69
78
 
70
79
  - Improved the performance of custom defined functions in the expression
71
80
  parser (#3150).
72
- - Fix: #3143 cannot use `and` and `or` inside a function definition.
81
+ - Fix: #3143 cannot use `and` and `or` inside a function definition.
73
82
  Regression since `v12.1.0` (#3150).
74
83
 
75
-
76
84
  # 2024-02-01, 12.3.1
77
85
 
78
- - Improved the typings of the arguments of `ArrayNode`, `FunctionNode`,
86
+ - Improved the typings of the arguments of `ArrayNode`, `FunctionNode`,
79
87
  `IndexNode`, `OperatorNode`, and `RelationalNode` (#3123). Thanks @sylee957.
80
88
  - Added a fully featured code editor example with CodeMirror and Katex (#3027).
81
89
  Thanks @dvd101x.
82
- - Fix: #3114 build warnings related to a number of wrong `/* #__PURE__ */`
90
+ - Fix: #3114 build warnings related to a number of wrong `/* #__PURE__ */`
83
91
  annotations.
84
92
  - Fix: #3142 support BigNumber values for the options of function `format`:
85
93
  `precision`, `wordSize`, `lowerExp`, `upperExp`. Support BigNumber values
86
- for the option `wordSize` in the functions `hex`, `bin`, and `oct`.
87
- - Fix: #3125 type definitions of function `hypot` (#3144).
94
+ for the option `wordSize` in the functions `hex`, `bin`, and `oct`.
95
+ - Fix: #3125 type definitions of function `hypot` (#3144).
88
96
  Thanks @silentmissile.
89
- - Fix: #3141 `help(config)` altering the actual `config` when evaluating the
97
+ - Fix: #3141 `help(config)` altering the actual `config` when evaluating the
90
98
  examples.
91
- - Docs: #3145 fix documentation about REPL, it does require a build step
99
+ - Docs: #3145 fix documentation about REPL, it does require a build step
92
100
  nowadays.
93
101
 
94
-
95
102
  # 2024-01-12, 12.3.0
96
103
 
97
- - Implement support new metric prefixes: `ronna` (`R`), `quetta` (`Q`),
104
+ - Implement support new metric prefixes: `ronna` (`R`), `quetta` (`Q`),
98
105
  `ronto` (`r`), and `quecto` (`q`) (#3113, #3112). Thanks @AlexEdgcomb.
99
106
  - Fix a bug converting a unitless unit (#3117). Thanks @costerwi.
100
107
  - Fix: #3097 `toSI()` wrongly converting `degC` (#3118). Thanks @costerwi.
101
108
 
102
-
103
109
  # 2023-12-20, 12.2.1
104
110
 
105
111
  - Fix #3109: method `Node.toHTML` not accepting a custom `handler`.
106
112
 
107
-
108
113
  # 2023-12-08, 12.2.0
109
114
 
110
- - Feat: lazy evaluation of operators `and`, `or`, `&`, `|` (#3090, #3101,
115
+ - Feat: lazy evaluation of operators `and`, `or`, `&`, `|` (#3090, #3101,
111
116
  #2766). Thanks @smith120bh.
112
117
  - Fix: passing a 4th argument with a scope to raw functions.
113
118
  - Fix: #3096 embedded docs of eigs throwing an error.
114
119
 
115
-
116
120
  # 2023-11-17, 12.1.0
117
121
 
118
- - Feat: Extend function `round` with support for units (#2761, #3095).
122
+ - Feat: Extend function `round` with support for units (#2761, #3095).
119
123
  - Feat: Extend function `mod` with support for negative divisors in when
120
124
  using `BigNumber` or `Fraction` (#3087).
121
125
  - Fix: #3092 a typo in an error message when converting a string into a number.
122
126
  - Fix: #3094 function `derivative` mutates the input expression when it fails.
123
127
 
124
-
125
128
  # 2023-10-26, 12.0.0
126
129
 
127
130
  Breaking changes:
@@ -129,11 +132,14 @@ Breaking changes:
129
132
  - Fix #2879, #2927, #3014: change the confusing interface of `eigs` (#3037),
130
133
  thanks @gwhitney.
131
134
  Before, functions `eigs` returned an object:
135
+
132
136
  ```
133
137
  { values: MathCollection; vectors: MathCollection }
134
138
  ```
139
+
135
140
  where `vectors` was a 2d matrix of which the columns contained the vectors.
136
141
  This is changed to `eigs` returning an object:
142
+
137
143
  ```
138
144
  {
139
145
  values: MathCollection
@@ -143,27 +149,27 @@ Breaking changes:
143
149
  }>
144
150
  }
145
151
  ```
152
+
146
153
  Where `eigenvectors` is an array containing an object with the corresponding
147
154
  eigenvalue and vector.
148
155
  - Refactored the TypeScript type definitions to make them work with a `NodeNext`
149
- module resolution (#3079, #2919).
156
+ module resolution (#3079, #2919).
150
157
  - Type `MathJsStatic` is renamed to `MathJsInstance`.
151
- - Type `FactoryDependencies` is deprecated, use `MathJsFactory` instead, and
158
+ - Type `FactoryDependencies` is deprecated, use `MathJsFactory` instead, and
152
159
  import dependency maps directly from the library.
153
- - Change the assignment operator of `.toTex()` output from `:=` to `=` (see
160
+ - Change the assignment operator of `.toTex()` output from `:=` to `=` (see
154
161
  #2980, #2987).
155
162
  - Drop official support for Node.js 14 and 16.
156
163
 
157
164
  Features:
158
165
 
159
- - Function `eigs` now has an option to turn off calculation of eigenvectors
166
+ - Function `eigs` now has an option to turn off calculation of eigenvectors
160
167
  (#3057, #2180). Thanks @gwhitney.
161
168
 
162
169
  Fixes:
163
170
 
164
171
  - Find eigenvectors of defective matrices (#3037). Thanks @gwhitney.
165
172
 
166
-
167
173
  # 2023-10-26, 11.12.0
168
174
 
169
175
  - Implemented function `subtractScalar` (#3081, #2643), thanks @vrushaket.
@@ -174,64 +180,57 @@ Fixes:
174
180
  - Fix: #2960 add type definition of function `symbolicEqual` (#3035),
175
181
  thanks @juancodeaudio.
176
182
 
177
-
178
183
  # 2023-10-11, 11.11.2
179
184
 
180
- - Fix #3025: improve handling of matrices and error handling
185
+ - Fix #3025: improve handling of matrices and error handling
181
186
  in function `corr` (#3030). Thanks @vrushaket.
182
187
  - Fix #3074: improve error message when using function `max` in `derivative`.
183
188
  - Fix #3073: fix parsing quotes inside a string.
184
- - Fix #2027: cannot use named operators like `to` or `mod` as property name.
185
-
189
+ - Fix #2027: cannot use named operators like `to` or `mod` as property name.
186
190
 
187
191
  # 2023-09-20, 11.11.1
188
192
 
189
- - Fix #2989: use one-based indices in `print` in the parser (#3009).
190
- Thanks @dvd101x.
193
+ - Fix #2989: use one-based indices in `print` in the parser (#3009).
194
+ Thanks @dvd101x.
191
195
  - Fix #2936: `mod` sometimes giving wrong results due to internal round-off
192
196
  errors (#3011). Thanks @praisennamonu1.
193
- - Internal refactor of `quantileSeq`, and fixed the embedded help (#3003).
197
+ - Internal refactor of `quantileSeq`, and fixed the embedded help (#3003).
194
198
  Thanks @dvd101x.
195
199
  - Updated dependencies and devDependencies.
196
200
 
197
-
198
201
  # 2023-09-05, 11.11.0
199
202
 
200
203
  - Implement function `corr` to calculate the correlation between two matrices
201
- (#3015, #2624). Thanks @vrushaket.
202
- - Lock `fraction.js` at version `4.3.4` for now, see #3024, 3022,
203
- https://github.com/rawify/Fraction.js/issues/68.
204
-
204
+ (#3015, #2624). Thanks @vrushaket.
205
+ - Lock `fraction.js` at version `4.3.4` for now, see #3024, 3022,
206
+ <https://github.com/rawify/Fraction.js/issues/68>.
205
207
 
206
208
  # 2023-08-31, 11.10.1
207
209
 
208
210
  - Upgrade to `fraction.js@4.3.4`, see #3022.
209
- - Fix #3020: `lruQueue` using the global `hasOwnProperty` which may be
211
+ - Fix #3020: `lruQueue` using the global `hasOwnProperty` which may be
210
212
  polluted.
211
213
  - Add support for prefixes for the unit `erg`, and restrict prefixes of the
212
- unit `joule` to only long prefixes like `kilo` and no short prefixes
214
+ unit `joule` to only long prefixes like `kilo` and no short prefixes
213
215
  like `k` (#3019). Thanks @costerwi.
214
216
  - Add a new browser example `examples/browser/lorenz.html` that uses `solveODE`
215
217
  and plots the result in a chart (#3018). Thanks @dvd101x.
216
218
 
217
-
218
219
  # 2023-08-23, 11.10.0
219
220
 
220
221
  - Extend function `quantileSeq` with support for a `dimension` (#3002).
221
222
  Thanks @dvd101x.
222
- - Implement #2735: Support indexing with an array of booleans, for
223
+ - Implement #2735: Support indexing with an array of booleans, for
223
224
  example `a[[true, false, true]]` and `a[a > 2]` (#2994). Thanks @dvd101x.
224
225
  - Implement function `zeta` (#2950, #2975, #2904). Thanks @Bobingstern.
225
226
  - Fix #2990: `DenseMatrix` can mutate input arrays (#2991).
226
227
 
227
-
228
228
  # 2023-07-24, 11.9.1
229
229
 
230
230
  - Fix a security vulnerability in `FunctionNode` and `SymbolNode` allowing
231
231
  arbitrary code execution via `math.evaluate`. Thanks Harry Chen.
232
232
  - Fix #3001: mathjs bundle containing `new Function(...)` (CSP issue).
233
233
 
234
-
235
234
  # 2023-07-19, 11.9.0
236
235
 
237
236
  - Implement function `solveODE` (#2958). Thanks @dvd101x.
@@ -239,30 +238,28 @@ Fixes:
239
238
  - Implement support for units in function `range` (#2997). Thanks @dvd101x.
240
239
  - Fix #2974: `simplify` puts plus and minus signs next to each other (#2981).
241
240
  Thanks @MaybePixem.
242
- - Fix #2973: fixes and improvements in the embedded docs (#2976).
241
+ - Fix #2973: fixes and improvements in the embedded docs (#2976).
243
242
  Thanks @dvd101x.
244
- - Fix #2996: two errors in the examples in the documentation about Expression
243
+ - Fix #2996: two errors in the examples in the documentation about Expression
245
244
  trees.
246
- - Fix round-off errors near zero when converting temperatures (#2962).
245
+ - Fix round-off errors near zero when converting temperatures (#2962).
247
246
  Thanks @costerwi.
248
247
  - Refactored function `range`, reducing the amount of code (#2995).
249
248
  Thanks @dvd101x.
250
249
 
251
-
252
250
  # 2023-06-20, 11.8.2
253
251
 
254
- - Fix #2971: improve typings of statistics functions `min`, `max`, `mean`,
255
- `median`, `mode`, `std`, `sum`, `prod`, `variance`. Fixes a regression
252
+ - Fix #2971: improve typings of statistics functions `min`, `max`, `mean`,
253
+ `median`, `mode`, `std`, `sum`, `prod`, `variance`. Fixes a regression
256
254
  introduced in v11.8.1.
257
255
  - Fix #2972: type definitions of `Unit.divide(Unit)` have a wrong return type.
258
256
 
259
-
260
257
  # 2023-06-13, 11.8.1
261
258
 
262
- - Fix #2964: issue in function ` distance` when calculate the distance from
263
- a point to a line (#2965). Thanks @Kiku-CN.
259
+ - Fix #2964: issue in function `distance` when calculate the distance from
260
+ a point to a line (#2965). Thanks @Kiku-CN.
264
261
  - Fix `math.format` not working correctly for `engineering` notation when using
265
- BigNumbers and for `fixed` notation with `precision: 0` configured (#2956).
262
+ BigNumbers and for `fixed` notation with `precision: 0` configured (#2956).
266
263
  Thanks @mgreminger.
267
264
  - Fix #2880: not possible to map cube root `cbrt`.
268
265
  - Fix #2938: make the syntax description of all functions consistent in the
@@ -272,72 +269,67 @@ Fixes:
272
269
  - Fix #2959: typo in an example in the docs. Thanks @kunalagrwl.
273
270
  - Drop official support for Node.js 14, has reached end of life.
274
271
 
275
-
276
272
  # 2023-04-03, 11.8.0
277
273
 
278
- - Extended functions `fraction`, `bignumber`, and `number` with support for
274
+ - Extended functions `fraction`, `bignumber`, and `number` with support for
279
275
  units, see #2918 (#2926).
280
- - Implemented aliases `amp` and `amps` for unit `ampere` (#2917).
276
+ - Implemented aliases `amp` and `amps` for unit `ampere` (#2917).
281
277
  Thanks @veggiesaurus.
282
278
  - Improve TypeScript definitions of function `gcd` (#2922). Thanks @brunoSnoww.
283
279
  - Fix #2923: improve docs of the function `distance` (#2924). Thanks @tmtron.
284
280
 
285
-
286
281
  # 2023-03-15, 11.7.0
287
282
 
288
- - Implement #2567: accept array as parameter for function `gcd` (#2878).
283
+ - Implement #2567: accept array as parameter for function `gcd` (#2878).
289
284
  Thanks @jakubriegel.
290
- - Fix #2908: improvements in the docs and examples of functions
291
- `partitionSelect`, `diff`, `expm1`, `round`, `nthRoots`, `sign`,
285
+ - Fix #2908: improvements in the docs and examples of functions
286
+ `partitionSelect`, `diff`, `expm1`, `round`, `nthRoots`, `sign`,
292
287
  `rigthArithShift`, `setIsSubset`, `setSize`, and the docs about units.
293
288
  Thanks @tmtron.
294
289
  - Fix #2907: determinant of empty matrix should be 1.
295
- - Refactor index.d.ts by writing function declarations using a generic,
290
+ - Refactor index.d.ts by writing function declarations using a generic,
296
291
  reducing a lot of repetition (#2913). Thanks @brunoSnoww.
297
292
 
298
-
299
293
  # 2023-02-24, 11.6.0
300
294
 
301
295
  - Implement broadcasting for the following functions and their corresponding
302
- operator: `add`, `dotDivide`, `dotMultiply`, `dotPow`, `gcd`, `lcm`, `mod`,
303
- `nthRoot`, `subtract`, `bitAnd`, `bitOr`, `bitXor`, `leftShift`,
304
- `rightArithShift`, `rightLogShift`, `and`, `or`, `xor`, `compare`,
305
- `compareText`, `equal`, `larger`, `largerEq`, `smaller`, `smallerEq`,
296
+ operator: `add`, `dotDivide`, `dotMultiply`, `dotPow`, `gcd`, `lcm`, `mod`,
297
+ `nthRoot`, `subtract`, `bitAnd`, `bitOr`, `bitXor`, `leftShift`,
298
+ `rightArithShift`, `rightLogShift`, `and`, `or`, `xor`, `compare`,
299
+ `compareText`, `equal`, `larger`, `largerEq`, `smaller`, `smallerEq`,
306
300
  `unequal`, `atan2` and `to` (#2895, #2753). Thanks @dvd101x.
307
301
  - Implement support for non-power-of-2 fft (#2900, #2577). Thanks @cyavictor88.
308
- - Fix #2888: update type definitions of function `unit` to allow creating a
302
+ - Fix #2888: update type definitions of function `unit` to allow creating a
309
303
  unit from a fraction or complex number.
310
304
  - Fix #2892: an error in the examples of the embedded help of function `sort`.
311
- - Fix #2891: functions `column` and `row` sometimes returning a scalar number.
312
- - Fix #2896: define the fourth argument of function `intersect` as optional
305
+ - Fix #2891: functions `column` and `row` sometimes returning a scalar number.
306
+ - Fix #2896: define the fourth argument of function `intersect` as optional
313
307
  in the TypeScript definitions. Thanks @wodndb.
314
308
  - Fix: quantileSeq not accepting a matrix as second argument `prob` (see #2902).
315
- - Fix broken examples in functions `to`, `distance`, `getMatrixDataType`,
309
+ - Fix broken examples in functions `to`, `distance`, `getMatrixDataType`,
316
310
  `subset`, and `max` (see #2902).
317
311
 
318
-
319
312
  # 2023-01-31, 11.5.1
320
313
 
321
- - Add type definitions for function `rotationMatrix` (#2860).
314
+ - Add type definitions for function `rotationMatrix` (#2860).
322
315
  Thanks @brunoSnoww.
323
- - Add type signature for `lusolve(LUDecomposition, ...)` (#2864).
316
+ - Add type signature for `lusolve(LUDecomposition, ...)` (#2864).
324
317
  Thanks @evanmiller.
325
- - Fix #2873: the rocket_trajectory_optimization.html example being partly
318
+ - Fix #2873: the rocket_trajectory_optimization.html example being partly
326
319
  broken. Thanks @dvd101x.
327
320
  - Fix #2871: coverage report broken (#2877). Thanks @bornova.
328
321
  - Fix #2883: update documentation for stat functions, describe missing syntax.
329
322
  - Fix #2884: fix examples in the embedded docs of function `pow` and some other
330
323
  functions.
331
- - Fix type definition of function `complex` for one numeric input (#2886),
324
+ - Fix type definition of function `complex` for one numeric input (#2886),
332
325
  thanks @ariymarkowitz.
333
326
  - Fix type definitions of `map()` and `forEach()` (#2887), thanks @xiaohk.
334
- - Fix #2606: improve type definitions of `dotMultiply`, `dotPow` and
327
+ - Fix #2606: improve type definitions of `dotMultiply`, `dotPow` and
335
328
  `dotDivide` (#2890). Thanks @brunoSnoww.
336
329
 
337
-
338
330
  # 2022-12-05, 11.5.0
339
331
 
340
- - Improve `simplify` rule matches in non-commutative contexts (#2841).
332
+ - Improve `simplify` rule matches in non-commutative contexts (#2841).
341
333
  Thanks @samueltlg.
342
334
  - Simplify: add rules and restructure tests for non-commutative contexts
343
335
  (#2847). Thanks @samueltlg.
@@ -345,61 +337,54 @@ Fixes:
345
337
  - Fix TypeScript types for `multiply()` with `number[]` and `number[][]`
346
338
  (#2852). Thanks @hfhchan.
347
339
 
348
-
349
340
  # 2022-11-18, 11.4.0
350
341
 
351
342
  - Implemented more wildcards to describe rules for `simplify`, making it easier
352
343
  for example to describe unary minus (#1915). Thanks @thatcomputerguy0101.
353
- - Implemented functions `schur`, `sylvester`, and `lyap` (#2646).
344
+ - Implemented functions `schur`, `sylvester`, and `lyap` (#2646).
354
345
  Thanks @egidioln.
355
- - Implemented function `polynomialRoot`, and use it in a benchmark (#2839).
346
+ - Implemented function `polynomialRoot`, and use it in a benchmark (#2839).
356
347
  Thanks @gwhitney.
357
- - Fix #2825 partly: improve simplifying operations on constants in
348
+ - Fix #2825 partly: improve simplifying operations on constants in
358
349
  non-commutative contexts (#2827). Thanks @samueltlg.
359
- - Fix #2840: a bug in the docs and type definitions of `Node.traverse` and
350
+ - Fix #2840: a bug in the docs and type definitions of `Node.traverse` and
360
351
  `Node.forEach`, they do return `void`.
361
352
 
362
-
363
353
  # 2022-11-07, 11.3.3
364
354
 
365
- - Fix #2830: Prevent inserting zero values when creating a `SparseMatrix` from a
355
+ - Fix #2830: Prevent inserting zero values when creating a `SparseMatrix` from a
366
356
  `DenseMatrix` (#2836). Thanks @AlexandreAlvesDB.
367
357
  - Fix #2835: a regression in the type definitions of `FunctionNode`, introduced
368
358
  in `v11.3.2`. See #2733. Thanks @dsteve.
369
359
 
370
-
371
360
  # 2022-10-25, 11.3.2
372
361
 
373
- - Add generics to remaining Node type definitions (#2733). Thanks @mattvague.
374
- - Allow unit prefixes for (absolute) temperatures `kelvin`, `rankine`,
362
+ - Add generics to remaining Node type definitions (#2733). Thanks @mattvague.
363
+ - Allow unit prefixes for (absolute) temperatures `kelvin`, `rankine`,
375
364
  `celsius`, and `fahrenheit` (#2824). Thanks @jfeist
376
365
 
377
-
378
366
  # 2022-10-19, 11.3.1
379
367
 
380
368
  - Fix #2809: code completion issues in some IDE's (#2812).
381
- - Fix #2818: throw an error when a function assignment has duplicate
369
+ - Fix #2818: throw an error when a function assignment has duplicate
382
370
  parameter names (#2819).
383
371
  - Update `decimal.js` to version `10.4.2`.
384
372
 
385
-
386
373
  # 2022-10-11, 11.3.0
387
374
 
388
- - Allow creating new subclasses of `Node` in TypeScript (#2772).
375
+ - Allow creating new subclasses of `Node` in TypeScript (#2772).
389
376
  Note that this disables being able to narrow MathNodes by using the `.type`
390
377
  property. Use typeguards like `isOperatorNode(...)` instead (see #2810).
391
378
  Thanks @mattvague.
392
379
  - Fix #2793: `flatten()` cloning entries of array/Matrix (#2799).
393
- - Fix #2627: TypeScript definitions of `pinv` missing (#2804).
380
+ - Fix #2627: TypeScript definitions of `pinv` missing (#2804).
394
381
  Thanks @HanchaiN.
395
382
  - Update dependencies to `decimal.js@10.4.1`.
396
383
 
397
-
398
384
  # 2022-09-13, 11.2.1
399
385
 
400
386
  - Fix doc generator being broken, not generating a function reference.
401
387
 
402
-
403
388
  # 2022-09-12, 11.2.0
404
389
 
405
390
  - Implement function `isRelationalNode` (#2731). Thanks @isaacbyr.
@@ -410,49 +395,46 @@ Fixes:
410
395
  - Fixed documentation of unit `min` which means `minutes`, not `minim` (#2773).
411
396
  Thanks @jasonhornsby.
412
397
 
413
-
414
398
  # 2022-08-23, 11.1.0
415
399
 
416
400
  - Add Unit constructor from value and pure (valueless) Unit (#2628).
417
401
  Thanks @costerwi
418
402
  - Fix #2144: `examples/advanced/custom_loading.js` was broken.
419
- - Fix JSON `replacer` function missing in the TypeScript definitions.
403
+ - Fix JSON `replacer` function missing in the TypeScript definitions.
420
404
  Thanks @mattvague.
421
- - Update dependencies to `typed-function@4.1.0` and `decimal.js@10.4.0`.
422
-
405
+ - Update dependencies to `typed-function@4.1.0` and `decimal.js@10.4.0`.
423
406
 
424
407
  # 2022-07-25, version 11.0.1
425
408
 
426
409
  - Fix #2632: TypeScript issue of `simplifyConstant` and `simplifyCore`
427
410
  not having a return type defined.
428
411
 
429
-
430
412
  # 2022-07-23, version 11.0.0
431
413
 
432
414
  !!! BE CAREFUL: BREAKING CHANGES !!!
433
415
 
434
416
  Breaking changes:
435
417
 
436
- - Dropped official support for IE11.
437
- - Upgraded to `typed-function@3`, see [josdejong/typed-function/HISTORY.md](https://github.com/josdejong/typed-function/blob/develop/HISTORY.md#2022-05-12-version-300). Thanks @gwhitney. Most importantly:
438
- - Conversions now have preference over `any`.
439
- - The `this` variable is no longer bound to the typed function itself.
440
- - The properties `typed.types`, `typed.conversions`, and `typed.ignore`
418
+ - Dropped official support for IE11.
419
+ - Upgraded to `typed-function@3`, see [josdejong/typed-function/HISTORY.md](https://github.com/josdejong/typed-function/blob/develop/HISTORY.md#2022-05-12-version-300). Thanks @gwhitney. Most importantly:
420
+ - Conversions now have preference over `any`.
421
+ - The `this` variable is no longer bound to the typed function itself.
422
+ - The properties `typed.types`, `typed.conversions`, and `typed.ignore`
441
423
  have been removed.
442
- - There are new static functions available like `typed.referTo`,
424
+ - There are new static functions available like `typed.referTo`,
443
425
  `typed.referToSelf`, `typed.addTypes`, `typed.addConversions`.
444
426
  - Implement amended "Rule 2" for implicit multiplication (#2370, #2460):
445
- when having a division followed by an implicit multiplication, the division
446
- gets higher precedence over the implicit multiplication when (a) the
447
- numerator is a constant with optionally a prefix operator (`-`, `+`, `~`),
448
- and (b) the denominator is a constant. For example: formerly `-1 / 2 x` was
427
+ when having a division followed by an implicit multiplication, the division
428
+ gets higher precedence over the implicit multiplication when (a) the
429
+ numerator is a constant with optionally a prefix operator (`-`, `+`, `~`),
430
+ and (b) the denominator is a constant. For example: formerly `-1 / 2 x` was
449
431
  interpreted as `-1 / (2 * x)` and now it is interpreted as `(-1 / 2) * x`.
450
432
  Thanks @gwhitney.
451
433
  - Drop elementwise matrix support for trigonometric functions, exp, log, gamma,
452
- square, sqrt, cube, and cbrt to prevent confusion with standard matrix
453
- functions (#2440, #2465). Instead, use `math.map(matrix, fn)`.
434
+ square, sqrt, cube, and cbrt to prevent confusion with standard matrix
435
+ functions (#2440, #2465). Instead, use `math.map(matrix, fn)`.
454
436
  Thanks @gwhitney.
455
- - Simplify: convert equivalent function calls into operators, for example,
437
+ - Simplify: convert equivalent function calls into operators, for example,
456
438
  `add(2, x)` will now be simplified into `2 + x` (#2415, #2466).
457
439
  Thanks @gwhitney.
458
440
  - Removed the automatic conversion from `number` to `string` (#2482).
@@ -460,25 +442,25 @@ Breaking changes:
460
442
  - Fix #2412: let function `diff` return an empty matrix when the input contains
461
443
  only one element (#2422).
462
444
  - Internal refactoring in the `simplifyCore` logic (#2490, #2484, #2459).
463
- The function `simplifyCore` will no longer (partially) merge constants, that
464
- behavior has been moved to `simplifyConstant`. The combination of
465
- `simplifyConstant` and `simplifyCore` is still close to the old behavior
466
- of `simplifyCore`, but there are some differences. To reproduce the same
467
- behavior as the old `simplifyCore`, you can use
468
- `math.simplify(expr, [math.simplifyCore, math.simplifyConstant])`.
469
- Thanks to the refactoring, `simplify` is more thorough in reducing constants.
445
+ The function `simplifyCore` will no longer (partially) merge constants, that
446
+ behavior has been moved to `simplifyConstant`. The combination of
447
+ `simplifyConstant` and `simplifyCore` is still close to the old behavior
448
+ of `simplifyCore`, but there are some differences. To reproduce the same
449
+ behavior as the old `simplifyCore`, you can use
450
+ `math.simplify(expr, [math.simplifyCore, math.simplifyConstant])`.
451
+ Thanks to the refactoring, `simplify` is more thorough in reducing constants.
470
452
  Thanks @gwhitney.
471
- - Disable support for splitting rest parameters in chained calculations
453
+ - Disable support for splitting rest parameters in chained calculations
472
454
  (#2485, #2474). For example: `math.chain(3).max(4, 2).done()` will now throw
473
- an error rather than return `4`, because the rest parameter of
474
- `math.max(...number)` has been split between the contents of the chain and
455
+ an error rather than return `4`, because the rest parameter of
456
+ `math.max(...number)` has been split between the contents of the chain and
475
457
  the arguments to the max call. Thanks @gwhitney.
476
- - Function `typeOf` now returns `function` (lowercase) for a function instead
458
+ - Function `typeOf` now returns `function` (lowercase) for a function instead
477
459
  of `Function` (#2560). Thanks @gwhitney.
478
460
 
479
461
  Non-breaking changes:
480
462
 
481
- - Fix #2600: improve the TypeScript definitions of `simplify`.
463
+ - Fix #2600: improve the TypeScript definitions of `simplify`.
482
464
  Thanks @laureen-m and @mattvague.
483
465
  - Fix #2607: improve type definition of `createUnit`. Thanks @egziko.
484
466
  - Fix #2608: clarify the docs on the need to configure a smaller `epsilon`
@@ -488,70 +470,62 @@ Non-breaking changes:
488
470
  - Fix #2621: add TypeScript definitions for `count` (#2622). Thanks @Hansuku.
489
471
  - Improved TypeScript definitions of `multiply` (#2623). Thanks @Windrill.
490
472
 
491
-
492
473
  # 2022-06-28, version 10.6.4
493
474
 
494
475
  - Improve TypeScript definitions of the `factory` function, thanks @mattvague.
495
476
 
496
-
497
477
  # 2022-06-24, version 10.6.3
498
478
 
499
- - Revert the TypeScript definition fixes for `factory` applied in `v10.6.2`,
479
+ - Revert the TypeScript definition fixes for `factory` applied in `v10.6.2`,
500
480
  they give some complications.
501
481
 
502
-
503
482
  # 2022-06-24, version 10.6.2
504
483
 
505
484
  - Improve TypeScript definitions of `ParenthesisNode`. Thanks @mattvague.
506
- - Change the TypeScript definition of `MathNodeCommon['type']` into a less
507
- strict string, so it is possible to extend with new Node classes.
485
+ - Change the TypeScript definition of `MathNodeCommon['type']` into a less
486
+ strict string, so it is possible to extend with new Node classes.
508
487
  Thanks @mattvague.
509
488
  - Improve TypeScript definitions of the `factory` function, thanks @mattvague.
510
489
 
511
-
512
490
  # 2022-05-31, version 10.6.1
513
491
 
514
- - Improve the TypeScript types For `OperatorNode`: you can now define generic
492
+ - Improve the TypeScript types For `OperatorNode`: you can now define generic
515
493
  types like `OperatorNode<'+', 'add'>`. Thanks @mattvague.
516
494
 
517
-
518
495
  # 2022-05-24, version 10.6.0
519
496
 
520
497
  - Implementation of fourier transform functions `fft` and `ifft` (#2540).
521
498
  Thanks @HanchaiN.
522
499
  - Fix TypeScript types not being listed in the exported fields (#2569).
523
- Thanks @mattvague.
500
+ Thanks @mattvague.
524
501
  - Large improvements in TypeScript definitions for chained expressions (#2537).
525
502
  Thanks @mattvague.
526
- - Fix #2571: improve TypeScript definition of functions `clone` and `cloneDeep`
503
+ - Fix #2571: improve TypeScript definition of functions `clone` and `cloneDeep`
527
504
  (#2572). Thanks @mattvague.
528
505
  - Fix the first argument of `derivative` holding the expression not correctly
529
506
  being converted when using `.toTex()` (#2564). Thanks @mattvague.
530
507
 
531
-
532
508
  # 2022-05-11, version 10.5.3
533
509
 
534
- - Fix #2337: npm package containing examples and docs to solve security
510
+ - Fix #2337: npm package containing examples and docs to solve security
535
511
  vulnerabilities being reported on the examples and their dependencies.
536
512
  - Fix core, construction, and some other functions missing in docs.
537
513
  - Drop official support for Node.js 12 which has reached its end of life.
538
514
 
539
-
540
515
  # 2022-05-09, version 10.5.2
541
516
 
542
- - Fix #2553: `@types/mocha` defined in `dependencies` instead of
517
+ - Fix #2553: `@types/mocha` defined in `dependencies` instead of
543
518
  `devDependencies`, causing problems in projects that use a different version
544
519
  of this dependency. Thanks @Kolahzary.
545
520
  - Fix #2550: remove `examples/node_modules` folder from the npm package.
546
521
  - Fix #2528: improve contribution guidelines (#2548).
547
- - Document `SymbolNode.onUndefinedSymbol` and
522
+ - Document `SymbolNode.onUndefinedSymbol` and
548
523
  `FunctionNode.onUndefinedFunction`.
549
524
 
550
-
551
525
  # 2022-05-02, version 10.5.1
552
526
 
553
527
  - Fix #2526, #2529: improve TypeScript definitions of function `round`, `fix`,
554
- `floor`, `ceil`, and `nthRoot`, and improved the number only implementations
528
+ `floor`, `ceil`, and `nthRoot`, and improved the number only implementations
555
529
  of those functions (#2531, #2539). Thanks @simlaticak and @gwhitney.
556
530
  - Fix #2532: matrix index symbol `end` not working when used inside
557
531
  a sub-expression.
@@ -559,12 +533,11 @@ Non-breaking changes:
559
533
  (e.g., to avoid spurious duplicates in list). (#2543)
560
534
  - Add type definitions of function `resolve` (#2536). Thanks @mattvague.
561
535
 
562
-
563
536
  # 2022-04-19, version 10.5.0
564
537
 
565
- - Implement #1563: function `pinv`, Moore–Penrose inverse (#2521).
538
+ - Implement #1563: function `pinv`, Moore–Penrose inverse (#2521).
566
539
  Thanks @HanchaiN.
567
- - Optimize function `det` for integers by switching to the Bareiss algorithm:
540
+ - Optimize function `det` for integers by switching to the Bareiss algorithm:
568
541
  no more round-off errors for integer input (#2516). Thanks @HanchaiN.
569
542
  - Implement #2463: allow negative integer powers of invertible square matrices
570
543
  (#2517). Thanks @HanchaiN.
@@ -575,7 +548,6 @@ Non-breaking changes:
575
548
  - Fix #2526: update TypeScript definition of `ceil` (#2531). Thanks @simlaticak
576
549
  - Change mocha reporter to 'dot' to avoid excessively long log files. (#2520)
577
550
 
578
-
579
551
  # 2022-04-08, version 10.4.3
580
552
 
581
553
  - Fix #2508: improve the precision of stirlingS2 (#2509). Thanks @gwhitney.
@@ -583,14 +555,13 @@ Non-breaking changes:
583
555
  of function `log` (#2515). Thanks @gwhitney.
584
556
  - Improve the documentation on operator `;` (#2512). Thanks @gwhitney.
585
557
 
586
-
587
558
  # 2022-03-29, version 10.4.2
588
559
 
589
560
  - Fix #2499: different behavior for unit conversion "degC" and "K" (#2501).
590
- Also disables getting the sign for units with an offset, which is ambiguous.
561
+ Also disables getting the sign for units with an offset, which is ambiguous.
591
562
  Thanks @gwhitney.
592
563
  - Fix #2503: fix an issue in `log()` for complex numbers in which the imaginary
593
- part is much larger in absolute value than the real part, fixed in
564
+ part is much larger in absolute value than the real part, fixed in
594
565
  `complex.js@2.1.0` (#2505), thanks @gwhitney, @infusion.
595
566
  - Fix #2493: unclear error message when an entity that is not a function
596
567
  is being called as a function (#2494). Thanks @gwhitney.
@@ -600,10 +571,9 @@ Non-breaking changes:
600
571
  comparison tolerance. It was already being called this way, but was
601
572
  silently ignoring the tolerance. Thanks @yifanwww.
602
573
 
603
-
604
574
  # 2022-03-23, version 10.4.1
605
575
 
606
- - Improve TypeScript definitions for function `unit` (#2479).
576
+ - Improve TypeScript definitions for function `unit` (#2479).
607
577
  Thanks @SinanAkkoyun.
608
578
  - Add tests for type declarations (#2448). Thanks @samestep.
609
579
  - Further improvement to TypeScript definitions of `std` and `variance`
@@ -617,7 +587,6 @@ Non-breaking changes:
617
587
  numbers (#2496). Thanks @gwhitney.
618
588
  - Update project dependencies and devDependencies.
619
589
 
620
-
621
590
  # 2022-03-07, version 10.4.0
622
591
 
623
592
  - Fix #2461: make sure `simplifyCore` recurses over all binary nodes (#2462).
@@ -626,11 +595,10 @@ Non-breaking changes:
626
595
  (#2455). Thanks @NattapongSiri.
627
596
  - Fix #1633: implement a `cumsum` function generating cumulative sums of a list
628
597
  of values or a matrix. (#1870). Thanks @hjonasson.
629
- - Upgrade to the latest version of `Fraction.js`, having more strict input,
598
+ - Upgrade to the latest version of `Fraction.js`, having more strict input,
630
599
  only accepting an integer numerator and denominator. See #2427.
631
600
  - Fix typo in documentation example for `format`. (#2468) Thanks @abranhe.
632
- - Write unit tests for all jsdoc examples. See #2452. Thanks @gwhitney.
633
-
601
+ - Write unit tests for all jsdoc examples. See #2452. Thanks @gwhitney.
634
602
 
635
603
  # 2021-03-02, version 10.3.0
636
604
 
@@ -638,38 +606,35 @@ Non-breaking changes:
638
606
  - Fix #2441, #2442: support passing a function as argument to functions created
639
607
  in the expression parser (#2443). Thanks @gwhitney.
640
608
  - Fix #2325: improve documentation of subset indices (#2446). Thanks @gwhitney.
641
- - Fix #2439: fix a bug in `complexEigs` in which real-valued norms were
609
+ - Fix #2439: fix a bug in `complexEigs` in which real-valued norms were
642
610
  inadvertently being typed as complex numbers (#2445). Thanks @gwhitney.
643
611
  - Fix #2436: improve documentation and error message of function `map` (#2457).
644
612
  Thanks @gwhitney.
645
613
 
646
-
647
614
  # 2022-03-01, version 10.2.0
648
615
 
649
- - Implemented context options to control simplifications allowed in `simplify`,
616
+ - Implemented context options to control simplifications allowed in `simplify`,
650
617
  see #2399, #2391. Thanks @gwhitney.
651
- - Implemented function `leafCount` as a first simple measure of the complexity
618
+ - Implemented function `leafCount` as a first simple measure of the complexity
652
619
  of an expression, see #2411, #2389. Thanks @gwhitney.
653
620
  - Fix #2413: improve `combinations` to return an integer result without rounding
654
621
  errors for larger values, see #2414. Thanks @gwhitney.
655
- - Fix #2385: function `rotate` missing in TypeScript definitions.
622
+ - Fix #2385: function `rotate` missing in TypeScript definitions.
656
623
  Thanks @DIVYA-19.
657
624
  - Fix #2450: Add BigNumber to parameter type in `math.unit` and add TypeScript
658
625
  types for `Unit.simplify` and `Unit.units` (#2353). Thanks @joshhansen.
659
626
  - Fix #2383: detect infinite loops in `simplify` (#2405). Thanks @gwhitney.
660
- - Fix #1423: collect like factors and cancel like terms in sums (#2388).
627
+ - Fix #1423: collect like factors and cancel like terms in sums (#2388).
661
628
  Thanks @gwhitney.
662
629
 
663
-
664
630
  # 2022-02-02, version 10.1.1
665
631
 
666
632
  - Improvements and fixes in function `simplify`, thanks @gwhitney:
667
633
  - Fix #2393: regression bug in `simplify('2-(x+1)')`.
668
634
  - Ad option `consoleDebug` to `simplify` to see what is going on.
669
- - Fix TypeScript definition of `ConfigOptions`, which was missing option
635
+ - Fix TypeScript definition of `ConfigOptions`, which was missing option
670
636
  `predictable`.
671
637
 
672
-
673
638
  # 2022-01-15, version 10.1.0
674
639
 
675
640
  - Implemented function `invmod`, see #2368, #1744. Thanks @thetazero.
@@ -680,29 +645,26 @@ Non-breaking changes:
680
645
  - Fix #2379: add embedded documentation for function `print`.
681
646
  - Remove broken example from the embedded documentation of function `forEach`.
682
647
 
683
-
684
648
  # 2021-12-29, version 10.0.2
685
649
 
686
650
  - Fix #2156: simplify expressions like `-1 / (-x)` to `1/x`. Thanks @ony3000.
687
651
  - Fix #2363: remove a redundant part of the regex to split a number.
688
- - Fix #2291: add support for fractions in function `intersect`.
652
+ - Fix #2291: add support for fractions in function `intersect`.
689
653
  Thanks @thetazero.
690
654
  - Fix #2358: bug in `SparseMatrix` when replacing a subset of a matrix with
691
655
  a non-consecutive index. Thanks @Al-0.
692
656
 
693
-
694
657
  # 2021-12-22, version 10.0.1
695
658
 
696
659
  - Fix #1681: function `gamma` giving inaccurate complex results in some cases.
697
660
  Thanks @kmdrGroch.
698
661
  - Fixed a typo in an example, see #2366. Thanks @blackwindforce.
699
662
 
700
-
701
663
  # 2021-11-03, version 10.0.0
702
664
 
703
665
  !!! BE CAREFUL: BREAKING CHANGES IN THE TYPESCRIPT DEFINITIONS !!!
704
666
 
705
- - Improvements to the Typescript typings (commit fc5c202e).
667
+ - Improvements to the Typescript typings (commit fc5c202e).
706
668
  Thanks @joshhansen. First introduced in v9.5.1, but reverted because
707
669
  it contains breaking changes.
708
670
 
@@ -711,51 +673,45 @@ Non-breaking changes:
711
673
 
712
674
  - Fixed a typo in the TypeScript definition of toHTML. Thanks @TheToto.
713
675
 
714
-
715
676
  # 2021-11-03, version 9.5.2`
716
677
 
717
678
  - Revert the improvements to the Typescript typings because they contain
718
679
  breaking changes. The improvements will be published in v10.0.0. See #2339.
719
680
 
720
-
721
681
  # 2021-10-13, version 9.5.1
722
682
 
723
- - Various improvements to the Typescript typings.
683
+ - Various improvements to the Typescript typings.
724
684
  Thanks @joshhansen and @DianaTdr.
725
685
 
726
-
727
686
  # 2021-09-22, version 9.5.0
728
687
 
729
- - Implemented support for calculations with percentage, see #2303.
688
+ - Implemented support for calculations with percentage, see #2303.
730
689
  Thanks @rvramesh.
731
- - Fix #2319: make the API of `Parser.evaluate` consistent with `math.evaluate`:
690
+ - Fix #2319: make the API of `Parser.evaluate` consistent with `math.evaluate`:
732
691
  support a list with expressions as input.
733
692
  - Improved documentation of function `setCartesian`. Thanks @fieldfoxWim.
734
693
 
735
-
736
694
  # 2021-09-15, version 9.4.5
737
695
 
738
- - Improved the performance of `Node.equals` by improving the internal
696
+ - Improved the performance of `Node.equals` by improving the internal
739
697
  function `deepStrictEqual`. Thanks @tomlarkworthy.
740
698
  - Fixes in the TypeScript definitions:
741
- - Define `hasNumericValue`. Thanks @write2kcl.
699
+ - Define `hasNumericValue`. Thanks @write2kcl.
742
700
  - Define `MathNode.isRelationalNode`. Thanks @m93a.
743
701
  - Fix typo in `MathNode.isConditionalNode`. Thanks @m93a.
744
702
 
745
-
746
703
  # 2021-07-07, version 9.4.4
747
704
 
748
- - Fixed `ArrayNode.toTex()`: remove the row delimiter on the last row,
705
+ - Fixed `ArrayNode.toTex()`: remove the row delimiter on the last row,
749
706
  see #2267. Thanks @davidtranhq.
750
707
  - Fix #2269: `intersect` not returning `null` for matrix input. Thanks @m93a.
751
708
  - Fix #2245: mathjs not working in IE11 anymore due to a missing polyfill for
752
- `Symbol`. The browser bundle now includes the necessary polyfills (it is
709
+ `Symbol`. The browser bundle now includes the necessary polyfills (it is
753
710
  larger now because of that, see also #2266). Thanks @m93a.
754
711
  - Update dependencies (`complex.js@2.0.15`, `decimal.js@10.3.1`)
755
- - Drop official support for node.js 10, which has reached end of life.
712
+ - Drop official support for node.js 10, which has reached end of life.
756
713
  See #2258.
757
714
 
758
-
759
715
  # 2021-06-23, version 9.4.3
760
716
 
761
717
  - Fix #2222: mathjs polluting the `Decimal` prototype. Thanks @m93a.
@@ -763,17 +719,15 @@ Non-breaking changes:
763
719
  properties named `e`.
764
720
  - Fixes in the TypeScript definitions:
765
721
  - function `floor`, #2159, #2246. Thanks @write2kcl.
766
- - function `simplify`, see #2252. Thanks @nitroin.
722
+ - function `simplify`, see #2252. Thanks @nitroin.
767
723
  - Upgraded to `decimal.js@10.3.0`
768
724
 
769
-
770
725
  # 2021-06-05, version 9.4.2
771
726
 
772
- - Implemented iterative eigenvalue finder for `eigs`, making it much more
727
+ - Implemented iterative eigenvalue finder for `eigs`, making it much more
773
728
  robust. See #2179, #2237. Thanks @m93a.
774
729
  - Improved TypeScript definitions of function `parse`. Thanks @OpportunityLiu.
775
730
 
776
-
777
731
  # 2021-05-24, version 9.4.1
778
732
 
779
733
  - Fix #2100: add TypeScript declaration for `eigs`. Thanks @andrebianchessi.
@@ -781,71 +735,64 @@ Non-breaking changes:
781
735
  - Update readme regarding TypeScript definition files. Thanks @dhritzkiv.
782
736
  - Update to `fraction.js@4.1.1`
783
737
 
784
-
785
738
  # 2021-05-16, version 9.4.0
786
739
 
787
- - Implemented support to use objects with a `Map` interface as scope,
740
+ - Implemented support to use objects with a `Map` interface as scope,
788
741
  see #2143, #2166. Thanks @jhugman.
789
742
  - Extend `eigs` to support general complex matrices, see #1741. Thanks @m93a.
790
743
  - DenseMatrix and SparseMatrix are now iterable, see #1184. Thanks @m93a.
791
- - Implemented utility functions `matrixFromRows`, `matrixFromColumns`, and
744
+ - Implemented utility functions `matrixFromRows`, `matrixFromColumns`, and
792
745
  `matrixFromFunction`, see #2155, #2153. Thanks @m93a.
793
746
  - Added TypeScript definitions to the project, making it redundant to install
794
- `@types/mathjs`, and making it easier to improve the definitions. See #2187,
747
+ `@types/mathjs`, and making it easier to improve the definitions. See #2187,
795
748
  #2192. Thanks @CatsMiaow.
796
749
  - Upgraded dependencies
797
750
  - `complex.js@2.0.13` (fixing #2211). Thanks @infusion
798
751
  - `fraction.js@4.1.0` (`pow` now supporting rational exponents).
799
752
  - Fix #2174: function `pickRandom` having no name. Thanks @HK-SHAO.
800
753
  - Fix #2019: VSCode auto import keeps adding import { null } from 'mathjs'.
801
- - Fix #2185: Fix TypeScript definition of unit division, which can also return
754
+ - Fix #2185: Fix TypeScript definition of unit division, which can also return
802
755
  a number.
803
756
  - Fix #2123: add type definitions for functions `row` and `column`.
804
757
  - Fix some files not exposed in the package, see #2213. Thanks @javiermarinros.
805
758
 
806
-
807
759
  # 2021-04-12, version 9.3.2
808
760
 
809
- - Fix #2169: mathjs requesting `@babel/runtime` dependency.
761
+ - Fix #2169: mathjs requesting `@babel/runtime` dependency.
810
762
  Regression introduced in `v9.3.1`.
811
763
 
812
-
813
764
  # 2021-04-10, version 9.3.1
814
765
 
815
- - Fix #2133: strongly improved the performance of `isPrime`, see #2139.
766
+ - Fix #2133: strongly improved the performance of `isPrime`, see #2139.
816
767
  Thanks @Yaffle.
817
768
  - Fix #2150: give a clear error "Error: Undefined function ..." instead when
818
769
  evaluating a non-existing function.
819
- - Fix #660: expose internal functions `FunctionNode.onUndefinedFunction(name)`
770
+ - Fix #660: expose internal functions `FunctionNode.onUndefinedFunction(name)`
820
771
  and `SymbolNode.onUndefinedSymbol(name)`, allowing to override the behavior.
821
772
  By default, an Error is thrown.
822
773
 
823
-
824
774
  # 2021-03-10, version 9.3.0
825
775
 
826
776
  - Implemented support for parsing non decimal numbers with radix point,
827
777
  see #2122, #2121. Thanks @clnhlzmn.
828
778
  - Fix #2128: typo in docs of `luSolveAll` and `usolveAll`.
829
779
 
830
-
831
780
  # 2021-02-03, version 9.2.0
832
781
 
833
- - Implemented function `count` to count the total elements in a matrix,
782
+ - Implemented function `count` to count the total elements in a matrix,
834
783
  see #2085. Thanks @Josef37.
835
784
  - Fix #2096: cleanup old reference to external dependency `crypto`.
836
- - Some refactoring in the code to remove duplications, see #2093.
785
+ - Some refactoring in the code to remove duplications, see #2093.
837
786
  Thanks @Josef37.
838
787
 
839
-
840
788
  # 2021-01-27, version 9.1.0
841
789
 
842
790
  - Extended function `reshape` with support for a wildcard `-1` to automatically
843
- calculate the remaining size, like `reshape([1, 2, 3, 4, 5, 6], [-1, 2])`
791
+ calculate the remaining size, like `reshape([1, 2, 3, 4, 5, 6], [-1, 2])`
844
792
  which will output `[[0, 1], [2, 3], [4, 5]]`. See #2075. Thanks @Josef37.
845
793
  - Fix #2087: function `simplify` ignores second argument of `log`, for example
846
794
  in `simplify('log(e, 9)')` . Thanks @quentintruong.
847
795
 
848
-
849
796
  # 2021-01-16, version 9.0.0
850
797
 
851
798
  - Improved support for bin, hex, and oct literals. See #1996. Thanks @clnhlzmn.
@@ -854,188 +801,169 @@ Non-breaking changes:
854
801
  suffix specifying the word size such as `i16` or `i32`.
855
802
  - Function `format` now supports more notations: `bin`, 'hex', and `oct`,
856
803
  for example `format(255, {notation: "hex"})`.
857
- - The functions `format`, `bin`, `hex`, `oct` now allow specifying a wordSize,
804
+ - The functions `format`, `bin`, `hex`, `oct` now allow specifying a wordSize,
858
805
  like `bin(10, 32)` and `format(10, {notation: "bin", wordSize: 32})`.
859
- - BigNumber support for the bin, hex, and oct literals.
806
+ - BigNumber support for the bin, hex, and oct literals.
860
807
  - Extended and improved the example rocket_trajectory_optimization.html.
861
808
  Thanks @Josef37.
862
809
 
863
-
864
810
  # 2020-12-30, version 8.1.1
865
811
 
866
- - Improved the performance of parsing and evaluating units a lot, see #2065.
812
+ - Improved the performance of parsing and evaluating units a lot, see #2065.
867
813
  Thanks @flaviut.
868
- - Upgraded dependency `fraction.js` to `v4.0.13`.
869
- - Moved continuous integration testing from Travis CI to Github Workflow,
814
+ - Upgraded dependency `fraction.js` to `v4.0.13`.
815
+ - Moved continuous integration testing from Travis CI to Github Workflow,
870
816
  see #2024, #2041. Thanks @harrysarson.
871
817
 
872
-
873
818
  # 2020-12-04, version 8.1.0
874
819
 
875
820
  - Implemented units `kilogramforce` (`kgf`). Thanks @rnd-debug.
876
- - Fix #2026: Implement a new option `fractionsLimit` for function `simplify`,
821
+ - Fix #2026: Implement a new option `fractionsLimit` for function `simplify`,
877
822
  defaulting to `Infinity`.
878
823
  - Improved the documentation of function `clone`. Thanks @redbar0n.
879
824
 
880
-
881
825
  # 2020-11-09, version 8.0.1
882
826
 
883
827
  - Fix #1979: missing "subset" dependency when using "mathjs/number" entry point.
884
- - Fix #2022: update pretty printing with MathJax example to the latest version
828
+ - Fix #2022: update pretty printing with MathJax example to the latest version
885
829
  of MathJax. Thanks @pkra.
886
830
 
887
-
888
831
  # 2020-11-06, version 8.0.0
889
832
 
890
833
  !!! BE CAREFUL: BREAKING CHANGES !!!
891
834
 
892
- - You can now use mathjs directly in node.js using ES modules without need for
893
- a transpiler (see #1928, #1941, #1962).
835
+ - You can now use mathjs directly in node.js using ES modules without need for
836
+ a transpiler (see #1928, #1941, #1962).
894
837
  Automatically loading either commonjs code or ES modules code is improved.
895
- All generated code is moved under `/lib`: the browser bundle is moved from
896
- `/dist` to `/lib/browser`, ES module files are moved to `/lib/esm`,
838
+ All generated code is moved under `/lib`: the browser bundle is moved from
839
+ `/dist` to `/lib/browser`, ES module files are moved to `/lib/esm`,
897
840
  and commonjs files are moved to `/lib/cjs`. Thanks @GreenImp.
898
841
  - Non-minified bundle `dist/math.js` is no longer provided. Either use the
899
842
  minified bundle, or create a bundle yourself.
900
- - Replaced random library `seed-random` with `seedrandom`, see #1955.
843
+ - Replaced random library `seed-random` with `seedrandom`, see #1955.
901
844
  Thanks @poppinlp.
902
845
  - Breaking changes in `pickRandom`, see #1990, #1976.
903
- - Will no longer return the input matrix when the given number is greater
846
+ - Will no longer return the input matrix when the given number is greater
904
847
  than the length of the provided possibles. Instead, the function always
905
848
  returns results with the requested number of picks.
906
849
  - Will now return a `Matrix` as output when input was a `Matrix`.
907
850
  - Introduced a new syntax:
908
-
851
+
909
852
  ```
910
853
  math.pickRandom(array, { weights, number, elementWise })
911
854
  ```
912
- - Introduced a new option `elementWise`, which is `true` by default.
855
+
856
+ - Introduced a new option `elementWise`, which is `true` by default.
913
857
  When setting `elementWise` to false, an array containing arrays will return
914
858
  random pick of arrays instead of the elements inside of the nested arrays.
915
859
 
916
-
917
860
  # 2020-11-02, version 7.6.0
918
861
 
919
- - Implemented function `rotate(w, theta)`. See #1992, #1160. Thanks @rnd-debug.
920
- - Implemented support for custom characters in Units via `Unit.isValidAlpha`.
862
+ - Implemented function `rotate(w, theta)`. See #1992, #1160. Thanks @rnd-debug.
863
+ - Implemented support for custom characters in Units via `Unit.isValidAlpha`.
921
864
  See #1663, #2000. Thanks @rnd-debug.
922
865
 
923
-
924
866
  # 2020-10-10, version 7.5.1
925
867
 
926
868
  - Fix object pollution vulnerability in `math.config`. Thanks Snyk.
927
869
 
928
-
929
870
  # 2020-10-07, version 7.5.0
930
871
 
931
- - Function `pickRandom` now allows randomly picking elements from matrices
872
+ - Function `pickRandom` now allows randomly picking elements from matrices
932
873
  with 2 or more dimensions instead of only from a vector, see #1974.
933
874
  Thanks @KonradLinkowski.
934
875
 
935
-
936
876
  # 2020-10-07, version 7.4.0
937
877
 
938
- - Implemented support for passing a precision in functions `ceil`, `floor`,
878
+ - Implemented support for passing a precision in functions `ceil`, `floor`,
939
879
  and `fix`, similar to `round`, see #1967, #1901. Thanks @rnd-debug.
940
880
  - Implemented function `rotationMatrix`, see #1160, #1984. Thanks @rnd-debug.
941
- - Implement a clear error message when using `sqrtm` with a matrix having
881
+ - Implement a clear error message when using `sqrtm` with a matrix having
942
882
  more than two dimensions. Thanks @KonradLinkowski.
943
883
  - Update dependency `decimal.js` to `10.2.1`.
944
884
 
945
-
946
885
  # 2020-09-26, version 7.3.0
947
886
 
948
887
  - Implemented functions `usolveAll` and `lsolveAll`, see #1916. Thanks @m93a.
949
- - Implemented support for units in functions `std` and `variance`, see #1950.
888
+ - Implemented support for units in functions `std` and `variance`, see #1950.
950
889
  Thanks @rnd-debug.
951
- - Implemented support for binary, octal, and hexadecimal notation in the
952
- expression parser, and implemented functions `bin`, `oct`, and `hex` for
890
+ - Implemented support for binary, octal, and hexadecimal notation in the
891
+ expression parser, and implemented functions `bin`, `oct`, and `hex` for
953
892
  formatting. Thanks @clnhlzmn.
954
- - Fix #1964: inconsistent calculation of negative dividend modulo for
893
+ - Fix #1964: inconsistent calculation of negative dividend modulo for
955
894
  `BigNumber` and `Fraction`. Thanks @ovk.
956
895
 
957
-
958
896
  # 2020-08-24, version 7.2.0
959
897
 
960
- - Implemented new function `diff`, see #1634, #1920. Thanks @Veeloxfire.
961
- - Implemented support for norm 2 for matrices in function `norm`.
962
- Thanks @rnd-debug.
963
-
898
+ - Implemented new function `diff`, see #1634, #1920. Thanks @Veeloxfire.
899
+ - Implemented support for norm 2 for matrices in function `norm`.
900
+ Thanks @rnd-debug.
964
901
 
965
902
  # 2020-07-13, version 7.1.0
966
903
 
967
- - Implement support for recursion (self-referencing) of typed-functions,
968
- new in `typed-function@2.0.0`. This fixes #1885: functions which where
904
+ - Implement support for recursion (self-referencing) of typed-functions,
905
+ new in `typed-function@2.0.0`. This fixes #1885: functions which where
969
906
  extended with a new data type did not always work. Thanks @nickewing.
970
- - Fix #1899: documentation on expression trees still using old namespace
907
+ - Fix #1899: documentation on expression trees still using old namespace
971
908
  `math.expression.node.*` instead of `math.*`.
972
909
 
973
-
974
910
  # 2020-06-24, version 7.0.2
975
911
 
976
- - Fix #1882: have `DenseMatrix.resize` and `SparseMatrix.resize` accept
912
+ - Fix #1882: have `DenseMatrix.resize` and `SparseMatrix.resize` accept
977
913
  `DenseMatrix` and `SparseMatrix` as inputs too, not only `Array`.
978
914
  - Fix functions `sum`, `prod`, `min`, and `max` not throwing a conversion error
979
915
  when passing a single string, like `sum("abc")`.
980
916
 
981
-
982
917
  # 2020-05-30, version 7.0.1
983
918
 
984
919
  - Fix #1844: clarify the documentation of function `eigs`. Thanks @Lazersmoke.
985
920
  - Fix #1855: Fix error in the documentation for `math.nthRoots(x)`.
986
921
  - Fix #1856: make the library robust against Object prototype pollution.
987
922
 
988
-
989
923
  # 2020-05-07, version 7.0.0
990
924
 
991
925
  Breaking changes:
992
926
 
993
- - Improvements in calculation of the `dot` product of complex values.
927
+ - Improvements in calculation of the `dot` product of complex values.
994
928
  The first argument is now conjugated. See #1761. Thanks @m93a.
995
929
  - Dropped official support for Node.js v8 which has reached end of life.
996
- - Removed all deprecation warnings introduced in v6.
930
+ - Removed all deprecation warnings introduced in v6.
997
931
  To upgrade smoothly from v5 to v7 or higher, upgrade to v6 first
998
932
  and resolve all deprecation warnings.
999
933
 
1000
-
1001
934
  # 2020-05-04, version 6.6.5
1002
935
 
1003
- - Fix #1834: value `Infinity` cannot be serialized and deserialized.
1004
- This is solved now with a new `math.replacer` function used as
936
+ - Fix #1834: value `Infinity` cannot be serialized and deserialized.
937
+ This is solved now with a new `math.replacer` function used as
1005
938
  `JSON.stringify(value, math.replacer)`.
1006
939
  - Fix #1842: value `Infinity` not turned into the latex symbol `\\infty`.
1007
940
 
1008
-
1009
941
  # 2020-04-15, version 6.6.4
1010
942
 
1011
943
  - Fix published files containing Windows line endings (CRLF instead of LF).
1012
944
 
1013
-
1014
945
  # 2020-04-10, version 6.6.3
1015
946
 
1016
947
  - Fix #1813: bug in engineering notation for numbers of function `format`,
1017
948
  sometimes resulting in needless trailing zeros.
1018
- - Fix #1808: methods `.toNumber()` and `.toNumeric()` not working on a
949
+ - Fix #1808: methods `.toNumber()` and `.toNumeric()` not working on a
1019
950
  unitless unit.
1020
951
  - Fix #1645: not being able to use named operators `mod`, `and`, `not`, `or`,
1021
952
  `xor`, `to`, `in` as object keys. Thanks @Veeloxfire.
1022
953
  - Fix `eigs` not using `config.epsilon`.
1023
954
 
1024
-
1025
955
  # 2020-03-29, version 6.6.2
1026
956
 
1027
- - Fix #1789: Function `eigs` not calculating with BigNumber precision
957
+ - Fix #1789: Function `eigs` not calculating with BigNumber precision
1028
958
  when input contains BigNumbers.
1029
959
  - Run the build script during npm `prepare`, so you can use the library
1030
960
  directly when installing directly from git. See #1751. Thanks @cinderblock.
1031
961
 
1032
-
1033
962
  # 2020-02-26, version 6.6.1
1034
963
 
1035
964
  - Fix #1725: simplify `a/(b/c)`. Thanks @dbramwell.
1036
965
  - Fix examples in documentation of `row` and `column`.
1037
966
 
1038
-
1039
967
  # 2020-02-01, version 6.6.0
1040
968
 
1041
969
  - Implemented function `eigs`, see #1705, #542 #1175. Thanks @arkajitmandal.
@@ -1046,32 +974,27 @@ Breaking changes:
1046
974
  - Add a caret to dependencies (like) `^1.2.3`) to allow downstream updates
1047
975
  without having to await a new release of mathjs.
1048
976
 
1049
-
1050
977
  # 2020-01-08, version 6.5.0
1051
978
 
1052
979
  - Implemented `baseName` option for `createUnit`, see #1707.
1053
980
  Thanks @ericman314.
1054
981
 
1055
-
1056
982
  # 2020-01-06, version 6.4.0
1057
983
 
1058
984
  - Extended function `dimension` with support for n-dimensional points.
1059
985
  Thanks @Veeloxfire.
1060
986
 
1061
-
1062
987
  # 2019-12-31, version 6.3.0
1063
988
 
1064
989
  - Improved performance of `factorial` for `BigNumber` up to a factor two,
1065
990
  see #1687. Thanks @kmdrGroch.
1066
991
 
1067
-
1068
992
  # 2019-11-20, version 6.2.5
1069
993
 
1070
994
  - Fixed `IndexNode` using a hardcoded, one-based implementation of `index`,
1071
995
  making it impossible to instantiate a zero-based version of the expression
1072
996
  parser. See #782.
1073
997
 
1074
-
1075
998
  # 2019-11-20, version 6.2.4
1076
999
 
1077
1000
  - Fixed #1669: function 'qr' threw an error if the pivot was zero,
@@ -1080,7 +1003,6 @@ Breaking changes:
1080
1003
  - Work around a bug in complex.js where `sign(0)` returns complex NaN.
1081
1004
  Thanks @harrysarson.
1082
1005
 
1083
-
1084
1006
  # 2019-10-06, version 6.2.3
1085
1007
 
1086
1008
  - Fixed #1640: function `mean` not working for units. Thanks @clintonc.
@@ -1088,7 +1010,6 @@ Breaking changes:
1088
1010
  embedded docs of function `std`.
1089
1011
  - Improved performance of `isPrime`, see #1641. Thanks @arguiot.
1090
1012
 
1091
-
1092
1013
  # 2019-09-23, version 6.2.2
1093
1014
 
1094
1015
  - Fixed methods `map` and `clone` not copying the `dotNotation` property of
@@ -1097,12 +1018,10 @@ Breaking changes:
1097
1018
  - Fixed #1615: error in the docs of `isNumeric`.
1098
1019
  - Fixed #1628: Cannot call methods on empty strings or numbers with value `0`.
1099
1020
 
1100
-
1101
1021
  # 2019-08-31, version 6.2.1
1102
1022
 
1103
1023
  - Fixed #1606: function `format` not working for expressions.
1104
1024
 
1105
-
1106
1025
  # 2019-08-28, version 6.2.0
1107
1026
 
1108
1027
  - Improved performance of `combinationsWithRep`. Thanks @waseemyusuf.
@@ -1110,18 +1029,15 @@ Breaking changes:
1110
1029
  - Fix docs referring to `bit` and `byte` instead of `bits` and `bytes`.
1111
1030
  - Updated dependency `typed-function@1.1.1`.
1112
1031
 
1113
-
1114
1032
  # 2019-08-17, version 6.1.0
1115
1033
 
1116
1034
  - Implemented function `combinationsWithRep` (see #1329). Thanks @waseemyusuf.
1117
1035
 
1118
-
1119
1036
  # 2019-08-05, version 6.0.4
1120
1037
 
1121
1038
  - Fixed #1554, #1565: ES Modules where not transpiled to ES5, giving issues on
1122
1039
  old browsers. Thanks @mockdeep for helping to find a solution.
1123
1040
 
1124
-
1125
1041
  # 2019-07-07, version 6.0.3
1126
1042
 
1127
1043
  - Add `unpkg` and `jsdelivr` fields in package.json pointing to UMD build.
@@ -1129,26 +1045,23 @@ Breaking changes:
1129
1045
  - Fix #1550: nested user defined function not receiving variables of an
1130
1046
  outer user defined function.
1131
1047
 
1132
-
1133
1048
  # 2019-06-11, version 6.0.2
1134
1049
 
1135
1050
  - Fix not being able to set configuration after disabling function `import`
1136
1051
  (regression since v6.0.0).
1137
1052
 
1138
-
1139
1053
  # 2019-06-09, version 6.0.1
1140
1054
 
1141
1055
  - Fix function reference not published in npm library.
1142
1056
  - Fix function `evaluate` and `parse` missing in generated docs.
1143
1057
 
1144
-
1145
1058
  # 2019-06-08, version 6.0.0
1146
1059
 
1147
1060
  !!! BE CAREFUL: BREAKING CHANGES !!!
1148
1061
 
1149
1062
  ### Most notable changes
1150
1063
 
1151
- 1. Full support for **ES modules**. Support for tree-shaking out of the box.
1064
+ 1. Full support for **ES modules**. Support for tree-shaking out of the box.
1152
1065
 
1153
1066
  Load all functions:
1154
1067
 
@@ -1181,14 +1094,13 @@ Breaking changes:
1181
1094
  }, config)
1182
1095
  ```
1183
1096
 
1184
- 2. Support for **lightweight, number-only** implementations of all functions:
1097
+ 2. Support for **lightweight, number-only** implementations of all functions:
1185
1098
 
1186
1099
  ```
1187
1100
  import { add, multiply } from 'mathjs/number'
1188
1101
  ```
1189
1102
 
1190
- 3. New **dependency injection** solution used under the hood.
1191
-
1103
+ 3. New **dependency injection** solution used under the hood.
1192
1104
 
1193
1105
  ### Breaking changes
1194
1106
 
@@ -1268,32 +1180,27 @@ Breaking changes:
1268
1180
  and after that rounded the value instead of the other way around.
1269
1181
  - Fix #1473: remove `'use strict'` in every file, not needed anymore.
1270
1182
 
1271
-
1272
1183
  # 2019-05-18, version 5.10.3
1273
1184
 
1274
1185
  - Fixed dependency `del` being a dependency instead of devDependency.
1275
1186
 
1276
-
1277
1187
  # 2019-05-18, version 5.10.2
1278
1188
 
1279
1189
  - Fix #1515, #1516, #1517: broken package due to a naming conflict in
1280
1190
  the build folder of a util file `typeOf.js` and `typeof.js`.
1281
1191
  Solved by properly cleaning all build folders before building.
1282
1192
 
1283
-
1284
1193
  # 2019-05-17, version 5.10.1
1285
1194
 
1286
1195
  - Fix #1512: format using notation `engineering` can give wrong results
1287
1196
  when the value has less significant digits than the number of digits in
1288
1197
  the output.
1289
1198
 
1290
-
1291
1199
  # 2019-05-08, version 5.10.0
1292
1200
 
1293
1201
  - Fix `lib/header.js` not having filled in date and version. Thanks @kevjin.
1294
1202
  - Upgraded dependency `decimal.js@10.2.0`, fixing an issue on node.js 12.
1295
1203
 
1296
-
1297
1204
  # 2019-04-08, version 5.9.0
1298
1205
 
1299
1206
  - Implemented functions `row` and `column` (see #1413). Thanks @SzechuanSage.
@@ -1302,28 +1209,24 @@ Breaking changes:
1302
1209
  - Fixed #1465: `node.toHTML()` not correct for unary operators like
1303
1210
  `factorial`.
1304
1211
 
1305
-
1306
1212
  # 2019-03-20, version 5.8.0
1307
1213
 
1308
1214
  - Implemented new function `apply`. Thanks @bnlcas.
1309
1215
  - Implemented passing an optional `dimension` argument to `std` and `var`.
1310
1216
  Thanks @bnlcas.
1311
1217
 
1312
-
1313
1218
  # 2019-03-10, version 5.7.0
1314
1219
 
1315
1220
  - Implemented support for `pow()` in `derivative`. Thanks @sam-19.
1316
1221
  - Gracefully handle round-off errors in fix, ceil, floor, and range
1317
1222
  (Fixes #1429, see also #1434, #1432). Thanks @ericman314.
1318
1223
 
1319
-
1320
1224
  # 2019-03-02, version 5.6.0
1321
1225
 
1322
1226
  - Upgrade decimal.js to v10.1.1 (#1421).
1323
1227
  - Fixed #1418: missing whitespace when stringifying an expression
1324
1228
  containing "not".
1325
1229
 
1326
-
1327
1230
  # 2019-02-20, version 5.5.0
1328
1231
 
1329
1232
  - Fixed #1401: methods `map` and `forEach` of `SparseMatrix` not working
@@ -1331,7 +1234,6 @@ Breaking changes:
1331
1234
  - Fixed #1404: inconsistent rounding of negative numbers.
1332
1235
  - Upgrade tiny-emitter to v2.1.0 (#1397).
1333
1236
 
1334
-
1335
1237
  # 2019-01-25, version 5.4.2
1336
1238
 
1337
1239
  - Fixed `math.format` not working for BigNumbers with a precision above
@@ -1340,13 +1242,11 @@ Breaking changes:
1340
1242
  - Fixed a bug the methods `map`, `forEach`, `traverse`, and `transform`
1341
1243
  of `FunctionNode`.
1342
1244
 
1343
-
1344
1245
  # 2019-01-10, version 5.4.1
1345
1246
 
1346
1247
  - Fix #1378: negative bignumbers not formatted correctly.
1347
1248
  - Upgrade fraction.js to version 4.0.12 (#1369).
1348
1249
 
1349
-
1350
1250
  # 2018-12-09, version 5.4.0
1351
1251
 
1352
1252
  - Extended sum.js to accept a dimension input to calculate the sum over a
@@ -1355,13 +1255,11 @@ Breaking changes:
1355
1255
  - Remove side effects caused by `Unit.format` and `Unit.toString`,
1356
1256
  making changes to the unit on execution. Thanks @ericman314.
1357
1257
 
1358
-
1359
1258
  # 2018-12-03, version 5.3.1
1360
1259
 
1361
1260
  - Fixed #1336: Unit.toSI() returning units with prefix like `mm` instead
1362
1261
  of `m`. Thanks @ericman314.
1363
1262
 
1364
-
1365
1263
  # 2018-11-29, version 5.3.0
1366
1264
 
1367
1265
  - Implemented function `hasNumericValue`. Thanks @Sathish-kumar-Subramani.
@@ -1369,7 +1267,6 @@ Breaking changes:
1369
1267
  - Fix #1337: `math.format` not working correctly with `{ precision: 0 }`.
1370
1268
  Thanks @dkenul.
1371
1269
 
1372
-
1373
1270
  # 2018-10-30, version 5.2.3
1374
1271
 
1375
1272
  - Fixed #1293: non-unicode characters in `escape-latex` giving issues in some
@@ -1378,13 +1275,11 @@ Breaking changes:
1378
1275
  - Fixed #1304: function `pow` not supporting inputs `pow(Unit, BigNumber)`.
1379
1276
  - Upgraded dependencies (`escape-latex@1.2.0`)
1380
1277
 
1381
-
1382
1278
  # 2018-10-23, version 5.2.2
1383
1279
 
1384
1280
  - Fixed #1286: Fixed unit base recognition and formatting for
1385
1281
  user-defined units. Thanks @ericman314.
1386
1282
 
1387
-
1388
1283
  # 2018-10-18, version 5.2.1
1389
1284
 
1390
1285
  - Fixed unit `rod` being defined as `5.02921` instead of `5.0292`.
@@ -1393,7 +1288,6 @@ Breaking changes:
1393
1288
  - Upgraded devDependencies (`@babel/core@7.1.2`, `nyc@13.1.0`,
1394
1289
  `webpack@4.21.0`).
1395
1290
 
1396
-
1397
1291
  # 2018-10-05, version 5.2.0
1398
1292
 
1399
1293
  - Implemented support for chained conditionals like `10 < x <= 50`.
@@ -1403,7 +1297,6 @@ Breaking changes:
1403
1297
  - Fixed #1240: allow units having just a value and no unit.
1404
1298
  Thanks @ericman314.
1405
1299
 
1406
-
1407
1300
  ## 2018-09-09, version 5.1.2
1408
1301
 
1409
1302
  - Fixed a typo in the docs of `parse`. Thanks @mathiasvr.
@@ -1415,7 +1308,6 @@ Breaking changes:
1415
1308
  - Upgraded devDependencies (`babel@7`, `karma-webpack@3.0.4`,
1416
1309
  `nyc@13.0.1`, `standard@12.0.0`, `uglify-js@3.4.9`, `webpack@4.17.2`)
1417
1310
 
1418
-
1419
1311
  ## 2018-08-21, version 5.1.1
1420
1312
 
1421
1313
  - Function `isNumeric` now recognizes more types.
@@ -1426,7 +1318,6 @@ Breaking changes:
1426
1318
  - Upgraded dependencies (`escape-latex@1.1.1`)
1427
1319
  - Upgraded devDependencies (`webpack@4.17.0`)
1428
1320
 
1429
-
1430
1321
  ## 2018-08-12, version 5.1.0
1431
1322
 
1432
1323
  - Implemented support for strings enclosed in single quotes.
@@ -1435,7 +1326,6 @@ Breaking changes:
1435
1326
  - Implemented new `options` argument in `simplify`. Thanks @paulobuchsbaum.
1436
1327
  - Bug fixes in `rationalize`, see #1173. Thanks @paulobuchsbaum.
1437
1328
 
1438
-
1439
1329
  ## 2018-07-22, version 5.0.4
1440
1330
 
1441
1331
  - Strongly improved the performance of functions `factorial` for numbers.
@@ -1444,7 +1334,6 @@ Breaking changes:
1444
1334
  - Strongly improved the performance of function `reshape`, thanks to a
1445
1335
  friend of @honeybar.
1446
1336
 
1447
-
1448
1337
  ## 2018-07-14, version 5.0.3
1449
1338
 
1450
1339
  - Fixed many functions (for example `add` and `subtract`) not working
@@ -1458,7 +1347,6 @@ Breaking changes:
1458
1347
  Thanks @harrysarson.
1459
1348
  - Changed `decimal.js` import to ES6. Thanks @weinshel.
1460
1349
 
1461
-
1462
1350
  ## 2018-07-07, version 5.0.2
1463
1351
 
1464
1352
  - Fixed #1136: rocket trajectory example broken (since v4.0.0).
@@ -1472,16 +1360,14 @@ Breaking changes:
1472
1360
  Thanks @ChristopherChudzicki.
1473
1361
  - Fixed a broken link in the documentation on units. Thanks @stropitek.
1474
1362
  - Upgraded dependencies (`typed-function@1.0.4`, `complex.js@2.0.11`).
1475
- - Upgraded devDependencies (`babel-loader@7.1.5 `, `uglify-js@3.4.3`,
1363
+ - Upgraded devDependencies (`babel-loader@7.1.5`, `uglify-js@3.4.3`,
1476
1364
  `expr-eval@1.2.2`, `webpack@4.15.1`).
1477
1365
 
1478
-
1479
1366
  ## 2018-07-01, version 5.0.1
1480
1367
 
1481
1368
  - Improved error messaging when converting units. Thanks @gap777.
1482
1369
  - Upgraded devDependencies (`kerma`, `uglify-js`, `webpack`).
1483
1370
 
1484
-
1485
1371
  ## 2018-06-16, version 5.0.0
1486
1372
 
1487
1373
  !!! BE CAREFUL: BREAKING CHANGES !!!
@@ -1498,7 +1384,7 @@ Breaking changes:
1498
1384
  - Upgraded dependencies:
1499
1385
  - `decimal.js` from `9.0.1` to `10.0.1`
1500
1386
  - Upgraded dev dependencies
1501
- - Changed code style to https://standardjs.com/, run linter on `npm test`.
1387
+ - Changed code style to <https://standardjs.com/>, run linter on `npm test`.
1502
1388
  See #1110.
1503
1389
  - Dropped support for bower. Use npm or an other package manages instead.
1504
1390
  - Dropped support for (non-primitive) instances of `Number`, `Boolean`, and
@@ -1509,7 +1395,6 @@ Breaking changes:
1509
1395
  - Fixed #1103: Calling `toTex` on node that contains `derivative` causing
1510
1396
  an exception. Thanks @joelhoover.
1511
1397
 
1512
-
1513
1398
  ## 2018-06-02, version 4.4.2
1514
1399
 
1515
1400
  - Drastically improved the performance of `det`. Thanks @ericman314.
@@ -1518,18 +1403,15 @@ Breaking changes:
1518
1403
  - Fixed #1122 a regression in function `inv` (since `v4.4.1`).
1519
1404
  Thanks @ericman314.
1520
1405
 
1521
-
1522
1406
  ## 2018-05-29, version 4.4.1
1523
1407
 
1524
1408
  - Fixed #1109: a bug in `inv` when dealing with values close to zero.
1525
1409
  Thanks @ericman314.
1526
1410
 
1527
-
1528
1411
  ## 2018-05-28, version 4.4.0
1529
1412
 
1530
1413
  - Implemented functions `equalText` and `compareText`. See #1085.
1531
1414
 
1532
-
1533
1415
  ## 2018-05-21, version 4.3.0
1534
1416
 
1535
1417
  - Implemented matrix exponential `math.expm`. Thanks @ericman314.
@@ -1539,7 +1421,6 @@ Breaking changes:
1539
1421
  - `fraction.js` from `v4.0.4` to `v4.0.8`.
1540
1422
  - Upgraded devDependencies (`mocha`, `uglify-js`, `webpack`).
1541
1423
 
1542
-
1543
1424
  ## 2018-05-05, version 4.2.2
1544
1425
 
1545
1426
  - Fixed calculating the Frobenius norm of complex matrices correctly,
@@ -1547,12 +1428,10 @@ Breaking changes:
1547
1428
  - Fixed #1076: cannot use mathjs in React VR by updating to
1548
1429
  `escape-latex@1.0.3`.
1549
1430
 
1550
-
1551
1431
  ## 2018-05-02, version 4.2.1
1552
1432
 
1553
1433
  - Fixed `dist/math.js` being minified.
1554
1434
 
1555
-
1556
1435
  ## 2018-05-02, version 4.2.0
1557
1436
 
1558
1437
  - Implemented function `math.sqrtm`. Thanks @ferrolho.
@@ -1562,7 +1441,6 @@ Breaking changes:
1562
1441
  - Upgraded development dependencies.
1563
1442
  - Dropped integration testing on nodejs v4.
1564
1443
 
1565
-
1566
1444
  ## 2018-04-18, version 4.1.2
1567
1445
 
1568
1446
  - Fixed #1082: implemented support for unit plurals `decades`, `centuries`,
@@ -1570,13 +1448,11 @@ Breaking changes:
1570
1448
  - Fixed #1083: units `decade` and `watt` having a wrong name when stringifying.
1571
1449
  Thanks @ericman314.
1572
1450
 
1573
-
1574
1451
  ## 2018-04-11, version 4.1.1
1575
1452
 
1576
1453
  - Fixed #1063: derivative not working when resolving a variable with unary
1577
1454
  minus like `math.derivative('-x', 'x')`.
1578
1455
 
1579
-
1580
1456
  ## 2018-04-08, version 4.1.0
1581
1457
 
1582
1458
  - Extended function `math.print` with support for arrays and matrices.
@@ -1588,13 +1464,11 @@ Breaking changes:
1588
1464
  - Fixed #1072: Added support for long and short prefixes for the unit `bar`
1589
1465
  (i.e. `millibar` and `mbar`).
1590
1466
 
1591
-
1592
1467
  ## 2018-03-17, version 4.0.1
1593
1468
 
1594
1469
  - Fixed #1062: mathjs not working on ES5 browsers like IE11 and Safari 9.3.
1595
1470
  - Fixed #1061: `math.unit` not accepting input like `1/s`.
1596
1471
 
1597
-
1598
1472
  ## 2018-02-25, version 4.0.0
1599
1473
 
1600
1474
  !!! BE CAREFUL: BREAKING CHANGES !!!
@@ -1606,52 +1480,55 @@ Breaking changes (see also #682):
1606
1480
  The compiler of the expression parser is replaced with one that doesn't use
1607
1481
  `eval` internally. See #1019. This means:
1608
1482
 
1609
- - a slightly improved performance on most browsers.
1610
- - less risk of security exploits.
1611
- - the code of the new compiler is easier to understand, maintain, and debug.
1483
+ - a slightly improved performance on most browsers.
1484
+ - less risk of security exploits.
1485
+ - the code of the new compiler is easier to understand, maintain, and debug.
1612
1486
 
1613
1487
  Breaking change here: When using custom nodes in the expression parser,
1614
1488
  the syntax of `_compile` has changed. This is an undocumented feature though.
1615
1489
 
1616
1490
  - **Parsed expressions**
1617
1491
 
1618
- - The class `ConstantNode` is changed such that it just holds a value
1492
+ - The class `ConstantNode` is changed such that it just holds a value
1619
1493
  instead of holding a stringified value and it's type.
1620
1494
  `ConstantNode(valueStr, valueType`) is now `ConstantNode(value)`
1621
1495
  Stringification uses `math.format`, which may result in differently
1622
1496
  formatted numeric output.
1623
1497
 
1624
- - The constants `true`, `false`, `null`, `undefined`, `NaN`, `Infinity`,
1498
+ - The constants `true`, `false`, `null`, `undefined`, `NaN`, `Infinity`,
1625
1499
  and `uninitialized` are now parsed as ConstantNodes instead of
1626
1500
  SymbolNodes in the expression parser. See #833.
1627
1501
 
1628
1502
  - **Implicit multiplication**
1629
1503
 
1630
- - Changed the behavior of implicit multiplication to have higher
1504
+ - Changed the behavior of implicit multiplication to have higher
1631
1505
  precedence than explicit multiplication and division, except in
1632
1506
  a number of specific cases. This gives a more natural behavior
1633
1507
  for implicit multiplications. For example `24h / 6h` now returns `4`,
1634
1508
  whilst `1/2 kg` evaluates to `0.5 kg`. Thanks @ericman314. See: #792.
1635
- Detailed documentation: https://github.com/josdejong/mathjs/blob/v4/docs/expressions/syntax.md#implicit-multiplication.
1509
+ Detailed documentation: <https://github.com/josdejong/mathjs/blob/v4/docs/expressions/syntax.md#implicit-multiplication>.
1636
1510
 
1637
- - Immediately invoking a function returned by a function like `partialAdd(2)(3)`
1511
+ - Immediately invoking a function returned by a function like `partialAdd(2)(3)`
1638
1512
  is no longer supported, instead these expressions are evaluated as
1639
1513
  an implicit multiplication `partialAdd(2) * (3)`. See #1035.
1640
1514
 
1641
1515
  - **String formatting**
1642
1516
 
1643
- - In function `math.format`, the options `{exponential: {lower: number, upper: number}}`
1517
+ - In function `math.format`, the options `{exponential: {lower: number, upper: number}}`
1644
1518
  (where `lower` and `upper` are values) are replaced with `{lowerExp: number, upperExp: number}`
1645
1519
  (where `lowerExp` and `upperExp` are exponents). See #676. For example:
1520
+
1646
1521
  ```js
1647
1522
  math.format(2000, {exponential: {lower: 1e-2, upper: 1e2}})
1648
1523
  ```
1524
+
1649
1525
  is now:
1526
+
1650
1527
  ```js
1651
1528
  math.format(2000, {lowerExp: -2, upperExp: 2})
1652
1529
  ```
1653
1530
 
1654
- - In function `math.format`, the option `notation: 'fixed'` no longer rounds to
1531
+ - In function `math.format`, the option `notation: 'fixed'` no longer rounds to
1655
1532
  zero digits when no precision is specified: it leaves the digits as is.
1656
1533
  See #676.
1657
1534
 
@@ -1672,17 +1549,17 @@ Breaking changes (see also #682):
1672
1549
 
1673
1550
  - **Null**
1674
1551
 
1675
- - `null` is no longer implicitly casted to a number `0`, so input like
1552
+ - `null` is no longer implicitly casted to a number `0`, so input like
1676
1553
  `math.add(2, null)` is no longer supported. See #830, #353.
1677
1554
 
1678
- - Dropped constant `uninitialized`, which was used to initialize
1555
+ - Dropped constant `uninitialized`, which was used to initialize
1679
1556
  leave new entries undefined when resizing a matrix is removed.
1680
1557
  Use `undefined` instead to indicate entries that are not explicitly
1681
1558
  set. See #833.
1682
1559
 
1683
1560
  - **New typed-function library**
1684
1561
 
1685
- - The `typed-function` library used to check the input types
1562
+ - The `typed-function` library used to check the input types
1686
1563
  of functions is completely rewritten and doesn't use `eval` under
1687
1564
  the hood anymore. This means a reduced security risk, and easier
1688
1565
  to debug code. The API is the same, but error messages may differ
@@ -1702,7 +1579,6 @@ Non breaking changes:
1702
1579
  - Fixed #1014: `derivative` silently dropping additional arguments
1703
1580
  from operator nodes with more than two arguments.
1704
1581
 
1705
-
1706
1582
  ## 2018-02-07, version 3.20.2
1707
1583
 
1708
1584
  - Upgraded to `typed-function@0.10.7` (bug-fix release).
@@ -1711,19 +1587,17 @@ Non breaking changes:
1711
1587
  - Fixed #995: spaces and underscores not property being escaped
1712
1588
  in `toTex()`. Thanks @FSMaxB.
1713
1589
 
1714
-
1715
1590
  ## 2018-01-17, version 3.20.1
1716
1591
 
1717
1592
  - Fixed #1018: `simplifyCore` failing in some cases with parentheses.
1718
1593
  Thanks @firepick1.
1719
1594
 
1720
-
1721
1595
  ## 2018-01-14, version 3.20.0
1722
1596
 
1723
1597
  - Implement support for 3 or more arguments for operators `+` and `*` in
1724
1598
  `derivative`. Thanks @HarrySarson. See #1002.
1725
1599
  - Fixed `simplify` evalution of `simplify` of functions with more than two
1726
- arguments wrongly: `simplify('f(x, y, z)') evaluated to `f(f(x, y), z)`
1600
+ arguments wrongly: `simplify('f(x, y, z)') evaluated to`f(f(x, y), z)`
1727
1601
  instead of `f(x, y, z)`. Thanks @joelhoover.
1728
1602
  - Fixed `simplify` throwing an error in some cases when simplifying unknown
1729
1603
  functions, for example `simplify('f(4)')`. Thanks @joelhoover.
@@ -1731,7 +1605,6 @@ Non breaking changes:
1731
1605
  minus, like `0 - -x`. Thanks @joelhoover.
1732
1606
  - Fixed an error in an example in the documentation of `xor`. Thanks @denisx.
1733
1607
 
1734
-
1735
1608
  ## 2018-01-06, version 3.19.0
1736
1609
 
1737
1610
  - Extended functions `distance` and `intersect` with support for BigNumbers.
@@ -1739,22 +1612,22 @@ Non breaking changes:
1739
1612
  - Improvements in function `simplify`: added a rule that allows combining
1740
1613
  of like terms in embedded quantities. Thanks @joelhoover.
1741
1614
 
1742
-
1743
1615
  ## 2017-12-28, version 3.18.1
1744
1616
 
1745
1617
  - Fixed #998: An issue with simplifying an expression containing a subtraction.
1746
1618
  Thanks @firepick1.
1747
1619
 
1748
-
1749
1620
  ## 2017-12-16, version 3.18.0
1750
1621
 
1751
1622
  - Implemented function `rationalize`. Thanks @paulobuchsbaum.
1752
1623
  - Upgraded dependencies:
1624
+
1753
1625
  ```
1754
1626
  decimal.js 7.2.3 → 9.0.1 (no breaking changes affecting mathjs)
1755
1627
  fraction.js 4.0.2 → 4.0.4
1756
1628
  tiny-emitter 2.0.0 → 2.0.2
1757
1629
  ```
1630
+
1758
1631
  - Upgraded dev dependencies.
1759
1632
  - Fixed #975: a wrong example in the docs of lusolve.
1760
1633
  - Fixed #983: `pickRandom` returning an array instead of single value
@@ -1762,7 +1635,6 @@ Non breaking changes:
1762
1635
  - Fixed #969: preven issues with yarn autoclean by renaming an
1763
1636
  interally used folder "docs" to "embeddedDocs".
1764
1637
 
1765
-
1766
1638
  ## 2017-11-18, version 3.17.0
1767
1639
 
1768
1640
  - Improved `simplify` for nested exponentiations. Thanks @IvanVergiliev.
@@ -1773,20 +1645,17 @@ Non breaking changes:
1773
1645
  replaced by using unicode characters when creating an object. No known exploit,
1774
1646
  but could possibly allow arbitrary code execution. Thanks Masato Kinugawa.
1775
1647
 
1776
-
1777
1648
  ## 2017-10-18, version 3.16.5
1778
1649
 
1779
1650
  - Fixed #954: Functions `add` and `multiply` not working when
1780
1651
  passing three or more arrays or matrices.
1781
1652
 
1782
-
1783
1653
  ## 2017-10-01, version 3.16.4
1784
1654
 
1785
1655
  - Fixed #948, #949: function `simplify` returning wrong results or
1786
1656
  running into an infinite recursive loop. Thanks @ericman314.
1787
1657
  - Fixed many small issues in the embedded docs. Thanks @Schnark.
1788
1658
 
1789
-
1790
1659
  ## 2017-08-28, version 3.16.3
1791
1660
 
1792
1661
  - Fixed #934: Wrong simplification of unary minus. Thanks @firepick1.
@@ -1795,7 +1664,6 @@ Non breaking changes:
1795
1664
  numbers having just one of their parts (re/im) being `NaN`.
1796
1665
  - Fixed #929: `FibonacciHeap.isEmpty` returning wrong result.
1797
1666
 
1798
-
1799
1667
  ## 2017-08-20, version 3.16.2
1800
1668
 
1801
1669
  - Fixed #924: a regression in `simplify` not accepting the signature
@@ -1803,7 +1671,6 @@ Non breaking changes:
1803
1671
  - Fixed missing parenthesis when stringifying expressions containing
1804
1672
  implicit multiplications (see #922). Thanks @FSMaxB.
1805
1673
 
1806
-
1807
1674
  ## 2017-08-12, version 3.16.1
1808
1675
 
1809
1676
  - For security reasons, type checking is now done in a more strict
@@ -1816,7 +1683,6 @@ Non breaking changes:
1816
1683
  immediately invoked function assignment not being wrapped in
1817
1684
  parenthesis (for example `(f(x) = x^2)(4)`).
1818
1685
 
1819
-
1820
1686
  ## 2017-08-06, version 3.16.0
1821
1687
 
1822
1688
  - Significant performance improvements in `math.simplify`.
@@ -1826,7 +1692,6 @@ Non breaking changes:
1826
1692
  - Fixed #912: math.js didn't work on IE10 anymore (regression
1827
1693
  since 3.15.0).
1828
1694
 
1829
-
1830
1695
  ## 2017-07-29, version 3.15.0
1831
1696
 
1832
1697
  - Added support for the dollar character `$` in symbol names (see #895).
@@ -1841,19 +1706,16 @@ Non breaking changes:
1841
1706
  and `forEach`.
1842
1707
  - Index and original array/matrix not passed in `map` and `filter`.
1843
1708
 
1844
-
1845
1709
  ## 2017-07-05, version 3.14.2
1846
1710
 
1847
1711
  - Upgraded to `fraction.js@4.0.2`
1848
1712
  - Fixed #891 using BigNumbers not working in browser environments.
1849
1713
 
1850
-
1851
1714
  ## 2017-06-30, version 3.14.1
1852
1715
 
1853
1716
  - Reverted to `fraction.js@4.0.0`, there is an issue with `4.0.1`
1854
1717
  in the browser.
1855
1718
 
1856
-
1857
1719
  ## 2017-06-30, version 3.14.0
1858
1720
 
1859
1721
  - Implemented set methods `setCartesian`, `setDifference`,
@@ -1873,14 +1735,12 @@ Non breaking changes:
1873
1735
  - More informative error message when using single quotes instead of
1874
1736
  double quotes around a string. Thanks @HarrySarson.
1875
1737
 
1876
-
1877
1738
  ## 2017-05-27, version 3.13.3
1878
1739
 
1879
1740
  - Fixed a bug in function `intersection` of line and plane.
1880
1741
  Thanks @viclai.
1881
1742
  - Fixed security vulnerabilities.
1882
1743
 
1883
-
1884
1744
  ## 2017-05-26, version 3.13.2
1885
1745
 
1886
1746
  - Disabled function `chain` inside the expression parser for security
@@ -1889,14 +1749,12 @@ Non breaking changes:
1889
1749
  from Arrays correctly. (like `math.eval('arr[1]', {arr: [math.bignumber(2)]})`.
1890
1750
  - Fixed #861: physical constants not available in the expression parser.
1891
1751
 
1892
-
1893
1752
  ## 2017-05-12, version 3.13.1
1894
1753
 
1895
1754
  - Fixed creating units with an alias not working within the expression
1896
1755
  parser.
1897
1756
  - Fixed security vulnerabilities. Thanks Sam.
1898
1757
 
1899
-
1900
1758
  ## 2017-05-12, version 3.13.0
1901
1759
 
1902
1760
  - Command line application can now evaluate inline expressions
@@ -1909,17 +1767,14 @@ Non breaking changes:
1909
1767
  - Fixed #838: Function `simplify` now supports constants like `e`.
1910
1768
  Thanks @tetslee.
1911
1769
 
1912
-
1913
1770
  ## 2017-05-05, version 3.12.3
1914
1771
 
1915
1772
  - Fixed security vulnerabilities. Thanks Dan and Sam.
1916
1773
 
1917
-
1918
1774
  ## 2017-04-30, version 3.12.2
1919
1775
 
1920
1776
  - Added a rocket trajectory optimization example.
1921
1777
 
1922
-
1923
1778
  ## 2017-04-24, version 3.12.1
1924
1779
 
1925
1780
  - Fixed #804
@@ -1928,13 +1783,11 @@ Non breaking changes:
1928
1783
  - Fixed security vulnerabilities in the expression parser.
1929
1784
  Thanks Sam and Dan.
1930
1785
 
1931
-
1932
1786
  ## 2017-04-17, version 3.12.0
1933
1787
 
1934
1788
  - Implemented QR decomposition, function `math.qr`. Thanks @HarrySarson.
1935
1789
  - Fixed #824: Calling `math.random()` freezes IE and node.js.
1936
1790
 
1937
-
1938
1791
  ## 2017-04-08, version 3.11.5
1939
1792
 
1940
1793
  - More security measures in the expression parser.
@@ -1944,28 +1797,23 @@ Non breaking changes:
1944
1797
  objects, not on classes, arrays, and functions anymore.
1945
1798
  - Accessing methods is restricted to a set of known, safe methods.
1946
1799
 
1947
-
1948
1800
  ## 2017-04-03, version 3.11.4
1949
1801
 
1950
1802
  - Fixed a security vulnerability in the expression parser. Thanks @xfix.
1951
1803
 
1952
-
1953
1804
  ## 2017-04-03, version 3.11.3
1954
1805
 
1955
1806
  - Fixed a security vulnerability in the expression parser. Thanks @xfix.
1956
1807
 
1957
-
1958
1808
  ## 2017-04-03, version 3.11.2
1959
1809
 
1960
1810
  - Fixed a security vulnerability in the expression parser. Thanks @xfix.
1961
1811
 
1962
-
1963
1812
  ## 2017-04-02, version 3.11.1
1964
1813
 
1965
1814
  - Fixed security vulnerabilities in the expression parser.
1966
1815
  Thanks Joe Vennix and @xfix.
1967
1816
 
1968
-
1969
1817
  ## 2017-04-02, version 3.11.0
1970
1818
 
1971
1819
  - Implemented method Unit.toSI() to convert a unit to base SI units.
@@ -1973,25 +1821,21 @@ Non breaking changes:
1973
1821
  - Fixed #821, #822: security vulnerabilities in the expression parser.
1974
1822
  Thanks @comex and @xfix.
1975
1823
 
1976
-
1977
1824
  ## 2017-03-31, version 3.10.3
1978
1825
 
1979
1826
  - More security fixes related to the ones fixed in `v3.10.2`.
1980
1827
 
1981
-
1982
1828
  ## 2017-03-31, version 3.10.2
1983
1829
 
1984
1830
  - Fixed a security vulnerability in the expression parser allowing
1985
1831
  execution of arbitrary JavaScript. Thanks @CapacitorSet and @denvit.
1986
1832
 
1987
-
1988
1833
  ## 2017-03-26, version 3.10.1
1989
1834
 
1990
1835
  - Fixed `xgcd` for negative values. Thanks @litmit.
1991
1836
  - Fixed #807: function transform of existing functions not being removed when
1992
1837
  overriding such a function.
1993
1838
 
1994
-
1995
1839
  ## 2017-03-05, version 3.10.0
1996
1840
 
1997
1841
  - Implemented function `reshape`. Thanks @patgrasso and @ericman314.
@@ -2001,19 +1845,16 @@ Non breaking changes:
2001
1845
  - Dropped support for component package manager (which became deprecated about
2002
1846
  one and a half year ago).
2003
1847
 
2004
-
2005
1848
  ## 2017-02-22, version 3.9.3
2006
1849
 
2007
1850
  - Fixed #797: issue with production builds of React Native projects.
2008
1851
  - Fixed `math.round` not accepting inputs `NaN`, `Infinity`, `-Infinity`.
2009
1852
  - Upgraded all dependencies.
2010
1853
 
2011
-
2012
1854
  ## 2017-02-16, version 3.9.2
2013
1855
 
2014
1856
  - Fixed #795: Parse error in case of a multi-line expression with just comments.
2015
1857
 
2016
-
2017
1858
  ## 2017-02-06, version 3.9.1
2018
1859
 
2019
1860
  - Fixed #789: Math.js not supporting conversion of `string` to `BigNumber`,
@@ -2022,7 +1863,6 @@ Non breaking changes:
2022
1863
  functions via `scope` to functions having `rawArgs = true`.
2023
1864
  - Small fixes in the docs. Thanks @HarrySarson.
2024
1865
 
2025
-
2026
1866
  ## 2017-01-23, version 3.9.0
2027
1867
 
2028
1868
  - Implemented support for algebra: powerful new functions `simplify` and
@@ -2032,14 +1872,12 @@ Non breaking changes:
2032
1872
  - Fixed #765: `FunctionAssignmentNode.toString()` returning a string
2033
1873
  incompatible with the function assignment syntax.
2034
1874
 
2035
-
2036
1875
  ## 2016-12-15, version 3.8.1
2037
1876
 
2038
1877
  - Implemented function `mad` (median absolute deviation). Thanks @ruhleder.
2039
1878
  - Fixed #762: expression parser failing to invoke a function returned
2040
1879
  by a function.
2041
1880
 
2042
-
2043
1881
  ## 2016-11-18, version 3.8.0
2044
1882
 
2045
1883
  - Functions `add` and `multiply` now accept more than two arguments. See #739.
@@ -2054,7 +1892,6 @@ Non breaking changes:
2054
1892
  - Fixed #749: Units `rad`, `deg`, and `grad` can now have prefixes like `millirad`.
2055
1893
  - Some fixes in the docs and comments of examples. Thanks @HarrySarson.
2056
1894
 
2057
-
2058
1895
  ## 2016-11-05, version 3.7.0
2059
1896
 
2060
1897
  - Implemented method `Node.equals(other)` for all nodes of the expression parser.
@@ -2063,7 +1900,6 @@ Non breaking changes:
2063
1900
  - Implicit conversions between Fractions and BigNumbers throw a neat error now
2064
1901
  (See #710).
2065
1902
 
2066
-
2067
1903
  ## 2016-10-21, version 3.6.0
2068
1904
 
2069
1905
  - Implemented function `erf()`. THanks @patgrasso.
@@ -2077,23 +1913,19 @@ Non breaking changes:
2077
1913
  like `-2 2` and `2^3 4` (right after the second value of an operator).
2078
1914
  - Fixed #688: Describe allowed variable names in the docs.
2079
1915
 
2080
-
2081
1916
  ## 2016-09-21, version 3.5.3
2082
1917
 
2083
1918
  - Some more fixes regarding numbers ending with a decimal mark (like `2.`).
2084
1919
 
2085
-
2086
1920
  ## 2016-09-20, version 3.5.2
2087
1921
 
2088
1922
  - Fixed numbers ending with a decimal mark (like `2.`) not being supported by
2089
1923
  the parser, solved the underlying ambiguity in the parser. See #707, #711.
2090
1924
 
2091
-
2092
1925
  ## 2016-09-12, version 3.5.1
2093
1926
 
2094
1927
  - Removed a left over console.log statement. Thanks @eknkc.
2095
1928
 
2096
-
2097
1929
  ## 2016-09-07, version 3.5.0
2098
1930
 
2099
1931
  - Comments of expressions are are now stored in the parsed nodes. See #690.
@@ -2102,20 +1934,17 @@ Non breaking changes:
2102
1934
  - Fixed #707: The expression parser no longer accepts numbers ending with a dot
2103
1935
  like `2.`.
2104
1936
 
2105
-
2106
1937
  ## 2016-08-08, version 3.4.1
2107
1938
 
2108
1939
  - Fixed broken bundle files (`dist/math.js`, `dist/math.min.js`).
2109
1940
  - Fixed some layout issues in the function reference docs.
2110
1941
 
2111
-
2112
1942
  ## 2016-08-07, version 3.4.0
2113
1943
 
2114
1944
  - Implemented support for custom units using `createUnit`. Thanks @ericman314.
2115
1945
  - Implemented function `splitUnits`. Thanks @ericman314.
2116
1946
  - Implemented function `isPrime`. Thanks @MathBunny.
2117
1947
 
2118
-
2119
1948
  ## 2016-07-05, version 3.3.0
2120
1949
 
2121
1950
  - Implemented function `isNaN`.
@@ -2126,13 +1955,11 @@ Non breaking changes:
2126
1955
  - Fixed #665: functions `map`, `forEach`, and `filter` now invoke callbacks
2127
1956
  which are a typed-function with the correct number of arguments.
2128
1957
 
2129
-
2130
1958
  ## 2016-04-26, version 3.2.1
2131
1959
 
2132
1960
  - Fixed #651: unable to perform calculations on "Unit-less" units.
2133
1961
  - Fixed matrix.subset mutating the replacement matrix when unsqueezing it.
2134
1962
 
2135
-
2136
1963
  ## 2016-04-16, version 3.2.0
2137
1964
 
2138
1965
  - Implemented #644: method `Parser.getAll()` to retrieve all defined variables.
@@ -2146,7 +1973,6 @@ Non breaking changes:
2146
1973
  - Fixed #645: Added documentation about `engineering` notation of function
2147
1974
  `math.format`.
2148
1975
 
2149
-
2150
1976
  ## 2016-04-03, version 3.1.4
2151
1977
 
2152
1978
  - Using ES6 Math functions like `Math.sinh`, `Math.cbrt`, `Math.sign`, etc when
@@ -2160,17 +1986,14 @@ Non breaking changes:
2160
1986
  - Fixed #625: Unit `in` (`inch`) not always working due to ambiguity with
2161
1987
  the operator `a in b` (alias of `a to b`).
2162
1988
 
2163
-
2164
1989
  ## 2016-03-24, version 3.1.3
2165
1990
 
2166
1991
  - Fix broken bundle.
2167
1992
 
2168
-
2169
1993
  ## 2016-03-24, version 3.1.2
2170
1994
 
2171
1995
  - Fix broken npm release.
2172
1996
 
2173
-
2174
1997
  ## 2016-03-24, version 3.1.1
2175
1998
 
2176
1999
  - Fixed #621: a bug in parsing implicit multiplications like `(2)(3)+4`.
@@ -2179,7 +2002,6 @@ Non breaking changes:
2179
2002
  - Throw an error when functions `min`, `max`, `mean`, or `median` are invoked
2180
2003
  with multiple matrices as arguments (see #598).
2181
2004
 
2182
-
2183
2005
  ## 2016-03-19, version 3.1.0
2184
2006
 
2185
2007
  - Hide multiplication operator by default when outputting `toTex` and `toString`
@@ -2191,7 +2013,6 @@ Non breaking changes:
2191
2013
  - Added automatic conversions from `boolean` and `null` to `Fraction`,
2192
2014
  and conversions from `Fraction` to `Complex`.
2193
2015
 
2194
-
2195
2016
  ## 2016-03-04, version 3.0.0
2196
2017
 
2197
2018
  ### breaking changes
@@ -2254,7 +2075,6 @@ Non breaking changes:
2254
2075
  - Fixed angle units `deg`, `rad`, `grad`, `cycle`, `arcsec`, and `arcmin` not
2255
2076
  being defined as BigNumbers when configuring to use BigNumbers.
2256
2077
 
2257
-
2258
2078
  ## 2016-02-03, version 2.7.0
2259
2079
 
2260
2080
  - Added more unit aliases for time: `secs`, `mins`, `hr`, `hrs`. See #551.
@@ -2263,7 +2083,6 @@ Non breaking changes:
2263
2083
  - Fixed #546: Cannot import BigNumber, Fraction, Matrix, Array.
2264
2084
  Thanks @brettjurgens.
2265
2085
 
2266
-
2267
2086
  ## 2016-01-08, version 2.6.0
2268
2087
 
2269
2088
  - Implemented (complex) units `VA` and `VAR`.
@@ -2275,7 +2094,6 @@ Non breaking changes:
2275
2094
  of the correct subset.
2276
2095
  - Fixed #536: A bug in an internal method used for sparse matrices.
2277
2096
 
2278
-
2279
2097
  ## 2015-12-05, version 2.5.0
2280
2098
 
2281
2099
  - Implemented support for numeric types `Fraction` and `BigNumber` in units.
@@ -2287,14 +2105,12 @@ Non breaking changes:
2287
2105
  function definition.
2288
2106
  - Fixed: Function `number` didn't support `Fraction` as input.
2289
2107
 
2290
-
2291
2108
  ## 2015-11-14, version 2.4.2
2292
2109
 
2293
2110
  - Fixed #502: Issue with `format` in some JavaScript engines.
2294
2111
  - Fixed #503: Removed trailing commas and the use of keyword `import` as
2295
2112
  property, as this gives issues with old JavaScript engines.
2296
2113
 
2297
-
2298
2114
  ## 2015-10-29, version 2.4.1
2299
2115
 
2300
2116
  - Fixed #480: `nthRoot` not working on Internet Explorer (up to IE11).
@@ -2311,7 +2127,6 @@ Non breaking changes:
2311
2127
  - Fixed: removed memoization from `gamma` and `factorial` functions, this
2312
2128
  could blow up memory.
2313
2129
 
2314
-
2315
2130
  ## 2015-10-09, version 2.4.0
2316
2131
 
2317
2132
  - Added support in the expression parser for mathematical alphanumeric symbols
@@ -2322,7 +2137,6 @@ Non breaking changes:
2322
2137
  BigNumber integer values around multiples of tau (i.e. `sin(bignumber(7))`).
2323
2138
  - Fixed value of unit `stone`. Thanks @Esvandiary for finding the error.
2324
2139
 
2325
-
2326
2140
  ## 2015-09-19, version 2.3.0
2327
2141
 
2328
2142
  - Implemented function `distance`. Thanks @devanp92.
@@ -2334,7 +2148,6 @@ Non breaking changes:
2334
2148
  - Fixed #463, #322: inconsistent handling of implicit multiplication.
2335
2149
  - Fixed #444: factorial of infinity not returning infinity.
2336
2150
 
2337
-
2338
2151
  ## 2015-08-30, version 2.2.0
2339
2152
 
2340
2153
  - Units with powers (like `m^2` and `s^-1`) now output with the best prefix.
@@ -2346,13 +2159,11 @@ Non breaking changes:
2346
2159
  - Fixed function `to` not working in case of a simplified unit.
2347
2160
  - Fixed #437: an issue with row swapping in `lup`, also affecting `lusolve`.
2348
2161
 
2349
-
2350
2162
  ## 2015-08-12, version 2.1.1
2351
2163
 
2352
2164
  - Fixed wrong values of the physical constants `speedOfLight`, `molarMassC12`,
2353
2165
  and `magneticFluxQuantum`. Thanks @ericman314 for finding two of them.
2354
2166
 
2355
-
2356
2167
  ## 2015-08-11, version 2.1.0
2357
2168
 
2358
2169
  - Implemented derived units (like `110 km/h in m/s`). Thanks @ericman314.
@@ -2366,13 +2177,11 @@ Non breaking changes:
2366
2177
  - Internal functions `Unit.parse` and `Complex.parse` now throw an Error
2367
2178
  instead of returning null when passing invalid input.
2368
2179
 
2369
-
2370
2180
  ## 2015-07-29, version 2.0.1
2371
2181
 
2372
2182
  - Fixed operations with mixed fractions and numbers be converted to numbers
2373
2183
  instead of fractions.
2374
2184
 
2375
-
2376
2185
  ## 2015-07-28, version 2.0.0
2377
2186
 
2378
2187
  - Large internal refactoring:
@@ -2412,7 +2221,6 @@ Non breaking changes:
2412
2221
  - The size of Arrays is no longer validated. Matrices will validate this on
2413
2222
  creation.
2414
2223
 
2415
-
2416
2224
  ## 2015-07-12, version 1.7.1
2417
2225
 
2418
2226
  - Fixed #397: Inaccuracies in nthRoot for very large values, and wrong results
@@ -2420,7 +2228,6 @@ Non breaking changes:
2420
2228
  - Fixed #405: Parser throws error when defining a function in a multiline
2421
2229
  expression.
2422
2230
 
2423
-
2424
2231
  ## 2015-05-31, version 1.7.0
2425
2232
 
2426
2233
  - Implemented function `quantileSeq` and `partitionSelect`. Thanks @BigFav.
@@ -2435,14 +2242,12 @@ Non breaking changes:
2435
2242
  node tree (see #349).
2436
2243
  - Fixed #381: issue in docs of `randomInt`.
2437
2244
 
2438
-
2439
2245
  ## 2015-04-22, version 1.6.0
2440
2246
 
2441
2247
  - Improvements in `toTex`. Thanks @FSMaxB.
2442
2248
  - Fixed #328: `abs(0 + 0i)` evaluated to `NaN`.
2443
2249
  - Fixed not being able to override lazy loaded constants.
2444
2250
 
2445
-
2446
2251
  ## 2015-04-09, version 1.5.2
2447
2252
 
2448
2253
  - Fixed #313: parsed functions did not handle recursive calls correctly.
@@ -2450,13 +2255,11 @@ Non breaking changes:
2450
2255
  following SI standards (`1 KiB == 1024 B`, `1 kB == 1000 B`).
2451
2256
  - Performance improvements in parsed functions.
2452
2257
 
2453
-
2454
2258
  ## 2015-04-08, version 1.5.1
2455
2259
 
2456
2260
  - Fixed #316: a bug in rounding values when formatting.
2457
2261
  - Fixed #317, #319: a bug in formatting negative values.
2458
2262
 
2459
-
2460
2263
  ## 2015-03-28, version 1.5.0
2461
2264
 
2462
2265
  - Added unit `stone` (6.35 kg).
@@ -2468,7 +2271,6 @@ Non breaking changes:
2468
2271
  - Fixed #291: function `format` sometimes returning exponential notation when
2469
2272
  it should return a fixed notation.
2470
2273
 
2471
-
2472
2274
  ## 2015-02-28, version 1.4.0
2473
2275
 
2474
2276
  - Implemented trigonometric functions:
@@ -2483,7 +2285,6 @@ Non breaking changes:
2483
2285
  - Fixed #281: improved formatting complex numbers. Round the real or imaginary
2484
2286
  part to zero when the difference is larger than the configured precision.
2485
2287
 
2486
-
2487
2288
  ## 2015-02-09, version 1.3.0
2488
2289
 
2489
2290
  - Implemented BigNumber implementations of most trigonometric functions: `sin`,
@@ -2497,7 +2298,6 @@ Non breaking changes:
2497
2298
  `permutations`.
2498
2299
  - Some minor fixes in the docs. Thanks @KenanY.
2499
2300
 
2500
-
2501
2301
  ## 2014-12-25, version 1.2.0
2502
2302
 
2503
2303
  - Support for bitwise operations `bitAnd`, `bitNot`, `bitOr`, `bitXor`,
@@ -2511,14 +2311,12 @@ Non breaking changes:
2511
2311
  functional until math.js v2.0.
2512
2312
  - Upgraded to decimal.js v4.0.1 (BigNumber library).
2513
2313
 
2514
-
2515
2314
  ## 2014-11-22, version 1.1.1
2516
2315
 
2517
2316
  - Fixed Unit divided by Number returning zero.
2518
2317
  - Fixed BigNumber downgrading to Number for a negative base in `pow`.
2519
2318
  - Fixed some typos in error messaging (thanks @andy0130tw) and docs.
2520
2319
 
2521
-
2522
2320
  ## 2014-11-15, version 1.1.0
2523
2321
 
2524
2322
  - Implemented functions `dot` (dot product), `cross` (cross product), and
@@ -2539,7 +2337,6 @@ Non breaking changes:
2539
2337
  of via a function `add`.
2540
2338
  - Fixed `2e` giving a syntax error instead of being parsed as `2 * e`.
2541
2339
 
2542
-
2543
2340
  ## 2014-09-12, version 1.0.1
2544
2341
 
2545
2342
  - Disabled array notation for ranges in a matrix index in the expression parser
@@ -2548,7 +2345,6 @@ Non breaking changes:
2548
2345
  a scalar.
2549
2346
  - Fixed some missing docs and broken links in the docs.
2550
2347
 
2551
-
2552
2348
  ## 2014-09-04, version 1.0.0
2553
2349
 
2554
2350
  - Implemented a function `filter(x, test)`.
@@ -2558,7 +2354,6 @@ Non breaking changes:
2558
2354
  - Fixed an zero-based issue when getting a matrix subset using an index
2559
2355
  containing a matrix.
2560
2356
 
2561
-
2562
2357
  ## 2014-08-21, version 0.27.0
2563
2358
 
2564
2359
  - Implemented functions `sort(x [, compare])` and `flatten(x)`.
@@ -2577,7 +2372,6 @@ Non breaking changes:
2577
2372
  - A returned matrix subset is now only squeezed when the `index` consists of
2578
2373
  scalar values, and no longer for ranges resolving into a single value.
2579
2374
 
2580
-
2581
2375
  ## 2014-08-03, version 0.26.0
2582
2376
 
2583
2377
  - A new instance of math.js can no longer be created like `math([options])`,
@@ -2607,7 +2401,6 @@ Non breaking changes:
2607
2401
  - Fixed broken auto completion in CLI.
2608
2402
  - Some minor fixes.
2609
2403
 
2610
-
2611
2404
  ## 2014-07-01, version 0.25.0
2612
2405
 
2613
2406
  - The library now immediately returns a default instance of mathjs, there is
@@ -2630,12 +2423,10 @@ Non breaking changes:
2630
2423
  like `math.eval('10 * celsius')`.
2631
2424
  - Fixed a bug with symbols having value `undefined` not being evaluated.
2632
2425
 
2633
-
2634
2426
  ## 2014-06-20, version 0.24.1
2635
2427
 
2636
2428
  - Something went wrong with publishing on npm.
2637
2429
 
2638
-
2639
2430
  ## 2014-06-20, version 0.24.0
2640
2431
 
2641
2432
  - Added constant `null`.
@@ -2649,7 +2440,6 @@ Non breaking changes:
2649
2440
  - Fixed imported, wrapped functions not accepting `null` and `undefined` as
2650
2441
  function arguments.
2651
2442
 
2652
-
2653
2443
  ## 2014-06-10, version 0.23.0
2654
2444
 
2655
2445
  - Renamed some functions (everything now has a logical, camel case name):
@@ -2681,7 +2471,6 @@ Non breaking changes:
2681
2471
  return ans;
2682
2472
  }
2683
2473
 
2684
-
2685
2474
  ## 2014-05-22, version 0.22.0
2686
2475
 
2687
2476
  - Implemented support to export expressions to LaTeX. Thanks Niels Heisterkamp
@@ -2694,7 +2483,6 @@ Non breaking changes:
2694
2483
  - Fixed random functions not accepting Matrix as input, and always returning
2695
2484
  a Matrix as output.
2696
2485
 
2697
-
2698
2486
  ## 2014-05-13, version 0.21.1
2699
2487
 
2700
2488
  - Removed `crypto` library from the bundle.
@@ -2704,7 +2492,6 @@ Non breaking changes:
2704
2492
  - Fixed parser not being able to evaluate an exponent followed by a unary minus
2705
2493
  like `2^-3`, and a transpose followed by an index like `[3]'[1]`.
2706
2494
 
2707
-
2708
2495
  ## 2014-04-24, version 0.21.0
2709
2496
 
2710
2497
  - Implemented trigonometric hyperbolic functions `cosh`, `coth`, `csch`,
@@ -2713,7 +2500,6 @@ Non breaking changes:
2713
2500
  - Fixed functions `log`, `log10`, `pow`, and `sqrt` not supporting complex
2714
2501
  results from BigNumber input (like `sqrt(bignumber(-4))`).
2715
2502
 
2716
-
2717
2503
  ## 2014-04-16, version 0.20.0
2718
2504
 
2719
2505
  - Switched to module `decimal.js` for BigNumber support, instead of
@@ -2737,14 +2523,12 @@ Non breaking changes:
2737
2523
  of zero-based.
2738
2524
  - Minor bug fixes.
2739
2525
 
2740
-
2741
2526
  ## 2014-03-30, version 0.19.0
2742
2527
 
2743
2528
  - Implemented functions `compare`, `sum`, `prod`, `var`, `std`, `median`.
2744
2529
  - Implemented function `ifElse` Thanks @mtraynham.
2745
2530
  - Minor bug fixes.
2746
2531
 
2747
-
2748
2532
  ## 2014-02-15, version 0.18.1
2749
2533
 
2750
2534
  - Added unit `feet`.
@@ -2754,7 +2538,6 @@ Non breaking changes:
2754
2538
  - Fixed an error in function `combinations` for large numbers, and
2755
2539
  improved performance of both functions `combinations` and `permutations`.
2756
2540
 
2757
-
2758
2541
  ## 2014-01-18, version 0.18.0
2759
2542
 
2760
2543
  - Changed matrix index notation of expression parser from round brackets to
@@ -2773,13 +2556,11 @@ Non breaking changes:
2773
2556
  Thanks Daniel Levin (@daniel-levin).
2774
2557
  - Added lower case abbreviation `l` for unit litre.
2775
2558
 
2776
-
2777
2559
  ## 2013-12-19, version 0.17.1
2778
2560
 
2779
2561
  - Fixed a bug with negative temperatures.
2780
2562
  - Fixed a bug with prefixes of units squared meter `m2` and cubic meter `m3`.
2781
2563
 
2782
-
2783
2564
  ## 2013-12-12, version 0.17.0
2784
2565
 
2785
2566
  - Renamed and flattened configuration settings:
@@ -2791,7 +2572,6 @@ Non breaking changes:
2791
2572
  - Fixed support for old browsers (IE8 and older), compatible when using es5-shim.
2792
2573
  - Fixed support for Java's ScriptEngine.
2793
2574
 
2794
-
2795
2575
  ## 2013-11-28, version 0.16.0
2796
2576
 
2797
2577
  - Implemented BigNumber support for arbitrary precision calculations.
@@ -2823,7 +2603,6 @@ Non breaking changes:
2823
2603
  input.
2824
2604
  - Minor bug fixes.
2825
2605
 
2826
-
2827
2606
  ## 2013-10-26, version 0.15.0
2828
2607
 
2829
2608
  - Math.js must be instantiated now, static calls are no longer supported. Usage:
@@ -2855,7 +2634,6 @@ Non breaking changes:
2855
2634
  - Removed support for comparing complex numbers in functions `smaller`,
2856
2635
  `smallereq`, `larger`, `largereq`. Complex numbers cannot be ordered.
2857
2636
 
2858
-
2859
2637
  ## 2013-10-08, version 0.14.0
2860
2638
 
2861
2639
  - Introduced an option `math.options.matrix.default` which can have values
@@ -2872,7 +2650,6 @@ Non breaking changes:
2872
2650
  - Documentation is restructured and extended.
2873
2651
  - Fixed non working operator `mod` (modulus operator).
2874
2652
 
2875
-
2876
2653
  ## 2013-09-03, version 0.13.0
2877
2654
 
2878
2655
  - Implemented support for booleans in all relevant functions.
@@ -2895,13 +2672,11 @@ Non breaking changes:
2895
2672
  - Moved `math.expr.Selector` to `math.chaining.Selector`.
2896
2673
  - Fixed some edge cases in functions `lcm` and `xgcd`.
2897
2674
 
2898
-
2899
2675
  ## 2013-08-22, version 0.12.1
2900
2676
 
2901
2677
  - Fixed outdated version of README.md.
2902
2678
  - Fixed a broken unit test.
2903
2679
 
2904
-
2905
2680
  ## 2013-08-22, version 0.12.0
2906
2681
 
2907
2682
  - Implemented functions `random([min, max])`, `randomInt([min, max])`,
@@ -2925,12 +2700,10 @@ Non breaking changes:
2925
2700
  value with an imaginary part equal to zero to a number.
2926
2701
  - Fixed zeros being formatted as null. Thanks @TimKraft.
2927
2702
 
2928
-
2929
2703
  ## 2013-07-23, version 0.11.1
2930
2704
 
2931
2705
  - Fixed missing development dependency
2932
2706
 
2933
-
2934
2707
  ## 2013-07-23, version 0.11.0
2935
2708
 
2936
2709
  - Changed math.js from one-based to zero-based indexes.
@@ -2945,7 +2718,6 @@ Non breaking changes:
2945
2718
  - Fixed not accepting empty matrices like `[[], []]`.
2946
2719
  - Some fixes in the end user documentation.
2947
2720
 
2948
-
2949
2721
  ## 2013-07-08, version 0.10.0
2950
2722
 
2951
2723
  - For complex calculations, all functions now automatically replace results
@@ -2960,7 +2732,6 @@ Non breaking changes:
2960
2732
  - Renamed function `unaryminus` to `unary`.
2961
2733
  - Fixed a bug in determining node dependencies in function assignments.
2962
2734
 
2963
-
2964
2735
  ## 2013-06-14, version 0.9.1
2965
2736
 
2966
2737
  - Implemented element-wise functions and operators: `emultiply` (`x .* y`),
@@ -2972,7 +2743,6 @@ Non breaking changes:
2972
2743
  - Fixed a bug in function multiply multiplying a pure complex value with
2973
2744
  Infinity.
2974
2745
 
2975
-
2976
2746
  ## 2013-05-29, version 0.9.0
2977
2747
 
2978
2748
  - Implemented function `math.parse(expr [,scope])`. Optional parameter scope can
@@ -2990,7 +2760,6 @@ Non breaking changes:
2990
2760
  - Fixed function mod for negative numerators, and added error messages in case
2991
2761
  of wrong input.
2992
2762
 
2993
-
2994
2763
  ## 2013-05-18, version 0.8.2
2995
2764
 
2996
2765
  - Extended the import function and some other minor improvements.
@@ -2998,12 +2767,10 @@ Non breaking changes:
2998
2767
  - Fixed a bug in function subtract, when subtracting a complex number from a
2999
2768
  real number.
3000
2769
 
3001
-
3002
2770
  ## 2013-05-10, version 0.8.1
3003
2771
 
3004
2772
  - Fixed an npm warning when installing mathjs globally.
3005
2773
 
3006
-
3007
2774
  ## 2013-05-10, version 0.8.0
3008
2775
 
3009
2776
  - Implemented a command line interface. When math.js is installed globally via
@@ -3019,13 +2786,11 @@ Non breaking changes:
3019
2786
  - Fixed a bug in updating a subset of a non-existing variable.
3020
2787
  - Minor bug fixes.
3021
2788
 
3022
-
3023
2789
  ## 2013-05-04, version 0.7.2
3024
2790
 
3025
2791
  - Fixed method unequal, which was checking for equality instead of inequality.
3026
2792
  Thanks @FJS2.
3027
2793
 
3028
-
3029
2794
  ## 2013-04-27, version 0.7.1
3030
2795
 
3031
2796
  - Improvements in the parser:
@@ -3041,7 +2806,6 @@ Non breaking changes:
3041
2806
  - Fixed a bug in Workspace.insertAfter.
3042
2807
  - Fixed: math.js now works on IE 6-8 too.
3043
2808
 
3044
-
3045
2809
  ## 2013-04-20, version 0.7.0
3046
2810
 
3047
2811
  - Implemented method `math.eval`, which uses a readonly parser to evaluate
@@ -3058,7 +2822,6 @@ Non breaking changes:
3058
2822
  - Fixed method math.typeof on IE.
3059
2823
  - Minor bug fixes and improvements.
3060
2824
 
3061
-
3062
2825
  ## 2013-04-13, version 0.6.0
3063
2826
 
3064
2827
  - Implemented chained operations via method math.select(). For example
@@ -3080,7 +2843,6 @@ Non breaking changes:
3080
2843
  - Fixed constant i being defined as -1i instead of 1i.
3081
2844
  - Minor bug fixes.
3082
2845
 
3083
-
3084
2846
  ## 2013-04-06, version 0.5.0
3085
2847
 
3086
2848
  - Implemented data types Matrix and Range.
@@ -3101,7 +2863,6 @@ Non breaking changes:
3101
2863
  - Changed: renamed the parsers method 'put' into 'set'.
3102
2864
  - Fixed: method 'in' did not check for units to have the same base.
3103
2865
 
3104
-
3105
2866
  ## 2013-03-16, version 0.4.0
3106
2867
 
3107
2868
  - Implemented Array support for all methods.
@@ -3114,14 +2875,12 @@ Non breaking changes:
3114
2875
  - Fixed: method 'typeof' was not working well with minified and mangled code.
3115
2876
  - Fixed: errors in determining the best prefix for a unit.
3116
2877
 
3117
-
3118
2878
  ## 2013-03-09, version 0.3.0
3119
2879
 
3120
2880
  - Implemented Workspace
3121
2881
  - Implemented methods cot, csc, sec.
3122
2882
  - Implemented Array support for methods with one parameter.
3123
2883
 
3124
-
3125
2884
  ## 2013-02-25, version 0.2.0
3126
2885
 
3127
2886
  - Parser, Scope, and expression tree with Nodes implemented.
@@ -3129,21 +2888,18 @@ Non breaking changes:
3129
2888
  - Implemented methods arg, conj, cube, equal, factorial, im, largereq,
3130
2889
  log(x, base), log10, mod, re, sign, smallereq, square, unequal.
3131
2890
 
3132
-
3133
2891
  ## 2013-02-18, version 0.1.0
3134
2892
 
3135
2893
  - Reached full compatibility with Javascripts built-in Math library.
3136
2894
  - More functions implemented.
3137
2895
  - Some bugfixes.
3138
2896
 
3139
-
3140
2897
  ## 2013-02-16, version 0.0.2
3141
2898
 
3142
2899
  - All constants of Math implemented, plus the imaginary unit i.
3143
2900
  - Data types Complex and Unit implemented.
3144
2901
  - First set of functions implemented.
3145
2902
 
3146
-
3147
2903
  ## 2013-02-15, version 0.0.1
3148
2904
 
3149
2905
  - First publish of the mathjs package. (package is still empty)