895 Commits

Author SHA1 Message Date
Jack Schmidt
e1f0791574 Add complex transpose. A' now takes conjugate.
In matlab and octave the expression A' produces the Hermitian
conjugate, the complex conjugate of the transpose.

Now transpose produces the transpose, while ctranspose produces
the conjugate transpose. These are equal for real numbers, while
for complex numbers only the conjugate transpose is of much use.
2018-05-02 10:14:10 -04:00
Jos de Jong
9006e76f7e
Merge pull request #1046 from harrysarson/es6-maths
Implementation of EMCA 2015 maths functions in mathjs
2018-04-30 20:34:57 +02:00
Harry Sarson
0053546868
fix testing of log2(0) 2018-04-29 19:31:30 +01:00
Harry Sarson
95f988181f
fix tests where bignumbers is infinite or NaN 2018-04-29 19:20:06 +01:00
Harry Sarson
b452d55cf7
change expected error message.
presumably typed-function now counts from zero.
2018-04-29 19:19:11 +01:00
Harry Sarson
bd868e7f64
Remove tests for null parameters.
mathjs no longer coerses null to zero so don't test for this.
2018-04-29 19:06:36 +01:00
Henrique Ferrolho
308d55dac4 Adds matrix function math.sqrtm(A) (#1086)
* Adds Matrix function math.sqrtm(A)

The current implementation is based on the Babylonian iterative method

* Removing default parameter as they are only supported from ES6/ES2015 onwards

* Increases the robustness of the `math.sqrtm()` Babylonian iterative method

* Adds Denman–Beavers iteration method to compute `X*X = A`

The Babylonian method is numerically unstable and more likely to fail to converge. For that reason, the Denman–Beavers iteration method is the one being used in the current version.

* Adds LaTeX for math.sqrtm(A)

* Updates `math.sqrtm(A)` suggestions list

* Forgot to require latex...

* Adds unit tests for `math.pow(math.sqrtm(A), 2) == A`

* Switches from SyntaxError to Error

Edits error message

* Adds unit tests for non-square matrices and LaTeX conversion

* Changes according to feedback

- Removes Babylonian method implementation;
- Adds unit tests for BigNumber matrices
- sqrtm.test.js refactoring
- Edits LaTeX conversion

* Ensures input/output type persistence

* Changes math.deepEqual to assert.deepEqual (or to approx.deepEqual where appropriate)

* Fixes BigNumber unit test
2018-04-27 22:00:00 +02:00
jos
229ff3d8ff Fixed #1063: derivative not working when resolving a variable with unary minus like math.derivative('-x', 'x') 2018-04-11 13:25:44 +02:00
jos
ce4c294329 Updated history, added unit tests for passing a matrix to math.print 2018-04-08 20:13:35 +02:00
Jos de Jong
cbeff911d8
Merge pull request #1058 from jean-emmanuel/master
Add support for Array values argument in print function
2018-04-08 20:02:35 +02:00
jean-emmanuel
f4273d991a Add tests, example and documentation (Add support for Array values argument in print function) 2018-04-05 11:46:32 +02:00
jos
82eec1078e Fixed #1016: Extended math.typeof with support for ResultSet and nodes like SymbolNode 2018-04-04 11:24:45 +02:00
Favian Contreras
d8ec9c3638
More functions from ECMA 6 draft (expm1, log2, and log1p). 2018-03-08 17:10:59 +00:00
jos
bf3f62b564 Upgraded to typed-function@1.0.0 2018-02-20 20:59:05 +01:00
jos
99ab11b234 Dropped constant uninitialized 2018-02-04 13:09:09 +01:00
Jos de Jong
cdda817d9f
Merge pull request #1036 from ericman314/implicit-multiplication
Implicit multiplication
2018-02-04 11:55:15 +01:00
Eric Mansfield
17a4e33ae2 Added tests 2018-02-02 21:14:33 -07:00
jos
82b41e696a - Implemented OperatorNode.isUnary and OperatorNode.isBinary.
- Explicit checks for number of arguments everywhere working with `OperatorNode` and `FunctionNode`.
- Fixed #1014: derivative silently ignoring additional arguments.
2018-01-31 11:00:39 +01:00
jos
0b6c0c13f7 Merge branch 'v4' into v4_constant_node
# Conflicts:
#	HISTORY.md
2018-01-27 16:58:17 +01:00
jos
02d7d592e4 Merged util function types.type into math.typeof (see #1023) 2018-01-25 20:21:22 +01:00
jos
0406b93fc6 fixed notation in function math.format no longer rounds to zero digits when no precision is specified: it leaves the digits as is. See #676. 2018-01-24 14:27:38 +01:00
jos
f26e5cea03 Improved error messages for statistical functions 2018-01-24 11:52:49 +01:00
jos
087f53d854 Merge branch 'v4' into v4_constant_node
# Conflicts:
#	HISTORY.md
2018-01-23 20:27:16 +01:00
jos
4469f6bd0c Remove support for implicit conversion of null to 0. See #830. 2018-01-23 20:26:38 +01:00
jos
b9c30ebcc7 Updated some docs 2018-01-23 16:43:44 +01:00
jos
326c9fb0de Fixed #680: compare strings by their numerical value instead of alphabetical order 2018-01-23 15:34:49 +01:00
jos
3f3d50f7a0 Fixed #833: the constants true, false, null, undefined, NaN, Infinity, and uninitialized are now parsed as ConstantNodes instead of SymbolNodes in the expression parser 2018-01-23 13:55:57 +01:00
jos
3af55ededa Merge branch 'simplify2' into develop 2018-01-17 12:16:05 +01:00
Karl Lew
c4b555c36f #1018 simplifyCore ParenthesisNode 2018-01-16 09:06:24 -08:00
jos
8724ae0ae5 Fixed #1013: simplify wrongly simplifing some expressions containing unary minus, like 0 - -x 2018-01-13 14:37:27 +01:00
Jos de Jong
4504c3cc2a
Merge pull request #1003 from HarrySarson/3-arg-derivative
Improves derivative for 3 argument nodes. Closes #1002
2018-01-13 12:32:56 +01:00
Joel Hoover
6e6d0e37b1 Handle error in simplifyConstants when a function has all numeric arguments but is not itself defined 2018-01-08 01:13:14 -05:00
Joel Hoover
77dcd5abe9 Do not let simplifyConstants binarize functions with more than two arguments 2018-01-08 00:42:26 -05:00
Jos de Jong
9002e3b6eb
Merge pull request #1001 from joelhoover/simplify-improvement
Added rule to simplify that allows for combining of like terms in embedded quantities
2018-01-06 20:07:01 +01:00
Harry Sarson
05e6de2fd9 adds constant node checking with 3+ args 2018-01-04 14:25:05 +00:00
Harry Sarson
59e4c4ca97 derivative correctly handles '+' and '*' with three args 2018-01-04 13:42:00 +00:00
Joel Hoover
97098adad7 Added rule to simplify that allows for combining of like terms in embedded quantities 2018-01-02 01:02:19 -05:00
Jos de Jong
817ed3e6be
Merge pull request #996 from ovk/bignum-geometry
Added BigNumber support for distance() and intersect() functions
2017-12-29 09:46:53 +01:00
jos
67eeaea740 Merge branch 'simplify2' into develop 2017-12-28 17:08:46 +01:00
Karl Lew
f1d0beb252 fix for #998 unary minus bug 2017-12-26 15:34:11 -08:00
alik
4c842de7c6 Added BigNumber support for distance() and intersect() functions 2017-12-24 18:28:21 -05:00
jos
7df52c1d1a Fixed #983: pickRandom returning an array instead of single value when input was an array with just one value. Clarified docs. 2017-12-09 20:42:08 +01:00
Jos de Jong
e4ea1eb2aa
Merge pull request #981 from jeffreyshen19/master
Added a test for ln(x) derivative
2017-12-05 20:49:23 +01:00
jeffreyshen19
8bbed26a2b added a test for ln(x) derivative 2017-12-05 00:06:10 -05:00
paulobuchsbaum
6a63afb52b Small fix and and a new test
I've included one more expression in the test batch
2017-12-03 12:50:39 -02:00
paulobuchsbaum
d0a13eaaa9 Rationalize Package
Rationalize.js, Rationalize.test.js and index.js changed.
2017-11-27 17:16:21 -02:00
Eric Mansfield
b254bc1be4 Merge pull request #958 from IvanVergiliev/simplify-exponentiation
Simplify nested exponentiations
2017-10-21 19:10:43 -06:00
firepick1 (localhost)
c765f3dcca #958 exponent power rule 2017-10-21 19:23:21 -04:00
jos
02b1478e6d Fixed #954: Functions add and multiply not working when passing three or more arrays or matrices 2017-10-18 19:58:31 +02:00
Ivan Vergiliev
9dde07ed11 Simplify nested exponentiations 2017-10-17 08:15:22 -07:00