matrix multiplication
Multiplies this matrix with other matrix pointwise
Multiplies this matrix with other matrix pointwise and writes the result into this matrix
Solving dense linear equations with pivoted LU-decomposition
Cloning this matrix
Cloning this matrix
Scalar product: sum of the results of the pointwise multiplication
Scalar product: sum of the results of the pointwise multiplication
Removes all values from the matrix that do not fulfill the predicate p.
Removes all values from the matrix that do not fulfill the predicate p.
The removed values are replaced by the default value.
Executes the specified procedure f for each entry of this matrix
Inverses the control over the process of iteration through the entries of the matrix.
Inverses the control over the process of iteration through the entries of the matrix.
It would be interesting to compare which impact such an indirection has
on performance: if would eliminate tons of boilerplate code. Notice
that this iteration strategy is not applied in the most potentially
time critical methods (map, filter, ...) of this class, although it
obviously would make the code much more concise. We do not use it,
because we really want to measure the performance of the
implementations
that are as low level as possible. However, this method is used when
the performance is irrelevant, as in toString for example.
Calculates the squared Frobenius norm of the matrix
Maps entries of the matrix with the specified function f.
Naive implementation of the dense matrix multiplication
Replaces all entries by their additive inverses
Reshapes the matrix row-wise
Returns a new matrix that looks like multiplication of constant-1-row-vector from the left
Tiled matrix multiply with tile size = 16
Tiled matrix multiply
Creates a multiline string representation of this matrix.
Creates a multiline string representation of this matrix. All entries are indented to the right, the exponentials of the entries are left independent (no global rescaling occurs). It doesn't look very nice, but it's good enough for debugging.
Transposes the matrix.
Transposes the matrix. This method creates a completely new matrix, all values are copied
Unary prefix minus
Unary prefix minus
Creates new matrix of same dimension of this one, filled with zeros, and with a zero as default value
Creates new matrix of same dimension of this one, filled with zeros, and with a zero as default value
Implementation of dense matrices in row major format with double values.
This is a minimalistic implementation of a dense double matrix. The main goal is to write an implementation that is too simple to break and too simple too introduce some sneaky autoboxing issues somewhere. It has no complex dependencies on any libraries, and is supposed to be used for testing and performance measurement of more advanced implementations.
Notice: Although it's stupid and ugly, it still beats the crap out of single-threaded java libraries like EJML... :/
Replace it by CUDA or something more performant later.