api / koma.internal.default.generated.matrix / DefaultDoubleMatrix

DefaultDoubleMatrix

class DefaultDoubleMatrix :Matrix<Double>

Constructors

Name Summary
<init> DefaultDoubleMatrix(rows:Int, cols:Int)

Properties

Name Summary
cols val cols:Int
rows val rows:Int
storage val storage:DoubleArray

Inherited Properties

Name Summary
T open val T:Matrix<T>
Transpose operator.
size open val size:Int

Functions

Name Summary
LU fun LU():Triple<Matrix<Double>,Matrix<Double>,Matrix<Double>>
LU Decomposition. Returns p, l, u matrices as a triple.
QR fun QR():Pair<Matrix<Double>,Matrix<Double>>
SVD fun SVD():Triple<Matrix<Double>,Matrix<Double>,Matrix<Double>>
T fun T():Matrix<Double>
Transpose operator.
argMax fun argMax():Int
Row major 1D index.
argMin fun argMin():Int
Row major 1D index.
chol fun chol():Matrix<Double>
(lower triangular) Cholesky decomposition of the matrix. Matrix must be positive-semi definite.
copy fun copy():Matrix<Double>
Returns a copy of this matrix (same values, new memory)
det fun det():Double
Determinant of the matrix
diag fun diag():Matrix<Double>
div fun div(other:Double):Matrix<Double>
fun div(other:Int):Matrix<Double>
elementSum fun elementSum():Double
Sum of all the elements in the matrix.
elementTimes fun elementTimes(other:Matrix<Double>):Matrix<Double>
Element-wise multiplication with another matrix
epow fun epow(other:Double):Matrix<Double>
Element-wise exponentiation of each element in the matrixfun epow(other:Int):Matrix<Double>
expm fun expm():Matrix<Double>
Compute the matrix exponential e^x (NOT elementwise)
getBaseMatrix fun getBaseMatrix():Any
Returns the underlying matrix object from the back-end this Matrix is wrapping. This should be used sparingly (as it breaks encapsulation), but it can increase performance by using computation specifically designed for a particular back-end. Code using this method should not rely on a particular back-end, and should always fallback to slow generic code if an unrecognized matrix is returned here (e.g. use get and set) to access the elements generically).
getCol fun getCol(col:Int):Matrix<Double>
getDouble fun getDouble(i:Int, j:Int):Double
fun getDouble(i:Int):Double
getDoubleData fun getDoubleData():DoubleArray
Retrieves the data formatted as doubles in row-major order This method is only for performance over potentially boxing get(Double) methods. This method may or may not return a copy, and thus should be treated as read-only unless backend behavior is known.
getFactory fun getFactory():MatrixFactory<Matrix<Double>>
Because sometimes all you have is a Matrix, but you really want a MatrixFactory.
getFloat fun getFloat(i:Int, j:Int):Float
fun getFloat(i:Int):Float
getGeneric fun getGeneric(i:Int, j:Int):Double
fun getGeneric(i:Int):Double
getInt fun getInt(i:Int, j:Int):Int
fun getInt(i:Int):Int
getRow fun getRow(row:Int):Matrix<Double>
inv fun inv():Matrix<Double>
Matrix inverse (square matrices)
max fun max():Double
Maximum value contained in the matrix
mean fun mean():Double
Mean (average) of all the elements in the matrix.
min fun min():Double
Minimum value contained in the matrix
minus fun minus(other:Double):Matrix<Double>
fun minus(other:Matrix<Double>):Matrix<Double>
normF fun normF():Double
Frobenius normal of the matrix
normIndP1 fun normIndP1():Double
Induced, p=1 normal of the matrix. Equivalent of norm(matrix,1) in scipy.
numCols fun numCols():Int
Number of columns in the matrix
numRows fun numRows():Int
Number of rows in the matrix
pinv fun pinv():Matrix<Double>
Pseudo-inverse of (non-square) matrix
plus fun plus(other:Double):Matrix<Double>
fun plus(other:Matrix<Double>):Matrix<Double>
setCol fun setCol(index:Int, col:Matrix<Double>):Unit
setDouble fun setDouble(i:Int, v:Double):Unit
fun setDouble(i:Int, j:Int, v:Double):Unit
setFloat fun setFloat(i:Int, v:Float):Unit
fun setFloat(i:Int, j:Int, v:Float):Unit
setGeneric fun setGeneric(i:Int, v:Double):Unit
fun setGeneric(i:Int, j:Int, v:Double):Unit
setInt fun setInt(i:Int, v:Int):Unit
fun setInt(i:Int, j:Int, v:Int):Unit
setRow fun setRow(index:Int, row:Matrix<Double>):Unit
solve fun solve(other:Matrix<Double>):Matrix<Double>
Solves A*X=B for X, returning X (X is either column vector or a matrix composed of several col vectors). A is the current matrix, B is the passed in other)/other), and X is the returned matrix.
times fun times(other:Matrix<Double>):Matrix<Double>
fun times(other:Double):Matrix<Double>
trace fun trace():Double
The matrix trace.
transpose fun transpose():Matrix<Double>
Transpose of the matrix
unaryMinus fun unaryMinus():Matrix<Double>

