1 | # History
|
2 |
|
3 | ## 2018-02-07, version 3.20.2
|
4 |
|
5 | - Upgraded to `typed-function@0.10.7` (bug-fix release).
|
6 | - Fixed option `implicit` not being copied from an `OperatorNode`
|
7 | when applying function `map`. Thanks @HarraySarson.
|
8 | - Fixed #995: spaces and underscores not property being escaped
|
9 | in `toTex()`. Thanks @FSMaxB.
|
10 |
|
11 |
|
12 | ## 2018-01-17, version 3.20.1
|
13 |
|
14 | - Fixed #1018: `simplifyCore` failing in some cases with parentheses.
|
15 | Thanks @firepick1.
|
16 |
|
17 |
|
18 | ## 2018-01-14, version 3.20.0
|
19 |
|
20 | - Implement support for 3 or more arguments for operators `+` and `*` in
|
21 | `derivative`. Thanks @HarrySarson. See #1002.
|
22 | - Fixed `simplify` evalution of `simplify` of functions with more than two
|
23 | arguments wrongly: `simplify('f(x, y, z)') evaluated to `f(f(x, y), z)`
|
24 | instead of `f(x, y, z)`. Thanks @joelhoover.
|
25 | - Fixed `simplify` throwing an error in some cases when simplifying unknown
|
26 | functions, for example `simplify('f(4)')`. Thanks @joelhoover.
|
27 | - Fixed #1013: `simplify` wrongly simplifing some expressions containing unary
|
28 | minus, like `0 - -x`. Thanks @joelhoover.
|
29 | - Fixed an error in an example in the documentation of `xor`. Thanks @denisx.
|
30 |
|
31 |
|
32 | ## 2018-01-06, version 3.19.0
|
33 |
|
34 | - Extended functions `distance` and `intersect` with support for BigNumbers.
|
35 | Thanks @ovk.
|
36 | - Improvements in function `simplify`: added a rule that allows combining
|
37 | of like terms in embedded quantities. Thanks @joelhoover.
|
38 |
|
39 |
|
40 | ## 2017-12-28, version 3.18.1
|
41 |
|
42 | - Fixed #998: An issue with simplifying an expression containing a subtraction.
|
43 | Thanks @firepick1.
|
44 |
|
45 |
|
46 | ## 2017-12-16, version 3.18.0
|
47 |
|
48 | - Implemented function `rationalize`. Thanks @paulobuchsbaum.
|
49 | - Upgraded dependencies:
|
50 | ```
|
51 | decimal.js 7.2.3 → 9.0.1 (no breaking changes affecting mathjs)
|
52 | fraction.js 4.0.2 → 4.0.4
|
53 | tiny-emitter 2.0.0 → 2.0.2
|
54 | ```
|
55 | - Upgraded dev dependencies.
|
56 | - Fixed #975: a wrong example in the docs of lusolve.
|
57 | - Fixed #983: `pickRandom` returning an array instead of single value
|
58 | when input was an array with just one value. Clarified docs.
|
59 | - Fixed #969: preven issues with yarn autoclean by renaming an
|
60 | interally used folder "docs" to "embeddedDocs".
|
61 |
|
62 |
|
63 | ## 2017-11-18, version 3.17.0
|
64 |
|
65 | - Improved `simplify` for nested exponentiations. Thanks @IvanVergiliev.
|
66 | - Fixed a security issue in `typed-function` allowing arbitrary code execution
|
67 | in the JavaScript engine by creating a typed function with JavaScript code
|
68 | in the name. Thanks Masato Kinugawa.
|
69 | - Fixed a security issue where forbidden properties like constructor could be
|
70 | replaced by using unicode characters when creating an object. No known exploit,
|
71 | but could possibly allow arbitrary code execution. Thanks Masato Kinugawa.
|
72 |
|
73 |
|
74 | ## 2017-10-18, version 3.16.5
|
75 |
|
76 | - Fixed #954: Functions `add` and `multiply` not working when
|
77 | passing three or more arrays or matrices.
|
78 |
|
79 |
|
80 | ## 2017-10-01, version 3.16.4
|
81 |
|
82 | - Fixed #948, #949: function `simplify` returning wrong results or
|
83 | running into an infinite recursive loop. Thanks @ericman314.
|
84 | - Fixed many small issues in the embedded docs. Thanks @Schnark.
|
85 |
|
86 |
|
87 | ## 2017-08-28, version 3.16.3
|
88 |
|
89 | - Fixed #934: Wrong simplification of unary minus. Thanks @firepick1.
|
90 | - Fixed #933: function `simplify` reordering operations. Thanks @firepick1.
|
91 | - Fixed #930: function `isNaN` returning wrong result for complex
|
92 | numbers having just one of their parts (re/im) being `NaN`.
|
93 | - Fixed #929: `FibonacciHeap.isEmpty` returning wrong result.
|
94 |
|
95 |
|
96 | ## 2017-08-20, version 3.16.2
|
97 |
|
98 | - Fixed #924: a regression in `simplify` not accepting the signature
|
99 | `simplify(expr, rules, scope)` anymore. Thanks @firepick1.
|
100 | - Fixed missing parenthesis when stringifying expressions containing
|
101 | implicit multiplications (see #922). Thanks @FSMaxB.
|
102 |
|
103 |
|
104 | ## 2017-08-12, version 3.16.1
|
105 |
|
106 | - For security reasons, type checking is now done in a more strict
|
107 | way using functions like `isComplex(x)` instead of duck type checking
|
108 | like `x && x.isComplex === true`.
|
109 | - Fixed #915: No access to property "name".
|
110 | - Fixed #901: Simplify units when calling `unit.toNumeric()`.
|
111 | Thanks @AlexanderBeyn.
|
112 | - Fixed `toString` of a parsed expression tree containing an
|
113 | immediately invoked function assignment not being wrapped in
|
114 | parenthesis (for example `(f(x) = x^2)(4)`).
|
115 |
|
116 |
|
117 | ## 2017-08-06, version 3.16.0
|
118 |
|
119 | - Significant performance improvements in `math.simplify`.
|
120 | Thanks @firepick1.
|
121 | - Improved API for `math.simplify`, optionally pass a scope with
|
122 | variables which are resolved, see #907. Thanks @firepick1.
|
123 | - Fixed #912: math.js didn't work on IE10 anymore (regression
|
124 | since 3.15.0).
|
125 |
|
126 |
|
127 | ## 2017-07-29, version 3.15.0
|
128 |
|
129 | - Added support for the dollar character `$` in symbol names (see #895).
|
130 | - Allow objects with prototypes as scope again in the expression parser,
|
131 | this was disabled for security reasons some time ago. See #888, #899.
|
132 | Thanks @ThomasBrierley.
|
133 | - Fixed #846: Issues in the functions `map`, `forEach`, and `filter`
|
134 | when used in the expression parser:
|
135 | - Not being able to use a function assignment as inline expression
|
136 | for the callback function.
|
137 | - Not being able to pass an inline expression as callback for `map`
|
138 | and `forEach`.
|
139 | - Index and original array/matrix not passed in `map` and `filter`.
|
140 |
|
141 |
|
142 | ## 2017-07-05, version 3.14.2
|
143 |
|
144 | - Upgraded to `fraction.js@4.0.2`
|
145 | - Fixed #891 using BigNumbers not working in browser environments.
|
146 |
|
147 |
|
148 | ## 2017-06-30, version 3.14.1
|
149 |
|
150 | - Reverted to `fraction.js@4.0.0`, there is an issue with `4.0.1`
|
151 | in the browser.
|
152 |
|
153 |
|
154 | ## 2017-06-30, version 3.14.0
|
155 |
|
156 | - Implemented set methods `setCartesian`, `setDifference`,
|
157 | `setDistinct`, `setIntersect`, `setIsSubset`, `setPowerset`,
|
158 | `setSize`. Thanks @Nekomajin42.
|
159 | - Implemented method `toHTML` on nodes. Thanks @Nekomajin42.
|
160 | - Implemented `compareNatural` and `sort([...], 'natural')`.
|
161 | - Upgraded dependencies to the latest versions:
|
162 | - `complex.js@2.0.4`
|
163 | - `decimal.js@7.2.3`
|
164 | - `fraction.js@4.0.1`
|
165 | - `tiny-emitter@2.0.0`
|
166 | - And all devDependencies.
|
167 | - Fixed #865: `splitUnit` can now deal with round-off errors.
|
168 | Thanks @ericman314.
|
169 | - Fixed #876: incorrect definition for unit `erg`. Thanks @pjhampton.
|
170 | - More informative error message when using single quotes instead of
|
171 | double quotes around a string. Thanks @HarrySarson.
|
172 |
|
173 |
|
174 | ## 2017-05-27, version 3.13.3
|
175 |
|
176 | - Fixed a bug in function `intersection` of line and plane.
|
177 | Thanks @viclai.
|
178 | - Fixed security vulnerabilities.
|
179 |
|
180 |
|
181 | ## 2017-05-26, version 3.13.2
|
182 |
|
183 | - Disabled function `chain` inside the expression parser for security
|
184 | reasons (it's not needed there anyway).
|
185 | - Fixed #856: function `subset` not returning non-primitive scalars
|
186 | from Arrays correctly. (like `math.eval('arr[1]', {arr: [math.bignumber(2)]})`.
|
187 | - Fixed #861: physical constants not available in the expression parser.
|
188 |
|
189 |
|
190 | ## 2017-05-12, version 3.13.1
|
191 |
|
192 | - Fixed creating units with an alias not working within the expression
|
193 | parser.
|
194 | - Fixed security vulnerabilities. Thanks Sam.
|
195 |
|
196 |
|
197 | ## 2017-05-12, version 3.13.0
|
198 |
|
199 | - Command line application can now evaluate inline expressions
|
200 | like `mathjs 1+2`. Thanks @slavaGanzin.
|
201 | - Function `derivative` now supports `abs`. Thanks @tetslee.
|
202 | - Function `simplify` now supports BigNumbers. Thanks @tetslee.
|
203 | - Prevent against endless loops in `simplify`. Thanks @tetslee.
|
204 | - Fixed #813: function `simplify` converting small numbers to inexact
|
205 | Fractions. Thanks @tetslee.
|
206 | - Fixed #838: Function `simplify` now supports constants like `e`.
|
207 | Thanks @tetslee.
|
208 |
|
209 |
|
210 | ## 2017-05-05, version 3.12.3
|
211 |
|
212 | - Fixed security vulnerabilities. Thanks Dan and Sam.
|
213 |
|
214 |
|
215 | ## 2017-04-30, version 3.12.2
|
216 |
|
217 | - Added a rocket trajectory optimization example.
|
218 |
|
219 |
|
220 | ## 2017-04-24, version 3.12.1
|
221 |
|
222 | - Fixed #804
|
223 | - Improved handling of powers of `Infinity`. Thanks @HarrySarson.
|
224 | - Fixed wrong formatting of complex NaN.
|
225 | - Fixed security vulnerabilities in the expression parser.
|
226 | Thanks Sam and Dan.
|
227 |
|
228 |
|
229 | ## 2017-04-17, version 3.12.0
|
230 |
|
231 | - Implemented QR decomposition, function `math.qr`. Thanks @HarrySarson.
|
232 | - Fixed #824: Calling `math.random()` freezes IE and node.js.
|
233 |
|
234 |
|
235 | ## 2017-04-08, version 3.11.5
|
236 |
|
237 | - More security measures in the expression parser.
|
238 | WARNING: the behavior of the expression parser is now more strict,
|
239 | some undocumented features may not work any longer.
|
240 | - Accessing and assigning properties is now only allowed on plain
|
241 | objects, not on classes, arrays, and functions anymore.
|
242 | - Accessing methods is restricted to a set of known, safe methods.
|
243 |
|
244 |
|
245 | ## 2017-04-03, version 3.11.4
|
246 |
|
247 | - Fixed a security vulnerability in the expression parser. Thanks @xfix.
|
248 |
|
249 |
|
250 | ## 2017-04-03, version 3.11.3
|
251 |
|
252 | - Fixed a security vulnerability in the expression parser. Thanks @xfix.
|
253 |
|
254 |
|
255 | ## 2017-04-03, version 3.11.2
|
256 |
|
257 | - Fixed a security vulnerability in the expression parser. Thanks @xfix.
|
258 |
|
259 |
|
260 | ## 2017-04-02, version 3.11.1
|
261 |
|
262 | - Fixed security vulnerabilities in the expression parser.
|
263 | Thanks Joe Vennix and @xfix.
|
264 |
|
265 |
|
266 | ## 2017-04-02, version 3.11.0
|
267 |
|
268 | - Implemented method Unit.toSI() to convert a unit to base SI units.
|
269 | Thanks @ericman314.
|
270 | - Fixed #821, #822: security vulnerabilities in the expression parser.
|
271 | Thanks @comex and @xfix.
|
272 |
|
273 |
|
274 | ## 2017-03-31, version 3.10.3
|
275 |
|
276 | - More security fixes related to the ones fixed in `v3.10.2`.
|
277 |
|
278 |
|
279 | ## 2017-03-31, version 3.10.2
|
280 |
|
281 | - Fixed a security vulnerability in the expression parser allowing
|
282 | execution of arbitrary JavaScript. Thanks @CapacitorSet and @denvit.
|
283 |
|
284 |
|
285 | ## 2017-03-26, version 3.10.1
|
286 |
|
287 | - Fixed `xgcd` for negative values. Thanks @litmit.
|
288 | - Fixed #807: function transform of existing functions not being removed when
|
289 | overriding such a function.
|
290 |
|
291 |
|
292 | ## 2017-03-05, version 3.10.0
|
293 |
|
294 | - Implemented function `reshape`. Thanks @patgrasso and @ericman314.
|
295 | - Implemented configuration option `seedRandom` for deterministic random
|
296 | numbers. Thanks @morsecodist.
|
297 | - Small fixes in the docs. Thanks @HarrySarson.
|
298 | - Dropped support for component package manager (which became deprecated about
|
299 | one and a half year ago).
|
300 |
|
301 |
|
302 | ## 2017-02-22, version 3.9.3
|
303 |
|
304 | - Fixed #797: issue with production builds of React Native projects.
|
305 | - Fixed `math.round` not accepting inputs `NaN`, `Infinity`, `-Infinity`.
|
306 | - Upgraded all dependencies.
|
307 |
|
308 |
|
309 | ## 2017-02-16, version 3.9.2
|
310 |
|
311 | - Fixed #795: Parse error in case of a multi-line expression with just comments.
|
312 |
|
313 |
|
314 | ## 2017-02-06, version 3.9.1
|
315 |
|
316 | - Fixed #789: Math.js not supporting conversion of `string` to `BigNumber`,
|
317 | `Fraction`, or `Complex` number.
|
318 | - Fixed #790: Expression parser did not pass function arguments of enclosing
|
319 | functions via `scope` to functions having `rawArgs = true`.
|
320 | - Small fixes in the docs. Thanks @HarrySarson.
|
321 |
|
322 |
|
323 | ## 2017-01-23, version 3.9.0
|
324 |
|
325 | - Implemented support for algebra: powerful new functions `simplify` and
|
326 | `derivative`. Thanks @ericman314, @tetslee, and @BigFav.
|
327 | - Implemented Kronecker Product `kron`. Thanks @adamisntdead.
|
328 | - Reverted `FunctionNode` not accepting a string as function name anymore.
|
329 | - Fixed #765: `FunctionAssignmentNode.toString()` returning a string
|
330 | incompatible with the function assignment syntax.
|
331 |
|
332 |
|
333 | ## 2016-12-15, version 3.8.1
|
334 |
|
335 | - Implemented function `mad` (median absolute deviation). Thanks @ruhleder.
|
336 | - Fixed #762: expression parser failing to invoke a function returned
|
337 | by a function.
|
338 |
|
339 |
|
340 | ## 2016-11-18, version 3.8.0
|
341 |
|
342 | - Functions `add` and `multiply` now accept more than two arguments. See #739.
|
343 | - `OperatorNode` now supports more than two arguments. See #739. Thanks @FSMaxB.
|
344 | - Implemented a method `Node.cloneDeep` for the expression nodes. See #745.
|
345 | - Fixed a bug in `Node.clone()` not cloning implicit multiplication correctly.
|
346 | Thanks @FSMaxB.
|
347 | - Fixed #737: Improved algorithm determining the best prefix for units.
|
348 | It will now retain the original unit like `1 cm` when close enough,
|
349 | instead of returning `10 mm`. Thanks @ericman314.
|
350 | - Fixed #732: Allow letter-like unicode characters like Ohm `\u2126`.
|
351 | - Fixed #749: Units `rad`, `deg`, and `grad` can now have prefixes like `millirad`.
|
352 | - Some fixes in the docs and comments of examples. Thanks @HarrySarson.
|
353 |
|
354 |
|
355 | ## 2016-11-05, version 3.7.0
|
356 |
|
357 | - Implemented method `Node.equals(other)` for all nodes of the expression parser.
|
358 | - Implemented BigNumber support in function `arg()`.
|
359 | - Command Line Interface loads faster.
|
360 | - Implicit conversions between Fractions and BigNumbers throw a neat error now
|
361 | (See #710).
|
362 |
|
363 |
|
364 | ## 2016-10-21, version 3.6.0
|
365 |
|
366 | - Implemented function `erf()`. THanks @patgrasso.
|
367 | - Extended function `cross()` to support n-d vectors. Thanks @patgrasso.
|
368 | - Extended function `pickRandom` with the option to pick multiple values from
|
369 | an array and give the values weights: `pickRandom(possibles, number, weights)`.
|
370 | Thanks @woylie.
|
371 | - Parser now exposes test functions like `isAlpha` which can be replaced in
|
372 | order to adjust the allowed characters in variables names (See #715).
|
373 | - Fixed #727: Parser not throwing an error for invalid implicit multiplications
|
374 | like `-2 2` and `2^3 4` (right after the second value of an operator).
|
375 | - Fixed #688: Describe allowed variable names in the docs.
|
376 |
|
377 |
|
378 | ## 2016-09-21, version 3.5.3
|
379 |
|
380 | - Some more fixes regarding numbers ending with a decimal mark (like `2.`).
|
381 |
|
382 |
|
383 | ## 2016-09-20, version 3.5.2
|
384 |
|
385 | - Fixed numbers ending with a decimal mark (like `2.`) not being supported by
|
386 | the parser, solved the underlying ambiguity in the parser. See #707, #711.
|
387 |
|
388 |
|
389 | ## 2016-09-12, version 3.5.1
|
390 |
|
391 | - Removed a left over console.log statement. Thanks @eknkc.
|
392 |
|
393 |
|
394 | ## 2016-09-07, version 3.5.0
|
395 |
|
396 | - Comments of expressions are are now stored in the parsed nodes. See #690.
|
397 | - Fixed function `print` not accepting an Object with formatting options as
|
398 | third parameter Thanks @ThomasBrierley.
|
399 | - Fixed #707: The expression parser no longer accepts numbers ending with a dot
|
400 | like `2.`.
|
401 |
|
402 |
|
403 | ## 2016-08-08, version 3.4.1
|
404 |
|
405 | - Fixed broken bundle files (`dist/math.js`, `dist/math.min.js`).
|
406 | - Fixed some layout issues in the function reference docs.
|
407 |
|
408 |
|
409 | ## 2016-08-07, version 3.4.0
|
410 |
|
411 | - Implemented support for custom units using `createUnit`. Thanks @ericman314.
|
412 | - Implemented function `splitUnits`. Thanks @ericman314.
|
413 | - Implemented function `isPrime`. Thanks @MathBunny.
|
414 |
|
415 |
|
416 | ## 2016-07-05, version 3.3.0
|
417 |
|
418 | - Implemented function `isNaN`.
|
419 | - Function `math.filter` now passes three arguments to the callback function:
|
420 | value, index, and array.
|
421 | - Removed the check on the number of arguments from functions defined in the
|
422 | expression parser (see #665).
|
423 | - Fixed #665: functions `map`, `forEach`, and `filter` now invoke callbacks
|
424 | which are a typed-function with the correct number of arguments.
|
425 |
|
426 |
|
427 | ## 2016-04-26, version 3.2.1
|
428 |
|
429 | - Fixed #651: unable to perform calculations on "Unit-less" units.
|
430 | - Fixed matrix.subset mutating the replacement matrix when unsqueezing it.
|
431 |
|
432 |
|
433 | ## 2016-04-16, version 3.2.0
|
434 |
|
435 | - Implemented #644: method `Parser.getAll()` to retrieve all defined variables.
|
436 | - Upgraded dependencies (decimal.js@5.0.8, fraction.js@3.3.1,
|
437 | typed-function@0.10.4).
|
438 | - Fixed #601: Issue with unnamed typed-functions by upgrading to
|
439 | typed-function v0.10.4.
|
440 | - Fixed #636: More strict `toTex` templates, reckon with number of arguments.
|
441 | - Fixed #641: Bug in expression parser parsing implicit multiplication with
|
442 | wrong precedence in specific cases.
|
443 | - Fixed #645: Added documentation about `engineering` notation of function
|
444 | `math.format`.
|
445 |
|
446 |
|
447 | ## 2016-04-03, version 3.1.4
|
448 |
|
449 | - Using ES6 Math functions like `Math.sinh`, `Math.cbrt`, `Math.sign`, etc when
|
450 | available.
|
451 | - Fixed #631: unit aliases `weeks`, `months`, and `years` where missing.
|
452 | - Fixed #632: problem with escaped backslashes at the end of strings.
|
453 | - Fixed #635: `Node.toString` options where not passed to function arguments.
|
454 | - Fixed #629: expression parser throws an error when passing a number with
|
455 | decimal exponent instead of parsing them as implicit multiplication.
|
456 | - Fixed #484, #555: inaccuracy of `math.sinh` for values between -1 and 1.
|
457 | - Fixed #625: Unit `in` (`inch`) not always working due to ambiguity with
|
458 | the operator `a in b` (alias of `a to b`).
|
459 |
|
460 |
|
461 | ## 2016-03-24, version 3.1.3
|
462 |
|
463 | - Fix broken bundle.
|
464 |
|
465 |
|
466 | ## 2016-03-24, version 3.1.2
|
467 |
|
468 | - Fix broken npm release.
|
469 |
|
470 |
|
471 | ## 2016-03-24, version 3.1.1
|
472 |
|
473 | - Fixed #621: a bug in parsing implicit multiplications like `(2)(3)+4`.
|
474 | - Fixed #623: `nthRoot` of zero with a negative root returned `0` instead of
|
475 | `Infinity`.
|
476 | - Throw an error when functions `min`, `max`, `mean`, or `median` are invoked
|
477 | with multiple matrices as arguments (see #598).
|
478 |
|
479 |
|
480 | ## 2016-03-19, version 3.1.0
|
481 |
|
482 | - Hide multiplication operator by default when outputting `toTex` and `toString`
|
483 | for implicit multiplications. Implemented and option to output the operator.
|
484 | - Implemented unit `kip` and alias `kips`. Thanks @hgupta9.
|
485 | - Added support for prefixes for units `mol` and `mole`. Thanks @stu-blair.
|
486 | - Restored support for implicit multiplications like `2(3+4)` and `(2+3)(4+5)`.
|
487 | - Some improvements in the docs.
|
488 | - Added automatic conversions from `boolean` and `null` to `Fraction`,
|
489 | and conversions from `Fraction` to `Complex`.
|
490 |
|
491 |
|
492 | ## 2016-03-04, version 3.0.0
|
493 |
|
494 | ### breaking changes
|
495 |
|
496 | - More restricted support for implicit multiplication in the expression
|
497 | parser: `(...)(...)` is now evaluated as a function invocation,
|
498 | and `[...][...]` as a matrix subset.
|
499 | - Matrix multiplication no longer squeezes scalar outputs to a scalar value,
|
500 | but leaves them as they are: a vector or matrix containing a single value.
|
501 | See #529.
|
502 | - Assignments in the expression parser now return the assigned value rather
|
503 | than the created or updated object (see #533). Example:
|
504 |
|
505 | ```
|
506 | A = eye(3)
|
507 | A[1,1] = 2 # this assignment now returns 2 instead of A
|
508 | ```
|
509 |
|
510 | - Expression parser now supports objects. This involves a refactoring and
|
511 | extension in expression nodes:
|
512 | - Implemented new node `ObjectNode`.
|
513 | - Refactored `AssignmentNode`, `UpdateNode`, and `IndexNode` are refactored
|
514 | into `AccessorNode`, `AssignmentNode`, and `IndexNode` having a different API.
|
515 | - Upgraded the used BigNumber library `decimal.js` to v5. Replaced the
|
516 | trigonometric functions of math.js with those provided in decimal.js v5.
|
517 | This can give slightly different behavior qua round-off errors.
|
518 | - Replaced the internal `Complex.js` class with the `complex.js` library
|
519 | created by @infusion.
|
520 | - Entries in a matrix (typically numbers, BigNumbers, Units, etc) are now
|
521 | considered immutable, they are no longer copied when performing operations on
|
522 | the entries, improving performance.
|
523 | - Implemented nearly equal comparison for relational functions (`equal`,
|
524 | `larger`, `smaller`, etc.) when using BigNumbers.
|
525 | - Changed the casing of the configuration options `matrix` (`Array` or `Matrix`)
|
526 | and `number` (`number`, `BigNumber`, `Fraction`) such that they now match
|
527 | the type returned by `math.typeof`. Wrong casing gives a console warning but
|
528 | will still work.
|
529 | - Changed the default config value for `epsilon` from `1e-14` to `1e-12`,
|
530 | see #561.
|
531 |
|
532 | ### non-breaking changes
|
533 |
|
534 | - Extended function `pow` to return the real root for cubic roots of negative
|
535 | numbers. See #525, #482, #567.
|
536 | - Implemented support for JSON objects in the expression parser and the
|
537 | function `math.format`.
|
538 | - Function `math.fraction` now supports `BigNumber`, and function
|
539 | `math.bignumber` now supports `Fraction`.
|
540 | - Expression parser now allows function and/or variable assignments inside
|
541 | accessors and conditionals, like `A[x=2]` or `a > 2 ? b="ok" : b="fail"`.
|
542 | - Command line interface:
|
543 | - Outputs the variable name of assignments.
|
544 | - Fixed not rounding BigNumbers to 14 digits like numbers.
|
545 | - Fixed non-working autocompletion of user defined variables.
|
546 | - Reorganized and extended docs, added docs on classes and more. Thanks @hgupta9.
|
547 | - Added new units `acre`, `hectare`, `torr`, `bar`, `mmHg`, `mmH2O`, `cmH2O`,
|
548 | and added new aliases `acres`, `hectares`, `sqfeet`, `sqyard`, `sqmile`,
|
549 | `sqmiles`, `mmhg`, `mmh2o`, `cmh2o`. Thanks @hgupta9.
|
550 | - Fixed a bug in the toString method of an IndexNode.
|
551 | - Fixed angle units `deg`, `rad`, `grad`, `cycle`, `arcsec`, and `arcmin` not
|
552 | being defined as BigNumbers when configuring to use BigNumbers.
|
553 |
|
554 |
|
555 | ## 2016-02-03, version 2.7.0
|
556 |
|
557 | - Added more unit aliases for time: `secs`, `mins`, `hr`, `hrs`. See #551.
|
558 | - Added support for doing operations with mixed `Fractions` and `BigNumbers`.
|
559 | - Fixed #540: `math.intersect()` returning null in some cases. Thanks @void42.
|
560 | - Fixed #546: Cannot import BigNumber, Fraction, Matrix, Array.
|
561 | Thanks @brettjurgens.
|
562 |
|
563 |
|
564 | ## 2016-01-08, version 2.6.0
|
565 |
|
566 | - Implemented (complex) units `VA` and `VAR`.
|
567 | - Implemented time units for weeks, months, years, decades, centuries, and
|
568 | millennia. Thanks @owenversteeg.
|
569 | - Implemented new notation `engineering` in function `math.format`.
|
570 | Thanks @johnmarinelli.
|
571 | - Fixed #523: In some circumstances, matrix subset returned a scalar instead
|
572 | of the correct subset.
|
573 | - Fixed #536: A bug in an internal method used for sparse matrices.
|
574 |
|
575 |
|
576 | ## 2015-12-05, version 2.5.0
|
577 |
|
578 | - Implemented support for numeric types `Fraction` and `BigNumber` in units.
|
579 | - Implemented new method `toNumeric` for units.
|
580 | - Implemented new units `arcsec`, `arcsecond`, `arcmin`, `arcminute`.
|
581 | Thanks @devdevdata222.
|
582 | - Implemented new unit `Herts` (`Hz`). Thanks @SwamWithTurtles.
|
583 | - Fixed #485: Scoping issue with variables both used globally as well as in a
|
584 | function definition.
|
585 | - Fixed: Function `number` didn't support `Fraction` as input.
|
586 |
|
587 |
|
588 | ## 2015-11-14, version 2.4.2
|
589 |
|
590 | - Fixed #502: Issue with `format` in some JavaScript engines.
|
591 | - Fixed #503: Removed trailing commas and the use of keyword `import` as
|
592 | property, as this gives issues with old JavaScript engines.
|
593 |
|
594 |
|
595 | ## 2015-10-29, version 2.4.1
|
596 |
|
597 | - Fixed #480: `nthRoot` not working on Internet Explorer (up to IE 11).
|
598 | - Fixed #490: `nthRoot` returning an error for negative values like
|
599 | `nthRoot(-2, 3)`.
|
600 | - Fixed #489: an issue with initializing a sparse matrix without data.
|
601 | Thanks @Retsam.
|
602 | - Fixed: #493: function `combinations` did not throw an exception for
|
603 | non-integer values of `k`.
|
604 | - Fixed: function `import` did not override typed functions when the option
|
605 | override was set true.
|
606 | - Fixed: added functions `math.sparse` and `math.index` to the reference docs,
|
607 | they where missing.
|
608 | - Fixed: removed memoization from `gamma` and `factorial` functions, this
|
609 | could blow up memory.
|
610 |
|
611 |
|
612 | ## 2015-10-09, version 2.4.0
|
613 |
|
614 | - Added support in the expression parser for mathematical alphanumeric symbols
|
615 | in the expression parser: unicode range \u{1D400} to \u{1D7FF} excluding
|
616 | invalid code points.
|
617 | - Extended function `distance` with more signatures. Thanks @kv-kunalvyas.
|
618 | - Fixed a bug in functions `sin` and `cos`, which gave wrong results for
|
619 | BigNumber integer values around multiples of tau (i.e. `sin(bignumber(7))`).
|
620 | - Fixed value of unit `stone`. Thanks @Esvandiary for finding the error.
|
621 |
|
622 |
|
623 | ## 2015-09-19, version 2.3.0
|
624 |
|
625 | - Implemented function `distance`. Thanks @devanp92.
|
626 | - Implemented support for Fractions in function `lcm`. Thanks @infusion.
|
627 | - Implemented function `cbrt` for numbers, complex numbers, BigNumbers, Units.
|
628 | - Implemented function `hypot`.
|
629 | - Upgraded to fraction.js v3.0.0.
|
630 | - Fixed #450: issue with non sorted index in sparse matrices.
|
631 | - Fixed #463, #322: inconsistent handling of implicit multiplication.
|
632 | - Fixed #444: factorial of infinity not returning infinity.
|
633 |
|
634 |
|
635 | ## 2015-08-30, version 2.2.0
|
636 |
|
637 | - Units with powers (like `m^2` and `s^-1`) now output with the best prefix.
|
638 | - Implemented support for units to `abs`, `cube`, `sign`, `sqrt`, `square`.
|
639 | Thanks @ericman314.
|
640 | - Implemented function `catalan` (Combinatorics). Thanks @devanp92.
|
641 | - Improved the `canDefineProperty` check to return false in case of IE8, which
|
642 | has a broken implementation of `defineProperty`. Thanks @golmansax.
|
643 | - Fixed function `to` not working in case of a simplified unit.
|
644 | - Fixed #437: an issue with row swapping in `lup`, also affecting `lusolve`.
|
645 |
|
646 |
|
647 | ## 2015-08-12, version 2.1.1
|
648 |
|
649 | - Fixed wrong values of the physical constants `speedOfLight`, `molarMassC12`,
|
650 | and `magneticFluxQuantum`. Thanks @ericman314 for finding two of them.
|
651 |
|
652 |
|
653 | ## 2015-08-11, version 2.1.0
|
654 |
|
655 | - Implemented derived units (like `110 km/h in m/s`). Thanks @ericman314.
|
656 | - Implemented support for electric units. Thanks @ericman314.
|
657 | - Implemented about 50 physical constants like `speedOfLight`, `gravity`, etc.
|
658 | - Implemented function `kldivergence` (Kullback-Leibler divergence).
|
659 | Thanks @saromanov.
|
660 | - Implemented function `mode`. Thanks @kv-kunalvyas.
|
661 | - Added support for unicode characters in the expression parser: greek letters
|
662 | and latin letters with accents. See #265.
|
663 | - Internal functions `Unit.parse` and `Complex.parse` now throw an Error
|
664 | instead of returning null when passing invalid input.
|
665 |
|
666 |
|
667 | ## 2015-07-29, version 2.0.1
|
668 |
|
669 | - Fixed operations with mixed fractions and numbers be converted to numbers
|
670 | instead of fractions.
|
671 |
|
672 |
|
673 | ## 2015-07-28, version 2.0.0
|
674 |
|
675 | - Large internal refactoring:
|
676 | - performance improvements.
|
677 | - allows to create custom bundles
|
678 | - functions are composed using `typed-function` and are extensible
|
679 | - Implemented support for fractions, powered by the library `fraction.js`.
|
680 | - Implemented matrix LU decomposition with partial pivoting and a LU based
|
681 | linear equations solver (functions `lup` and `lusolve`). Thanks @rjbaucells.
|
682 | - Implemented a new configuration option `predictable`, which can be set to
|
683 | true in order to ensure predictable function output types.
|
684 | - Implemented function `intersect`. Thanks @kv-kunalvyas.
|
685 | - Implemented support for adding `toTex` properties to custom functions.
|
686 | Thanks @FSMaxB.
|
687 | - Implemented support for complex values to `nthRoot`. Thanks @gangachris.
|
688 | - Implemented util functions `isInteger`, `isNegative`, `isNumeric`,
|
689 | `isPositive`, and `isZero`.
|
690 |
|
691 | ### breaking changes
|
692 |
|
693 | - String input is now converted to numbers by default for all functions.
|
694 | - Adding two strings will no longer concatenate them, but will convert the
|
695 | strings to numbers and add them.
|
696 | - Function `index` does no longer accept an array `[start, end, step]`, but
|
697 | instead accepts an array with arbitrary index values. It also accepts
|
698 | a `Range` object as input.
|
699 | - Function `typeof` no longer returns lower case names, but now returns lower
|
700 | case names for primitives (like `number`, `boolean`, `string`), and
|
701 | upper-camel-case for non-primitives (like `Array`, `Complex`, `Function`).
|
702 | - Function `import` no longer supports a module name as argument. Instead,
|
703 | modules can be loaded using require: `math.import(require('module-name'))`.
|
704 | - Function `import` has a new option `silent` to ignore errors, and throws
|
705 | errors on duplicates by default.
|
706 | - Method `Node.compile()` no longer needs `math` to be passed as argument.
|
707 | - Reintroduced method `Node.eval([scope])`.
|
708 | - Function `sum` now returns zero when input is an empty array. Thanks @FSMAxB.
|
709 | - The size of Arrays is no longer validated. Matrices will validate this on
|
710 | creation.
|
711 |
|
712 |
|
713 | ## 2015-07-12, version 1.7.1
|
714 |
|
715 | - Fixed #397: Inaccuracies in nthRoot for very large values, and wrong results
|
716 | for very small values. (backported from v2)
|
717 | - Fixed #405: Parser throws error when defining a function in a multiline
|
718 | expression.
|
719 |
|
720 |
|
721 | ## 2015-05-31, version 1.7.0
|
722 |
|
723 | - Implemented function `quantileSeq` and `partitionSelect`. Thanks @BigFav.
|
724 | - Implemented functions `stirlingS2`, `bellNumbers`, `composition`, and
|
725 | `multinomial`. Thanks @devanp92.
|
726 | - Improved the performance of `median` (see #373). Thanks @BigFav.
|
727 | - Extended the command line interface with a `mode` option to output either
|
728 | the expressions result, string representation, or tex representation.
|
729 | Thanks @FSMaxB.
|
730 | - Fixed #309: Function median mutating the input matrix. Thanks @FSMaxB.
|
731 | - Fixed `Node.transform` not recursing over replaced parts of the
|
732 | node tree (see #349).
|
733 | - Fixed #381: issue in docs of `randomInt`.
|
734 |
|
735 |
|
736 | ## 2015-04-22, version 1.6.0
|
737 |
|
738 | - Improvements in `toTex`. Thanks @FSMaxB.
|
739 | - Fixed #328: `abs(0 + 0i)` evaluated to `NaN`.
|
740 | - Fixed not being able to override lazy loaded constants.
|
741 |
|
742 |
|
743 | ## 2015-04-09, version 1.5.2
|
744 |
|
745 | - Fixed #313: parsed functions did not handle recursive calls correctly.
|
746 | - Fixed #251: binary prefix and SI prefix incorrectly used for byte. Now
|
747 | following SI standards (`1 KiB == 1024 B`, `1 kB == 1000 B`).
|
748 | - Performance improvements in parsed functions.
|
749 |
|
750 |
|
751 | ## 2015-04-08, version 1.5.1
|
752 |
|
753 | - Fixed #316: a bug in rounding values when formatting.
|
754 | - Fixed #317, #319: a bug in formatting negative values.
|
755 |
|
756 |
|
757 | ## 2015-03-28, version 1.5.0
|
758 |
|
759 | - Added unit `stone` (6.35 kg).
|
760 | - Implemented support for sparse matrices. Thanks @rjbaucells.
|
761 | - Implemented BigNumber support for function `atan2`. Thanks @BigFav.
|
762 | - Implemented support for custom LaTeX representations. Thanks @FSMaxB.
|
763 | - Improvements and bug fixes in outputting parentheses in `Node.toString` and
|
764 | `Node.toTex` functions. Thanks @FSMaxB.
|
765 | - Fixed #291: function `format` sometimes returning exponential notation when
|
766 | it should return a fixed notation.
|
767 |
|
768 |
|
769 | ## 2015-02-28, version 1.4.0
|
770 |
|
771 | - Implemented trigonometric functions:
|
772 | `acosh`, `acoth`, `acsch`, `asech`, `asinh`, `atanh`, `acot`, `acsc`, `asec`.
|
773 | Thanks @BigFav.
|
774 | - Added BigNumber support for functions: `cot`, `csc`, `sec`, `coth`,
|
775 | `csch`, `sech`. Thanks @BigFav.
|
776 | - Implemented support for serialization and deserialization of math.js data
|
777 | types.
|
778 | - Fixed the calculation of `norm()` and `abs()` for large complex numbers.
|
779 | Thanks @rjbaucells.
|
780 | - Fixed #281: improved formatting complex numbers. Round the real or imaginary
|
781 | part to zero when the difference is larger than the configured precision.
|
782 |
|
783 |
|
784 | ## 2015-02-09, version 1.3.0
|
785 |
|
786 | - Implemented BigNumber implementations of most trigonometric functions: `sin`,
|
787 | `cos`, `tan`, `asin`, `acos`, `atan`, `cosh`, `sinh`, `tanh`. Thanks @BigFav.
|
788 | - Implemented function `trace`. Thanks @pcorey.
|
789 | - Faster loading of BigNumber configuration with a high precision by lazy
|
790 | loading constants like `pi` and `e`.
|
791 | - Fixed constants `NaN` and `Infinity` not being BigNumber objects when
|
792 | BigNumbers are configured.
|
793 | - Fixed missing parentheses in the `toTex` representation of function
|
794 | `permutations`.
|
795 | - Some minor fixes in the docs. Thanks @KenanY.
|
796 |
|
797 |
|
798 | ## 2014-12-25, version 1.2.0
|
799 |
|
800 | - Support for bitwise operations `bitAnd`, `bitNot`, `bitOr`, `bitXor`,
|
801 | `leftShift`, `rightArithShift`, and `rightLogShift`. Thanks @BigFav.
|
802 | - Support for boolean operations `and`, `not`, `or`, `xor`. Thanks @BigFav.
|
803 | - Support for `gamma` function. Thanks @BigFav.
|
804 | - Converting a unit without value will now result in a unit *with* value,
|
805 | i.e. `inch in cm` will return `2.54 cm` instead of `cm`.
|
806 | - Improved accuracy of `sinh` and complex `cos` and `sin`. Thanks @pavpanchekha.
|
807 | - Renamed function `select` to `chain`. The old function `select` will remain
|
808 | functional until math.js v2.0.
|
809 | - Upgraded to decimal.js v4.0.1 (BigNumber library).
|
810 |
|
811 |
|
812 | ## 2014-11-22, version 1.1.1
|
813 |
|
814 | - Fixed Unit divided by Number returning zero.
|
815 | - Fixed BigNumber downgrading to Number for a negative base in `pow`.
|
816 | - Fixed some typos in error messaging (thanks @andy0130tw) and docs.
|
817 |
|
818 |
|
819 | ## 2014-11-15, version 1.1.0
|
820 |
|
821 | - Implemented functions `dot` (dot product), `cross` (cross product), and
|
822 | `nthRoot`.
|
823 | - Officially opened up the API of expression trees:
|
824 | - Documented the API.
|
825 | - Implemented recursive functions `clone`, `map`, `forEach`, `traverse`,
|
826 | `transform`, and `filter` for expression trees.
|
827 | - Parameter `index` in the callbacks of `map` and `forEach` are now cloned
|
828 | for every callback.
|
829 | - Some internal refactoring inside nodes to make the API consistent:
|
830 | - Renamed `params` to `args` and vice versa to make things consistent.
|
831 | - Renamed `Block.nodes` to `Block.blocks`.
|
832 | - `FunctionNode` now has a `name: string` instead of a `symbol: SymbolNode`.
|
833 | - Changed constructor of `RangeNode` to
|
834 | `new RangeNode(start: Node, end: Node [, step: Node])`.
|
835 | - Nodes for a `BlockNode` must now be passed via the constructor instead
|
836 | of via a function `add`.
|
837 | - Fixed `2e` giving a syntax error instead of being parsed as `2 * e`.
|
838 |
|
839 |
|
840 | ## 2014-09-12, version 1.0.1
|
841 |
|
842 | - Disabled array notation for ranges in a matrix index in the expression parser
|
843 | (it is confusing and redundant there).
|
844 | - Fixed a regression in the build of function subset not being able to return
|
845 | a scalar.
|
846 | - Fixed some missing docs and broken links in the docs.
|
847 |
|
848 |
|
849 | ## 2014-09-04, version 1.0.0
|
850 |
|
851 | - Implemented a function `filter(x, test)`.
|
852 | - Removed `math.distribution` for now, needs some rethinking.
|
853 | - `math.number` can convert units to numbers (requires a second argument)
|
854 | - Fixed some precedence issues with the range and conversion operators.
|
855 | - Fixed an zero-based issue when getting a matrix subset using an index
|
856 | containing a matrix.
|
857 |
|
858 |
|
859 | ## 2014-08-21, version 0.27.0
|
860 |
|
861 | - Implemented functions `sort(x [, compare])` and `flatten(x)`.
|
862 | - Implemented support for `null` in all functions.
|
863 | - Implemented support for "rawArgs" functions in the expression parser. Raw
|
864 | functions are invoked with unevaluated parameters (nodes).
|
865 | - Expressions in the expression parser can now be spread over multiple lines,
|
866 | like '2 +\n3'.
|
867 | - Changed default value of the option `wrap` of function `math.import` to false.
|
868 | - Changed the default value for new entries in a resized matrix when to zero.
|
869 | To leave new entries uninitialized, use the new constant `math.uninitialized`
|
870 | as default value.
|
871 | - Renamed transform property from `__transform__` to `transform`, and documented
|
872 | the transform feature.
|
873 | - Fixed a bug in `math.import` not applying options when passing a module name.
|
874 | - A returned matrix subset is now only squeezed when the `index` consists of
|
875 | scalar values, and no longer for ranges resolving into a single value.
|
876 |
|
877 |
|
878 | ## 2014-08-03, version 0.26.0
|
879 |
|
880 | - A new instance of math.js can no longer be created like `math([options])`,
|
881 | to prevent side effects from math being a function instead of an object.
|
882 | Instead, use the function `math.create([options])` to create a new instance.
|
883 | - Implemented `BigNumber` support for all constants: `pi`, `tau`, `e`, `phi`,
|
884 | `E`, `LN2`, `LN10`, `LOG2E`, `LOG10E`, `PI`, `SQRT1_2`, and `SQRT2`.
|
885 | - Implemented `BigNumber` support for functions `gcd`, `xgcd`, and `lcm`.
|
886 | - Fixed function `gxcd` returning an Array when math.js was configured
|
887 | as `{matrix: 'matrix'}`.
|
888 | - Multi-line expressions now return a `ResultSet` instead of an `Array`.
|
889 | - Implemented transforms (used right now to transform one-based indices to
|
890 | zero-based for expressions).
|
891 | - When used inside the expression parser, functions `concat`, `min`, `max`,
|
892 | and `mean` expect an one-based dimension number.
|
893 | - Functions `map` and `forEach` invoke the callback with one-based indices
|
894 | when used from within the expression parser.
|
895 | - When adding or removing dimensions when resizing a matrix, the dimensions
|
896 | are added/removed from the inner side (right) instead of outer side (left).
|
897 | - Improved index out of range errors.
|
898 | - Fixed function `concat` not accepting a `BigNumber` for parameter `dim`.
|
899 | - Function `squeeze` now squeezes both inner and outer singleton dimensions.
|
900 | - Output of getting a matrix subset is not automatically squeezed anymore
|
901 | except for scalar output.
|
902 | - Renamed `FunctionNode` to `FunctionAssignmentNode`, and renamed `ParamsNode`
|
903 | to `FunctionNode` for more clarity.
|
904 | - Fixed broken auto completion in CLI.
|
905 | - Some minor fixes.
|
906 |
|
907 |
|
908 | ## 2014-07-01, version 0.25.0
|
909 |
|
910 | - The library now immediately returns a default instance of mathjs, there is
|
911 | no need to instantiate math.js in a separate step unless one ones to set
|
912 | configuration options:
|
913 |
|
914 | // instead of:
|
915 | var mathjs = require('mathjs'), // load math.js
|
916 | math = mathjs(); // create an instance
|
917 |
|
918 | // just do:
|
919 | var math = require('mathjs');
|
920 | - Implemented support for implicit multiplication, like `math.eval('2a', {a:3})`
|
921 | and `math.eval('(2+3)(1-3)')`. This changes behavior of matrix indexes as
|
922 | well: an expression like `[...][...]` is not evaluated as taking a subset of
|
923 | the first matrix, but as an implicit multiplication of two matrices.
|
924 | - Removed utility function `ifElse`. This function is redundant now the
|
925 | expression parser has a conditional operator `a ? b : c`.
|
926 | - Fixed a bug with multiplying a number with a temperature,
|
927 | like `math.eval('10 * celsius')`.
|
928 | - Fixed a bug with symbols having value `undefined` not being evaluated.
|
929 |
|
930 |
|
931 | ## 2014-06-20, version 0.24.1
|
932 |
|
933 | - Something went wrong with publishing on npm.
|
934 |
|
935 |
|
936 | ## 2014-06-20, version 0.24.0
|
937 |
|
938 | - Added constant `null`.
|
939 | - Functions `equal` and `unequal` support `null` and `undefined` now.
|
940 | - Function `typeof` now recognizes regular expressions as well.
|
941 | - Objects `Complex`, `Unit`, and `Help` now return their string representation
|
942 | when calling `.valueOf()`.
|
943 | - Changed the default number of significant digits for BigNumbers from 20 to 64.
|
944 | - Changed the behavior of the conditional operator (a ? b : c) to lazy
|
945 | evaluating.
|
946 | - Fixed imported, wrapped functions not accepting `null` and `undefined` as
|
947 | function arguments.
|
948 |
|
949 |
|
950 | ## 2014-06-10, version 0.23.0
|
951 |
|
952 | - Renamed some functions (everything now has a logical, camel case name):
|
953 | - Renamed functions `edivide`, `emultiply`, and `epow` to `dotDivide`,
|
954 | `dotMultiply`, and `dotPow` respectively.
|
955 | - Renamed functions `smallereq` and `largereq` to `smallerEq` and `largerEq`.
|
956 | - Renamed function `unary` to `unaryMinus` and added support for strings.
|
957 | - `end` is now a reserved keyword which cannot be used as function or symbol
|
958 | name in the expression parser, and is not allowed in the scope against which
|
959 | an expression is evaluated.
|
960 | - Implemented function `unaryPlus` and unary plus operator.
|
961 | - Implemented function `deepEqual` for matrix comparisons.
|
962 | - Added constant `phi`, the golden ratio (`phi = 1.618...`).
|
963 | - Added constant `version`, returning the version number of math.js as string.
|
964 | - Added unit `drop` (`gtt`).
|
965 | - Fixed not being able to load math.js using AMD/require.js.
|
966 | - Changed signature of `math.parse(expr, nodes)` to `math.parse(expr, options)`
|
967 | where `options: {nodes: Object.<String, Node>}`
|
968 | - Removed matrix support from conditional function `ifElse`.
|
969 | - Removed automatic assignment of expression results to variable `ans`.
|
970 | This functionality can be restored by pre- or postprocessing every evaluation,
|
971 | something like:
|
972 |
|
973 | function evalWithAns (expr, scope) {
|
974 | var ans = math.eval(expr, scope);
|
975 | if (scope) {
|
976 | scope.ans = ans;
|
977 | }
|
978 | return ans;
|
979 | }
|
980 |
|
981 |
|
982 | ## 2014-05-22, version 0.22.0
|
983 |
|
984 | - Implemented support to export expressions to LaTeX. Thanks Niels Heisterkamp
|
985 | (@nheisterkamp).
|
986 | - Output of matrix multiplication is now consistently squeezed.
|
987 | - Added reference documentation in the section /docs/reference.
|
988 | - Fixed a bug in multiplying units without value with a number (like `5 * cm`).
|
989 | - Fixed a bug in multiplying two matrices containing vectors (worked fine for
|
990 | arrays).
|
991 | - Fixed random functions not accepting Matrix as input, and always returning
|
992 | a Matrix as output.
|
993 |
|
994 |
|
995 | ## 2014-05-13, version 0.21.1
|
996 |
|
997 | - Removed `crypto` library from the bundle.
|
998 | - Deprecated functions `Parser.parse` and `Parser.compile`. Use
|
999 | `math.parse` and `math.compile` instead.
|
1000 | - Fixed function `add` not adding strings and matrices element wise.
|
1001 | - Fixed parser not being able to evaluate an exponent followed by a unary minus
|
1002 | like `2^-3`, and a transpose followed by an index like `[3]'[1]`.
|
1003 |
|
1004 |
|
1005 | ## 2014-04-24, version 0.21.0
|
1006 |
|
1007 | - Implemented trigonometric hyperbolic functions `cosh`, `coth`, `csch`,
|
1008 | `sech`, `sinh`, `tanh`. Thanks Rogelio J. Baucells (@rjbaucells).
|
1009 | - Added property `type` to all expression nodes in an expression tree.
|
1010 | - Fixed functions `log`, `log10`, `pow`, and `sqrt` not supporting complex
|
1011 | results from BigNumber input (like `sqrt(bignumber(-4))`).
|
1012 |
|
1013 |
|
1014 | ## 2014-04-16, version 0.20.0
|
1015 |
|
1016 | - Switched to module `decimal.js` for BigNumber support, instead of
|
1017 | `bignumber.js`.
|
1018 | - Implemented support for polar coordinates to the `Complex` datatype.
|
1019 | Thanks Finn Pauls (@finnp).
|
1020 | - Implemented BigNumber support for functions `exp`, `log`, and `log10`.
|
1021 | - Implemented conditional operator `a ? b : c` in expression parser.
|
1022 | - Improved floating point comparison: the functions now check whether values
|
1023 | are nearly equal, against a configured maximum relative difference `epsilon`.
|
1024 | Thanks Rogelio J. Baucells (@rjbaucells).
|
1025 | - Implemented function `norm`. Thanks Rogelio J. Baucells (@rjbaucells).
|
1026 | - Improved function `ifElse`, is now specified for special data types too.
|
1027 | - Improved function `det`. Thanks Bryan Cuccioli (@bcuccioli).
|
1028 | - Implemented `BigNumber` support for functions `det` and `diag`.
|
1029 | - Added unit alias `lbs` (pound mass).
|
1030 | - Changed configuration option `decimals` to `precision` (applies to BigNumbers
|
1031 | only).
|
1032 | - Fixed support for element-wise comparisons between a string and a matrix.
|
1033 | - Fixed: expression parser now trows IndexErrors with one-based indices instead
|
1034 | of zero-based.
|
1035 | - Minor bug fixes.
|
1036 |
|
1037 |
|
1038 | ## 2014-03-30, version 0.19.0
|
1039 |
|
1040 | - Implemented functions `compare`, `sum`, `prod`, `var`, `std`, `median`.
|
1041 | - Implemented function `ifElse` Thanks @mtraynham.
|
1042 | - Minor bug fixes.
|
1043 |
|
1044 |
|
1045 | ## 2014-02-15, version 0.18.1
|
1046 |
|
1047 | - Added unit `feet`.
|
1048 | - Implemented function `compile` (shortcut for parsing and then compiling).
|
1049 | - Improved performance of function `pow` for matrices. Thanks @hamadu.
|
1050 | - Fixed broken auto completion in the command line interface.
|
1051 | - Fixed an error in function `combinations` for large numbers, and
|
1052 | improved performance of both functions `combinations` and `permutations`.
|
1053 |
|
1054 |
|
1055 | ## 2014-01-18, version 0.18.0
|
1056 |
|
1057 | - Changed matrix index notation of expression parser from round brackets to
|
1058 | square brackets, for example `A[1, 1:3]` instead of `A(1, 1:3)`.
|
1059 | - Removed need to use the `function` keyword for function assignments in the
|
1060 | expression parser, you can define a function now like `f(x) = x^2`.
|
1061 | - Implemented a compilation step in the expression parser: expressions are
|
1062 | compiled into JavaScript, giving much better performance (easily 10x as fast).
|
1063 | - Renamed unit conversion function and operator `in` to `to`. Operator `in` is
|
1064 | still available in the expression parser as an alias for `to`. Added unit
|
1065 | `in`, an abbreviation for `inch`. Thanks Elijah Insua (@tmpvar).
|
1066 | - Added plurals and aliases for units.
|
1067 | - Implemented an argument `includeEnd` for function `range` (false by default).
|
1068 | - Ranges in the expression parser now support big numbers.
|
1069 | - Implemented functions `permutations` and `combinations`.
|
1070 | Thanks Daniel Levin (@daniel-levin).
|
1071 | - Added lower case abbreviation `l` for unit litre.
|
1072 |
|
1073 |
|
1074 | ## 2013-12-19, version 0.17.1
|
1075 |
|
1076 | - Fixed a bug with negative temperatures.
|
1077 | - Fixed a bug with prefixes of units squared meter `m2` and cubic meter `m3`.
|
1078 |
|
1079 |
|
1080 | ## 2013-12-12, version 0.17.0
|
1081 |
|
1082 | - Renamed and flattened configuration settings:
|
1083 | - `number.defaultType` is now `number`.
|
1084 | - `number.precision` is now `decimals`.
|
1085 | - `matrix.defaultType` is now `matrix`.
|
1086 | - Function `multiply` now consistently outputs a complex number on complex input.
|
1087 | - Fixed `mod` and `in` not working as function (only as operator).
|
1088 | - Fixed support for old browsers (IE8 and older), compatible when using es5-shim.
|
1089 | - Fixed support for Java's ScriptEngine.
|
1090 |
|
1091 |
|
1092 | ## 2013-11-28, version 0.16.0
|
1093 |
|
1094 | - Implemented BigNumber support for arbitrary precision calculations.
|
1095 | Added settings `number.defaultType` and `number.precision` to configure
|
1096 | big numbers.
|
1097 | - Documentation is extended.
|
1098 | - Removed utility functions `isScalar`, `toScalar`, `isVector`, `toVector`
|
1099 | from `Matrix` and `Range`. Use `math.squeeze` and `math.size` instead.
|
1100 | - Implemented functions `get` and `set` on `Matrix`, for easier and faster
|
1101 | retrieval/replacement of elements in a matrix.
|
1102 | - Implemented function `resize`, handling matrices, scalars, and strings.
|
1103 | - Functions `ones` and `zeros` now return an empty matrix instead of a
|
1104 | number 1 or 0 when no arguments are provided.
|
1105 | - Implemented functions `min` and `max` for `Range` and `Index`.
|
1106 | - Resizing matrices now leaves new elements undefined by default instead of
|
1107 | filling them with zeros. Function `resize` now has an extra optional
|
1108 | parameter `defaultValue`.
|
1109 | - Range operator `:` in expression parser has been given a higher precedence.
|
1110 | - Functions don't allow arguments of unknown type anymore.
|
1111 | - Options be set when constructing a math.js instance or using the new function
|
1112 | `config(options`. Options are no longer accessible via `math.options`.
|
1113 | - Renamed `scientific` notation to `exponential` in function `format`.
|
1114 | - Function `format` outputs exponential notation with positive exponents now
|
1115 | always with `+` sign, so outputs `2.1e+3` instead of `2.1e3`.
|
1116 | - Fixed function `squeeze` not being able squeeze into a scalar.
|
1117 | - Some fixes and performance improvements in the `resize` and `subset`
|
1118 | functions.
|
1119 | - Function `size` now adheres to the option `matrix.defaultType` for scalar
|
1120 | input.
|
1121 | - Minor bug fixes.
|
1122 |
|
1123 |
|
1124 | ## 2013-10-26, version 0.15.0
|
1125 |
|
1126 | - Math.js must be instantiated now, static calls are no longer supported. Usage:
|
1127 | - node.js: `var math = require('mathjs')();`
|
1128 | - browser: `var math = mathjs();`
|
1129 | - Implemented support for multiplying vectors with matrices.
|
1130 | - Improved number formatting:
|
1131 | - Function `format` now support various options: precision, different
|
1132 | notations (`fixed`, `scientific`, `auto`), and more.
|
1133 | - Numbers are no longer rounded to 5 digits by default when formatted.
|
1134 | - Implemented a function `format` for `Matrix`, `Complex`, `Unit`, `Range`,
|
1135 | and `Selector` to format using options.
|
1136 | - Function `format` does only stringify values now, and has a new parameter
|
1137 | `precision` to round to a specific number of digits.
|
1138 | - Removed option `math.options.precision`,
|
1139 | use `math.format(value [, precision])` instead.
|
1140 | - Fixed formatting numbers as scientific notation in some cases returning
|
1141 | a zero digit left from the decimal point. (like "0.33333e8" rather than
|
1142 | "3.3333e7"). Thanks @husayt.
|
1143 | - Implemented a function `print` to interpolate values in a template string,
|
1144 | this functionality was moved from the function `format`.
|
1145 | - Implemented statistics function `mean`. Thanks Guillermo Indalecio Fernandez
|
1146 | (@guillermobox).
|
1147 | - Extended and changed `max` and `min` for multi dimensional matrices: they now
|
1148 | return the maximum and minimum of the flattened array. An optional second
|
1149 | argument `dim` allows to calculate the `max` or `min` for specified dimension.
|
1150 | - Renamed option `math.options.matrix.default` to
|
1151 | `math.options.matrix.defaultType`.
|
1152 | - Removed support for comparing complex numbers in functions `smaller`,
|
1153 | `smallereq`, `larger`, `largereq`. Complex numbers cannot be ordered.
|
1154 |
|
1155 |
|
1156 | ## 2013-10-08, version 0.14.0
|
1157 |
|
1158 | - Introduced an option `math.options.matrix.default` which can have values
|
1159 | `matrix` (default) or `array`. This option is used by the functions `eye`,
|
1160 | `ones`, `range`, and `zeros`, to determine the type of matrix output.
|
1161 | - Getting a subset of a matrix will automatically squeeze the resulting subset,
|
1162 | setting a subset of a matrix will automatically unsqueeze the given subset.
|
1163 | - Removed concatenation of nested arrays in the expression parser.
|
1164 | You can now input nested arrays like in JavaScript. Matrices can be
|
1165 | concatenated using the function `concat`.
|
1166 | - The matrix syntax `[...]` in the expression parser now creates 1 dimensional
|
1167 | matrices by default. `math.eval('[1,2,3,4]')` returns a matrix with
|
1168 | size `[4]`, `math.eval('[1,2;3,4]')` returns a matrix with size `[2,2]`.
|
1169 | - Documentation is restructured and extended.
|
1170 | - Fixed non working operator `mod` (modulus operator).
|
1171 |
|
1172 |
|
1173 | ## 2013-09-03, version 0.13.0
|
1174 |
|
1175 | - Implemented support for booleans in all relevant functions.
|
1176 | - Implemented functions `map` and `forEach`. Thanks Sebastien Piquemal (@sebpic).
|
1177 | - All construction functions can be used to convert the type of variables,
|
1178 | also element-wise for all elements in an Array or Matrix.
|
1179 | - Changed matrix indexes of the expression parser to one-based with the
|
1180 | upper-bound included, similar to most math applications. Note that on a
|
1181 | JavaScript level, math.js uses zero-based indexes with excluded upper-bound.
|
1182 | - Removed support for scalars in the function `subset`, it now only supports
|
1183 | Array, Matrix, and String.
|
1184 | - Removed the functions `get` and `set` from a selector, they are a duplicate
|
1185 | of the function `subset`.
|
1186 | - Replaced functions `get` and `set` of `Matrix` with a single function
|
1187 | `subset`.
|
1188 | - Some moving around with code and namespaces:
|
1189 | - Renamed namespace `math.expr` to `math.expression` (contains Scope, Parser,
|
1190 | node objects).
|
1191 | - Renamed namespace `math.docs` to `math.expression.docs`.
|
1192 | - Moved `math.expr.Selector` to `math.chaining.Selector`.
|
1193 | - Fixed some edge cases in functions `lcm` and `xgcd`.
|
1194 |
|
1195 |
|
1196 | ## 2013-08-22, version 0.12.1
|
1197 |
|
1198 | - Fixed outdated version of README.md.
|
1199 | - Fixed a broken unit test.
|
1200 |
|
1201 |
|
1202 | ## 2013-08-22, version 0.12.0
|
1203 |
|
1204 | - Implemented functions `random([min, max])`, `randomInt([min, max])`,
|
1205 | `pickRandom(array)`. Thanks Sebastien Piquemal (@sebpic).
|
1206 | - Implemented function `distribution(name)`, generating a distribution object
|
1207 | with functions `random`, `randomInt`, `pickRandom` for different
|
1208 | distributions. Currently supporting `uniform` and `normal`.
|
1209 | - Changed the behavior of `range` to exclude the upper bound, so `range(1, 4)`
|
1210 | now returns `[1, 2, 3]` instead of `[1, 2, 3, 4]`.
|
1211 | - Changed the syntax of `range`, which is now `range(start, end [, step])`
|
1212 | instead of `range(start, [step, ] end)`.
|
1213 | - Changed the behavior of `ones` and `zeros` to geometric dimensions, for
|
1214 | example `ones(3)` returns a vector with length 3, filled with ones, and
|
1215 | `ones(3,3)` returns a 2D array with size [3, 3].
|
1216 | - Changed the return type of `ones` and `zeros`: they now return an Array when
|
1217 | arguments are Numbers or an Array, and returns a Matrix when the argument
|
1218 | is a Matrix.
|
1219 | - Change matrix index notation in parser from round brackets to square brackets,
|
1220 | for example `A[0, 0:3]`.
|
1221 | - Removed the feature introduced in v0.10.0 to automatically convert a complex
|
1222 | value with an imaginary part equal to zero to a number.
|
1223 | - Fixed zeros being formatted as null. Thanks @TimKraft.
|
1224 |
|
1225 |
|
1226 | ## 2013-07-23, version 0.11.1
|
1227 |
|
1228 | - Fixed missing development dependency
|
1229 |
|
1230 |
|
1231 | ## 2013-07-23, version 0.11.0
|
1232 |
|
1233 | - Changed math.js from one-based to zero-based indexes.
|
1234 | - Getting and setting matrix subset is now zero-based.
|
1235 | - The dimension argument in function `concat` is now zero-based.
|
1236 | - Improvements in the string output of function help.
|
1237 | - Added constants `true` and `false`.
|
1238 | - Added constructor function `boolean`.
|
1239 | - Fixed function `select` not accepting `0` as input.
|
1240 | Thanks Elijah Manor (@elijahmanor).
|
1241 | - Parser now supports multiple unary minus operators after each other.
|
1242 | - Fixed not accepting empty matrices like `[[], []]`.
|
1243 | - Some fixes in the end user documentation.
|
1244 |
|
1245 |
|
1246 | ## 2013-07-08, version 0.10.0
|
1247 |
|
1248 | - For complex calculations, all functions now automatically replace results
|
1249 | having an imaginary part of zero with a Number. (`2i * 2i` now returns a
|
1250 | Number `-4` instead of a Complex `-4 + 0i`).
|
1251 | - Implemented support for injecting custom node handlers in the parser. Can be
|
1252 | used for example to implement a node handler for plotting a graph.
|
1253 | - Implemented end user documentation and a new `help` function.
|
1254 | - Functions `size` and `squeeze` now return a Matrix instead of an Array as
|
1255 | output on Matrix input.
|
1256 | - Added a constant tau (2 * pi). Thanks Zak Zibrat (@palimpsests).
|
1257 | - Renamed function `unaryminus` to `unary`.
|
1258 | - Fixed a bug in determining node dependencies in function assignments.
|
1259 |
|
1260 |
|
1261 | ## 2013-06-14, version 0.9.1
|
1262 |
|
1263 | - Implemented element-wise functions and operators: `emultiply` (`x .* y`),
|
1264 | `edivide` (`x ./ y`), `epow` (`x .^ y`).
|
1265 | - Added constants `Infinity` and `NaN`.
|
1266 | - Removed support for Workspace to keep the library focused on its core task.
|
1267 | - Fixed a bug in the Complex constructor, not accepting NaN values.
|
1268 | - Fixed division by zero in case of pure complex values.
|
1269 | - Fixed a bug in function multiply multiplying a pure complex value with
|
1270 | Infinity.
|
1271 |
|
1272 |
|
1273 | ## 2013-05-29, version 0.9.0
|
1274 |
|
1275 | - Implemented function `math.parse(expr [,scope])`. Optional parameter scope can
|
1276 | be a plain JavaScript Object containing variables.
|
1277 | - Extended function `math.expr(expr [, scope])` with an additional parameter
|
1278 | `scope`, similar to `parse`. Example: `math.eval('x^a', {x:3, a:2});`.
|
1279 | - Implemented function `subset`, to get or set a subset from a matrix, string,
|
1280 | or other data types.
|
1281 | - Implemented construction functions number and string (mainly useful inside
|
1282 | the parser).
|
1283 | - Improved function `det`. Thanks Bryan Cuccioli (@bcuccioli).
|
1284 | - Moved the parse code from prototype math.expr.Parser to function math.parse,
|
1285 | simplified Parser a little bit.
|
1286 | - Strongly simplified the code of Scope and Workspace.
|
1287 | - Fixed function mod for negative numerators, and added error messages in case
|
1288 | of wrong input.
|
1289 |
|
1290 |
|
1291 | ## 2013-05-18, version 0.8.2
|
1292 |
|
1293 | - Extended the import function and some other minor improvements.
|
1294 | - Fixed a bug in merging one dimensional vectors into a matrix.
|
1295 | - Fixed a bug in function subtract, when subtracting a complex number from a
|
1296 | real number.
|
1297 |
|
1298 |
|
1299 | ## 2013-05-10, version 0.8.1
|
1300 |
|
1301 | - Fixed an npm warning when installing mathjs globally.
|
1302 |
|
1303 |
|
1304 | ## 2013-05-10, version 0.8.0
|
1305 |
|
1306 | - Implemented a command line interface. When math.js is installed globally via
|
1307 | npm, the application is available on your system as 'mathjs'.
|
1308 | - Implemented `end` keyword for index operator, and added support for implicit
|
1309 | start and end (expressions like `a(2,:)` and `b(2:end,3:end-1)` are supported
|
1310 | now).
|
1311 | - Function math.eval is more flexible now: it supports variables and multi-line
|
1312 | expressions.
|
1313 | - Removed the read-only option from Parser and Scope.
|
1314 | - Fixed non-working unequal operator != in the parser.
|
1315 | - Fixed a bug in resizing matrices when replacing a subset.
|
1316 | - Fixed a bug in updating a subset of a non-existing variable.
|
1317 | - Minor bug fixes.
|
1318 |
|
1319 |
|
1320 | ## 2013-05-04, version 0.7.2
|
1321 |
|
1322 | - Fixed method unequal, which was checking for equality instead of inequality.
|
1323 | Thanks @FJS2.
|
1324 |
|
1325 |
|
1326 | ## 2013-04-27, version 0.7.1
|
1327 |
|
1328 | - Improvements in the parser:
|
1329 | - Added support for chained arguments.
|
1330 | - Added support for chained variable assignments.
|
1331 | - Added a function remove(name) to remove a variable from the parsers scope.
|
1332 | - Renamed nodes for more consistency and to resolve naming conflicts.
|
1333 | - Improved stringification of an expression tree.
|
1334 | - Some simplifications in the code.
|
1335 | - Minor bug fixes.
|
1336 | - Fixed a bug in the parser, returning NaN instead of throwing an error for a
|
1337 | number with multiple decimal separators like `2.3.4`.
|
1338 | - Fixed a bug in Workspace.insertAfter.
|
1339 | - Fixed: math.js now works on IE 6-8 too.
|
1340 |
|
1341 |
|
1342 | ## 2013-04-20, version 0.7.0
|
1343 |
|
1344 | - Implemented method `math.eval`, which uses a readonly parser to evaluate
|
1345 | expressions.
|
1346 | - Implemented method `xgcd` (extended eucledian algorithm). Thanks Bart Kiers
|
1347 | (@bkiers).
|
1348 | - Improved math.format, which now rounds values to a maximum number of digits
|
1349 | instead of decimals (default is 5 digits, for example `math.format(math.pi)`
|
1350 | returns `3.1416`).
|
1351 | - Added examples.
|
1352 | - Changed methods square and cube to evaluate matrices element wise (consistent
|
1353 | with all other methods).
|
1354 | - Changed second parameter of method import to an object with options.
|
1355 | - Fixed method math.typeof on IE.
|
1356 | - Minor bug fixes and improvements.
|
1357 |
|
1358 |
|
1359 | ## 2013-04-13, version 0.6.0
|
1360 |
|
1361 | - Implemented chained operations via method math.select(). For example
|
1362 | `math.select(3).add(4).subtract(2).done()` will return `5`.
|
1363 | - Implemented methods gcd and lcm.
|
1364 | - Implemented method `Unit.in(unit)`, which creates a clone of the unit with a
|
1365 | fixed representation. For example `math.unit('5.08 cm').in('inch')` will
|
1366 | return a unit which string representation always is in inch, thus `2 inch`.
|
1367 | `Unit.in(unit)` is the same as method `math.in(x, unit)`.
|
1368 | - Implemented `Unit.toNumber(unit)`, which returns the value of the unit when
|
1369 | represented with given unit. For example
|
1370 | `math.unit('5.08 cm').toNumber('inch')` returns the number `2`, as the
|
1371 | representation of the unit in inches has 2 as value.
|
1372 | - Improved: method `math.in(x, unit)` now supports a string as second parameter,
|
1373 | for example `math.in(math.unit('5.08 cm'), 'inch')`.
|
1374 | - Split the end user documentation of the parser functions from the source
|
1375 | files.
|
1376 | - Removed function help and the built-in documentation from the core library.
|
1377 | - Fixed constant i being defined as -1i instead of 1i.
|
1378 | - Minor bug fixes.
|
1379 |
|
1380 |
|
1381 | ## 2013-04-06, version 0.5.0
|
1382 |
|
1383 | - Implemented data types Matrix and Range.
|
1384 | - Implemented matrix methods clone, concat, det, diag, eye, inv, ones, size,
|
1385 | squeeze, transpose, zeros.
|
1386 | - Implemented range operator `:`, and transpose operator `'` in parser.
|
1387 | - Changed: created construction methods for easy object creation for all data
|
1388 | types and for the parser. For example, a complex value is now created
|
1389 | with `math.complex(2, 3)` instead of `new math.Complex(2, 3)`, and a parser
|
1390 | is now created with `math.parser()` instead of `new math.parser.Parser()`.
|
1391 | - Changed: moved all data types under the namespace math.type, and moved the
|
1392 | Parser, Workspace, etc. under the namespace math.expr.
|
1393 | - Changed: changed operator precedence of the power operator:
|
1394 | - it is now right associative instead of left associative like most scripting
|
1395 | languages. So `2^3^4` is now calculated as `2^(3^4)`.
|
1396 | - it has now higher precedence than unary minus most languages, thus `-3^2` is
|
1397 | now calculated as `-(3^2)`.
|
1398 | - Changed: renamed the parsers method 'put' into 'set'.
|
1399 | - Fixed: method 'in' did not check for units to have the same base.
|
1400 |
|
1401 |
|
1402 | ## 2013-03-16, version 0.4.0
|
1403 |
|
1404 | - Implemented Array support for all methods.
|
1405 | - Implemented Array support in the Parser.
|
1406 | - Implemented method format.
|
1407 | - Implemented parser for units, math.Unit.parse(str).
|
1408 | - Improved parser for complex values math.Complex.parse(str);
|
1409 | - Improved method help: it now evaluates the examples.
|
1410 | - Fixed: a scoping issue with the Parser when defining functions.
|
1411 | - Fixed: method 'typeof' was not working well with minified and mangled code.
|
1412 | - Fixed: errors in determining the best prefix for a unit.
|
1413 |
|
1414 |
|
1415 | ## 2013-03-09, version 0.3.0
|
1416 |
|
1417 | - Implemented Workspace
|
1418 | - Implemented methods cot, csc, sec.
|
1419 | - Implemented Array support for methods with one parameter.
|
1420 |
|
1421 |
|
1422 | ## 2013-02-25, version 0.2.0
|
1423 |
|
1424 | - Parser, Scope, and expression tree with Nodes implemented.
|
1425 | - Implemented method import which makes it easy to extend math.js.
|
1426 | - Implemented methods arg, conj, cube, equal, factorial, im, largereq,
|
1427 | log(x, base), log10, mod, re, sign, smallereq, square, unequal.
|
1428 |
|
1429 |
|
1430 | ## 2013-02-18, version 0.1.0
|
1431 |
|
1432 | - Reached full compatibility with Javascripts built-in Math library.
|
1433 | - More functions implemented.
|
1434 | - Some bugfixes.
|
1435 |
|
1436 |
|
1437 | ## 2013-02-16, version 0.0.2
|
1438 |
|
1439 | - All constants of Math implemented, plus the imaginary unit i.
|
1440 | - Data types Complex and Unit implemented.
|
1441 | - First set of functions implemented.
|
1442 |
|
1443 |
|
1444 | ## 2013-02-15, version 0.0.1
|
1445 |
|
1446 | - First publish of the mathjs package. (package is still empty)
|
1447 |
|
\ | No newline at end of file |