988 Commits

Author SHA1 Message Date
Jack Schmidt
088ac99f65 ctranspose: Simplify method selection 2018-05-05 11:33:26 -04:00
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
6308e5b7fc Added missing embedded docs 2018-05-02 09:51:08 +02: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
4a693c83b8
Fixes bignumer implementation of es6 math functions.
Removes use of static property `ONE` which is not defined anymore.
2018-04-29 19:06:08 +01:00
Harry Sarson
29aeb4700f
ensure all files end with trailing \n 2018-04-27 21:41:02 +01:00
Harry Sarson
af417d8384
add use strict to the top of a bunch of files 2018-04-27 21:28:28 +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
0c87a1a64f Refactored local variables arg1, arg2 to arg0, arg1 to match the argument index 2018-04-11 13:27:50 +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
0dd092666a Fixed indentation 2018-04-08 20:29:37 +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
jean-emmanuel
0e05c0f9c7 Add support for Array values argument in print function 2018-03-04 14:08:55 +01:00
Clément P
59178319e4
Update isPrime.js 2018-03-01 12:08:28 +01:00
jos
417dc049de Invert some checks for zero 2018-02-21 10:56:33 +01:00
jos
0b9f22e9d8 Refactoring in handling DenseMatrix/SparseMatrix cases in most functions 2018-02-21 10:51:21 +01:00
jos
99ab11b234 Dropped constant uninitialized 2018-02-04 13:09:09 +01:00
jos
cb84036e8e Changes according to feedback from Harry 2018-02-01 19:45:07 +01: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
cec05b59f9 Changed options lower and upper in function math.format to lowerExp and upperExp, see #676 2018-01-24 15:57:38 +01:00
jos
879e00aecd Change default precision to undefined for BigNumber formatting too. See #676 2018-01-24 14:44:36 +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
924299c42b Changed ConstantNode(valueStr, valueType) to ConstantNode(value) (breaking change) 2018-01-23 12:08:29 +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
18f703beab Some refactoring in isCommutative and isAssociative (see #1013) 2018-01-13 20:56:59 +01: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
Harry Sarson
84c9db3395 uses orginal order of switch statements 2018-01-08 11:18:44 +00:00
Harry Sarson
aaf6536138 ignores additional arguements in subtraction OperatorNode 2018-01-08 11:11:47 +00: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
alik
69dfc4f78a Updated error messages for distance and intersect functions to better indicate that only numbers and BigNumbers are supported 2017-12-28 18:55:26 -05:00