Inherited Functions

Name Summary
asColVector open fun asColVector():Matrix<T>
Returns the given vector as a row vector. Will call transpose() on row vectors
asRowVector open fun asRowVector():Matrix<T>
Returns the given vector as a row vector. Will call transpose() on column vectors
cumSum open fun cumSum():Matrix<T>
Calculates the cumulative (ongoing) sum of a matrix's elements. For example, cumsum(mat[1,2,3]) would return mat[1,3,6]. Assumes matrix type is convertible to double.
filterCols open fun filterCols(f: (col:Matrix<T>) ->Boolean):Matrix<T>
Builds a new matrix with a subset of the columns of this matrix, using only the columns for which the function f returns true.
filterColsIndexed open fun filterColsIndexed(f: (colIndex:Int, col:Matrix<T>) ->Boolean):Matrix<T>
Builds a new matrix with a subset of the columns of this matrix, using only the columns for which the function f returns true.
filterRows open fun filterRows(f: (row:Matrix<T>) ->Boolean):Matrix<T>
Builds a new matrix with a subset of the rows of this matrix, using only the rows for which the function f returns true.
filterRowsIndexed open fun filterRowsIndexed(f: (rowIndex:Int, row:Matrix<T>) ->Boolean):Matrix<T>
Builds a new matrix with a subset of the rows of this matrix, using only the rows for which the function f returns true.
forEachCol open fun forEachCol(f: (Matrix<T>) ->Unit):Unit
Passes each col from left to right into a function.
forEachRow open fun forEachRow(f: (Matrix<T>) ->Unit):Unit
Passes each row from top to bottom into a function.
getBaseArray open fun getBaseArray():Any
getByte open fun getByte(vararg indices:Int):Byte
getDouble open fun getDouble(vararg indices:Int):Double
getFloat open fun getFloat(vararg indices:Int):Float
getGeneric open fun getGeneric(vararg indices:Int):T
getInt open fun getInt(vararg indices:Int):Int
getLinear open fun getLinear(index:Int):T
getLong open fun getLong(vararg indices:Int):Long
getShort open fun getShort(vararg indices:Int):Short
mapCols open fun mapCols(f: (Matrix<T>) ->Matrix<T>):Matrix<T>
Takes each col in a matrix, passes them through f, and puts the output of f into a col of an output matrix.
mapColsToList open fun <U> mapColsToList(f: (Matrix<T>) ->U):List<U>
Takes each col in a matrix, passes them through f, and puts the outputs into a List. In contrast to this#mapCols, the usage of a list as the output container allows for arbitrary output types, such as taking a double matrix and returning a list of strings.
mapRows open fun mapRows(f: (Matrix<T>) ->Matrix<T>):Matrix<T>
Takes each row in a matrix, passes them through f, and puts the output of f into a row of an output matrix.
mapRowsToList open fun <U> mapRowsToList(f: (Matrix<T>) ->U):List<U>
Takes each row in a matrix, passes them through f, and puts the outputs into a List. In contrast to this#mapRows, the usage of a list as the output container allows for arbitrary output types, such as taking a double matrix and returning a list of strings.
pow open infix fun pow(exponent:Int):Matrix<T>
Multiplies the matrix by itself exponent times (using matrix multiplication).
repr open fun repr():String
selectCols open fun selectCols(vararg idxs:Int):Matrix<T>
Select a set of cols from a matrix to form the cols of a new matrix. For example, if you wanted a new matrix consisting of the first, second, and fifth cols of an input matrix, you would write input.selectCols(0,1,4).open fun <U :Number> selectCols(idxs:Matrix<U>):Matrix<T>
selectRows open fun selectRows(vararg idxs:Int):Matrix<T>
Select a set of rows from a matrix to form the rows of a new matrix. For example, if you wanted a new matrix consisting of the first, second, and fifth rows of an input matrix, you would write input.selectRows(0,1,4).open fun <U :Number> selectRows(idxs:Matrix<U>):Matrix<T>
setByte open fun setByte(vararg indices:Int, value:Byte):Nothing
setDouble open fun setDouble(vararg indices:Int, value:Double):Unit
setFloat open fun setFloat(vararg indices:Int, value:Float):Unit
setGeneric open fun setGeneric(vararg indices:Int, value:T):Unit
setInt open fun setInt(vararg indices:Int, value:Int):Unit
setLinear open fun setLinear(index:Int, value:T):Unit
setLong open fun setLong(vararg indices:Int, value:Long):Nothing
setShort open fun setShort(vararg indices:Int, value:Short):Nothing
shape open fun shape():List<Int>
to2DArray open fun to2DArray():Array<DoubleArray>
Returns a Matrix as a double 2D array. Intended for MATLAB interop.
toIterable open fun toIterable():Iterable<T>
wrapRange open fun wrapRange(range:IntRange, max:Int):IntRange

