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.
* 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
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).
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)