mathjs 13.0.0 → 13.0.1

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