Extension Functions

Name Summary
all funMatrix<Double>.all(f: (Double) ->Boolean):Boolean
fun <T>Matrix<T>.all(f: (T) ->Boolean):Boolean
Checks to see if all elements cause f to return true.
allClose funMatrix<Double>.allClose(other:Matrix<Double>, rtol:Double= 1e-05, atol:Double= 1e-08):Boolean
any funMatrix<Double>.any(f: (Double) ->Boolean):Boolean
fun <T>Matrix<T>.any(f: (T) ->Boolean):Boolean
Checks to see if any element in the matrix causes f to return true.
checkIndices fun <T>NDArray<T>.checkIndices(indices:IntArray):IntArray
checkLinearIndex fun <T>NDArray<T>.checkLinearIndex(index:Int):Int
div operator funNDArray<Double>.div(other:Double):NDArray<Double>
emul infix funMatrix<Double>.emul(other:Matrix<Double>):Matrix<Double>
Allow infix operator "a emul b" to be element-wise multiplication of two matrices.
fill funMatrix<Double>.fill(f: (row:Int, col:Int) ->Double):Matrix<Double>
fun <T>Matrix<T>.fill(f: (row:Int, col:Int) ->T):Matrix<T>
Fills the matrix with the values returned by the input function.funNDArray<Double>.fill(f: (idx:IntArray) ->Double):NDArray<Double>
fun <T>NDArray<T>.fill(f: (idx:IntArray) ->T):NDArray<T>
fillBoth funNDArray<Double>.fillBoth(f: (nd:IntArray, linear:Int) ->Double):NDArray<Double>
fun <T>NDArray<T>.fillBoth(f: (nd:IntArray, linear:Int) ->T):NDArray<T>
fillLinear funNDArray<Double>.fillLinear(f: (idx:Int) ->Double):NDArray<Double>
fun <T>NDArray<T>.fillLinear(f: (idx:Int) ->T):NDArray<T>
forEach fun <T>Matrix<T>.forEach(f: (T) ->Unit):Unit
Passes each element in row major order into a function.fun <T>NDArray<T>.forEach(f: (ele:T) ->Unit):Unit
Takes each element in a NDArray and passes them through f.
forEachIndexed funMatrix<Double>.forEachIndexed(f: (row:Int, col:Int, ele:Double) ->Unit):Unit
fun <T>Matrix<T>.forEachIndexed(f: (row:Int, col:Int, ele:T) ->Unit):Unit
Passes each element in row major order into a function along with its index location.funNDArray<Double>.forEachIndexed(f: (idx:Int, ele:Double) ->Unit):Unit
fun <T>NDArray<T>.forEachIndexed(f: (idx:Int, ele:T) ->Unit):Unit
Takes each element in a NDArray and passes them through f. Index given to f is a linear index, depending on the underlying storage major dimension.
forEachIndexedN funNDArray<Double>.forEachIndexedN(f: (idx:IntArray, ele:Double) ->Unit):Unit
fun <T>NDArray<T>.forEachIndexedN(f: (idx:IntArray, ele:T) ->Unit):Unit
Takes each element in a NDArray and passes them through f. Index given to f is the full ND index of the element.
linearToNIdx fun <T>NDArray<T>.linearToNIdx(linear:Int):IntArray
Given the 1D index of an element in the underlying storage, find the corresponding ND index. Inverse of nIdxToLinear.
map fun <T>Matrix<T>.map(f: (T) ->T):Matrix<T>
Takes each element in a matrix, passes them through f, and puts the output of f into an output matrix. This process is done in row-major order.fun <T>NDArray<T>.map(f: (T) ->T):DefaultGenericNDArray<T>
Takes each element in a NDArray, passes them through f, and puts the output of f into an output NDArray.
mapIndexed funMatrix<Double>.mapIndexed(f: (row:Int, col:Int, ele:Double) ->Double):Matrix<Double>
fun <T>Matrix<T>.mapIndexed(f: (row:Int, col:Int, ele:T) ->T):Matrix<T>
Takes each element in a matrix, passes them through f, and puts the output of f into an output matrix. This process is done in row-major order.funNDArray<Double>.mapIndexed(f: (idx:Int, ele:Double) ->Double):NDArray<Double>
fun <T>NDArray<T>.mapIndexed(f: (idx:Int, ele:T) ->T):DefaultGenericNDArray<T>
Takes each element in a NDArray, passes them through f, and puts the output of f into an output NDArray. Index given to f is a linear index, depending on the underlying storage major dimension.
mapIndexedN funNDArray<Double>.mapIndexedN(f: (idx:IntArray, ele:Double) ->Double):NDArray<Double>
fun <T>NDArray<T>.mapIndexedN(f: (idx:IntArray, ele:T) ->T):NDArray<T>
Takes each element in a NDArray, passes them through f, and puts the output of f into an output NDArray. Index given to f is the full ND index of the element.
minus operator funNDArray<Double>.minus(other:Double):NDArray<Double>
operator funNDArray<Double>.minus(other:NDArray<Double>):NDArray<Double>``operator funMatrix<Double>.minus(value:Int):Matrix<Double>
Allow operator overloading with non-Double scalars
nIdxToLinear fun <T>NDArray<T>.nIdxToLinear(indices:IntArray):Int
Given a ND index into this array, find the corresponding 1D index in the raw underlying 1D storage array.
plus operator funNDArray<Double>.plus(other:Double):NDArray<Double>
operator funNDArray<Double>.plus(other:NDArray<Double>):NDArray<Double>``operator funMatrix<Double>.plus(value:Int):Matrix<Double>
Allow operator overloading with non-Double scalars
pow infix funNDArray<Double>.pow(exponent:Int):NDArray<Double>
safeNIdxToLinear fun <T>NDArray<T>.safeNIdxToLinear(indices:IntArray):Int
set operator funMatrix<Double>.set(i:Int, v:Double):Unit
operator fun <T>Matrix<T>.set(i:Int, v:T):Unit
Set the ith element in the matrix. If 2D, selects elements in row-major order.operator funMatrix<Double>.set(i:Int, j:Int, v:Double):Unit
operator funMatrix<Double>.set(rows:IntRange, cols:IntRange, value:Double):Unit
operator funMatrix<Double>.set(rows:Int, cols:IntRange, value:Double):Unit
operator funMatrix<Double>.set(rows:IntRange, cols:Int, value:Double):Unit
operator funMatrix<Double>.set(i:Int, v:Int):Unit
operator funMatrix<Double>.set(i:Int, j:Int, v:Int):Unit
operator fun <T>Matrix<T>.set(i:Int, j:Int, v:T):Unit
operator fun <T>Matrix<T>.set(rows:IntRange, cols:IntRange, value:T):Unit
operator fun <T>Matrix<T>.set(rows:Int, cols:IntRange, value:T):Unit
operator fun <T>Matrix<T>.set(rows:IntRange, cols:Int, value:T):Unit
operator funNDArray<Double>.set(vararg indices:Int, value:NDArray<Double>):Unit
operator funNDArray<Double>.set(vararg indices:Int, value:Double):Unit
operator fun <T>NDArray<T>.set(vararg indices:Int, value:NDArray<T>):Unit
operator fun <T>NDArray<T>.set(vararg indices:Int, value:T):Unitoperator funMatrix<Double>.set(rows:IntRange, cols:IntRange, value:Matrix<Double>):Unit
operator fun <T>Matrix<T>.set(rows:IntRange, cols:IntRange, value:Matrix<T>):Unit
Allow assignment to a slice, e.g. matrix[1..2, 3..4]=something. Note that the range 1..2 is inclusive, so it will retrieve row 1 and 2. Use 1.until(2) for a non-inclusive range.operator funMatrix<Double>.set(rows:Int, cols:IntRange, value:Matrix<Double>):Unit
operator fun <T>Matrix<T>.set(rows:Int, cols:IntRange, value:Matrix<T>):Unit
Allow assignment to a slice, e.g. matrix[2, 3..4]=something. Note that the range 3..4 is inclusive, so it will retrieve col 3 and 4. Use 1.until(2) for a non-inclusive range.operator funMatrix<Double>.set(rows:IntRange, cols:Int, value:Matrix<Double>):Unit
operator fun <T>Matrix<T>.set(rows:IntRange, cols:Int, value:Matrix<T>):Unit
Allow assignment to a slice, e.g. matrix[1..2, 3]=something. Note that the range 1..2 is inclusive, so it will retrieve row 1 and 2. Use 1.until(2) for a non-inclusive range.
times operator funNDArray<Double>.times(other:NDArray<Double>):NDArray<Double>
operator funNDArray<Double>.times(other:Double):NDArray<Double>``operator funMatrix<Double>.times(other:Int):Matrix<Double>
Multiply a scalar by a matrix
toDoubleArray funNDArray<Double>.toDoubleArray():DoubleArray
Converts this NDArray into a one-dimensional DoubleArray in row-major order.
toMatrix funNDArray<Double>.toMatrix():Matrix<Double>
toMatrixOrNull fun <T>NDArray<T>.toMatrixOrNull():Matrix<T>?
toTypedArray fun <T>NDArray<T>.toTypedArray():Array<T>
Converts this NDArray into a one-dimensional Array in row-major order.
unaryMinus operator funNDArray<Double>.unaryMinus():NDArray<Double>
validate funMatrix<Double>.validate(fn:ValidationContext.() ->Unit):Unit
Use the given fn to validate a matrix. Return either the matrix itself or a copy that has been transformed to match the validation rules.funMatrix<Double>.validate(name:String, fn:ValidationContext.() ->Unit):Unit
Use the given fn to validate a matrix with the given name. Return either the matrix itself or a copy that has been transformed to match the validation rules.
widthOfDims fun <T>NDArray<T>.widthOfDims():ArrayList<Int>