134 Commits

Author SHA1 Message Date
Eric Mansfield
07a48b4209 Bug fix in inv.js 2018-06-01 18:54:56 -06:00
Eric Mansfield
f6e5a47cda Improved performance of determinant 2018-05-29 22:37:47 -06:00
Eric Mansfield
ad390e8903 Add pivoting to matrix inverse algorithm, and tests 2018-05-28 14:58:55 -06:00
Jos de Jong
7332993df7
Merge pull request #976 from ericman314/expm
Matrix exponential
2018-05-05 21:13:12 +02:00
Eric Mansfield
7d66e34bad Added support for SparseMatrix 2018-05-02 20:51:43 -06: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
99ab11b234 Dropped constant uninitialized 2018-02-04 13:09:09 +01:00
jos
326c9fb0de Fixed #680: compare strings by their numerical value instead of alphabetical order 2018-01-23 15:34:49 +01:00
ericman314
a2922641d3 Matrix exponential
Implementation of the matrix exponential with unit tests.

NOT tested with sparse matrices or with complex-valued matrices.
2017-11-22 22:28:34 -07:00
jos
0557e7ae1f Back to compareNatural WIP (see #837) 2017-06-25 21:02:59 +02:00
jos
ae7728a1d4 Renamed compareNatural to deepStrictCompare 2017-06-23 13:50:27 +02:00
jos
033735c5e2 Implemented support for all types in compareNatural 2017-06-23 13:40:38 +02:00
jos
151bc655d6 Implemented a first version of math.compareNatural 2017-06-18 21:13:31 +02:00
jos
f61bb6cf94 Fixed #856: function subset not returning non-primitive scalars from Arrays correctly 2017-05-16 21:41:03 +02:00
ericman314
9ada8c9a9c Added tests for function/matrix/reshape.test.js 2017-02-27 20:40:47 -07:00
Pat Grasso
fbb023e7e1 Small fix of names in reshape.test.js
Change some straggling instances of `resize` (reshape tests borrowed
heavily from resize).
2017-02-24 10:19:58 -05:00
Pat Grasso
8e01076ec9 Merge branch 'matrix.reshape' into develop 2017-02-24 10:12:20 -05:00
Pat Grasso
df83968ec7 Add spec for reshape() in test/function/matrix
This spec tests `reshape()` with more cases than the one in
test/utils/array.test.js, including various types.

Also, in `_reshape()`, throw a brand new `DimensionError` instead of
modifying the caught one (the error message does not change when other
attributes are modified, as it is computed when the error is created).
2017-02-24 10:05:42 -05:00
Adam Kelly
b564c20f19 Add Support for Complex Numbers in kron 2017-01-20 22:51:01 +00:00
Adam Kelly
44515ba7ed Add support for 1D Vectors in math.kron 2017-01-20 18:09:42 +00:00
Adam Kelly
6e63a112a2 Add Kronecker Product (Direct / Tensor Product)
Adds Kronecker Product as math.kron(x, y);
2017-01-17 22:31:42 +00:00
Pat Grasso
b250ad0313 Change spec for output vector's shape for cross()
Depending on the input vectors' dimensions, either a 1-d vector or a 2-d
matrix should be returned.
2016-10-12 01:17:22 -04:00
patgrasso
a7f5bb27ef Extend cross() to support n-d vectors. Closes #716
Squeeze arrays before attempting to cross them so that n-dimensional
vectors can be cross multiplied (as long as only one direction has a
series of 3 elements)
2016-09-25 21:22:40 -04:00
jos
b016385fe0 Fixed #665: functions map, forEach, and filter now invoke callbacks which are a typed-function with the correct number of arguments 2016-05-18 22:10:34 +02:00
jos
15aca5e4d0 Changed casing of the values of config options number and matrix to match the actual name of the classes. 2016-03-04 19:41:54 +01:00
jos
e2a3878ba9 Moved functions format and print to section string 2016-03-03 20:17:41 +01:00
jos
2adf01e548 Getting/setting object properties working (still needs a refactoring step) 2016-01-02 15:16:12 +01:00
jos
931736658d Added support for getting/setting object properties to Index and math.subset 2015-12-04 09:53:35 +01:00
jos
91b56e117a Added support for strings in function concat 2015-06-17 20:26:44 +02:00
Rogelio J. Baucells
f2a179aa31 Merge branch 'josdejong/v2' into v2-Index
Conflicts:
	lib/core/typed.js
	lib/type/index/prototype/Index.js
2015-05-21 00:38:58 -04:00
Rogelio J. Baucells
7579412f7d Index dimension with immutable matrix 2015-05-20 17:41:03 -04:00
jos
d81fe279cc String input is now converted to numbers by default for all functions. Adding two strings will no longer concatenate them, but will convert the
strings to numbers and add them.
2015-05-19 22:18:40 +02:00
rjbaucells
c24235ec3b tests - final
missing file
2015-05-13 20:30:49 -04:00
rjbaucells
76ac065d63 Merge branch 'v2' of https://github.com/josdejong/mathjs into josdejong-v2
Conflicts:
	lib/expression/docs/index.js
2015-04-29 00:05:18 -04:00
rjbaucells
4c08aa3b13 matrix functions update 2015-04-28 23:52:34 -04:00
jos
1204259209 Refactored Complex and Unit into factory functions 2015-04-28 22:04:42 +02:00
jos
811508906c Refactored functions range, subset, concat.transform, map.transform, max.transform, mean.transform, min.transform, range.transform, subset.transform to typed-functions 2015-04-27 19:11:21 +02:00
Rogelio J. Baucells
748fe0d0fb CcsMatrix refactoring 2015-04-24 11:13:17 -04:00
jos
952ec790cf Refactored concat and flatten to typed-functions 2015-04-22 22:13:04 +02:00
jos
af5d978de4 Merge remote-tracking branch 'origin/v2' into v2 2015-04-22 21:44:34 +02:00
jos
6e96d5a808 Merge branch 'develop' into v2
Conflicts:
	HISTORY.md
	bower.json
	component.json
	dist/math.js
	dist/math.map
	dist/math.min.js
	lib/function/arithmetic/abs.js
	lib/function/probability/gamma.js
	lib/version.js
	package.json
2015-04-22 21:43:56 +02:00
Rogelio J. Baucells
9ffacdd2ec Merge branch 'v2' of https://github.com/josdejong/mathjs into josdejong-v2
Conflicts:
	test/type/matrix/CcsMatrix.test.js
	test/type/matrix/DenseMatrix.test.js
2015-04-22 12:48:42 -04:00
Rogelio J. Baucells
ae0b2cf4e9 trace() refactoring 2015-04-22 12:41:02 -04:00
Rogelio J. Baucells
c093c01d99 transpose() refactoring 2015-04-21 14:44:42 -04:00
jos
c5007d4bf2 Refactored cross, dot, size, squeeze to typed-functions 2015-04-20 21:28:17 +02:00
Max Bruckner
8ad525b66e util/latex: get rid of many unnecessary curly braces 2015-04-19 11:08:00 +02:00
jos
349e9845e8 Merge branch 'develop' into v2_merge
Conflicts:
	HISTORY.md
	bower.json
	component.json
	dist/math.js
	dist/math.map
	dist/math.min.js
	docs/reference/units.md
	lib/version.js
	package.json
	test/function/construction/chain.test.js
	test/function/matrix/det.test.js
	test/function/matrix/transpose.test.js
	test/function/utils/import.test.js
2015-04-13 21:42:43 +02:00
Max Bruckner
7adf0ebc53 LaTeX tests for functions 2015-04-05 14:29:10 +02:00
Rogelio J. Baucells
4e7d9e5e5b math.diag() 2015-04-01 11:06:40 -04:00
Rogelio J. Baucells
f7b298cee1 math.eye() 2015-03-31 17:38:19 -04:00