Class CommonOps_ZDRM
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
Performs the following operation:
c = a + b
cij = aij + bijstatic ZMatrixRMaj[]
columnsToVector
(ZMatrixRMaj A, @Nullable ZMatrixRMaj[] v) Converts the columns in a matrix into a set of vectors.static ZMatrixD1
conjugate
(ZMatrixD1 input, @Nullable ZMatrixRMaj output) Computes the complex conjugate of the input matrix.
reali,j = reali,j
imaginaryi,j = -1*imaginaryi,jstatic void
Converts the real matrix into a complex matrix.static Complex_F64
det
(ZMatrixRMaj mat) Returns the determinant of the matrix.static ZMatrixRMaj
diag
(double... data) Creates a new square matrix whose diagonal elements are specified by data and all the other elements are zero.
aij = 0 if i ≤ j
aij = diag[i] if i = jstatic ZMatrixRMaj
diag
(@Nullable ZMatrixRMaj output, int N, double... data) static ZMatrixRMaj
elementDivide
(double real, double imaginary, ZMatrixD1 input, @Nullable ZMatrixRMaj output) Performs element by element division operation with a complex number on the right
outputij = (real + imaginary*i) / inputijstatic ZMatrixRMaj
elementDivide
(ZMatrixD1 input, double real, double imaginary, @Nullable ZMatrixRMaj output) Performs element by element division operation with a complex number on the right
outputij = inputij / (real + imaginary*i)static ZMatrixRMaj
elementDivide
(ZMatrixD1 inputA, ZMatrixD1 inputB, @Nullable ZMatrixRMaj output) Performs complex division between two matrices with the same shape element by element.
outputij = inputAij / inputBijstatic double
Returns the largest absolute value of any element in the matrix.
Max{ |aij| } for all i and jstatic double
Returns the value of the imaginary element in the matrix that has the minimum value.
Min{ aij } for all i and jstatic double
Returns the magnitude squared of the complex element with the largest magnitude
Max{ |aij|^2 } for all i and jstatic double
Returns the value of the real element in the matrix that has the minimum value.
Min{ aij } for all i and jstatic double
Returns the smallest absolute value of any element in the matrix.
Min{ |aij| } for all i and jstatic double
Returns the value of the imaginary element in the matrix that has the minimum value.
Min{ aij } for all i and jstatic double
Returns the value of the real element in the matrix that has the minimum value.
Min{ aij } for all i and jstatic ZMatrixRMaj
elementMultiply
(ZMatrixD1 input, double real, double imaginary, @Nullable ZMatrixRMaj output) Performs element by element multiplication operation with a complex number
outputij = inputij * (real + imaginary*i)static ZMatrixRMaj
elementMultiply
(ZMatrixD1 inputA, ZMatrixD1 inputB, @Nullable ZMatrixRMaj output) Performs complex multiplication between two matrices with the same shape element by element.
outputij = inputAij * inputBijstatic ZMatrixRMaj
elementPower
(ZMatrixD1 input, double b, @Nullable ZMatrixRMaj output) Element by element complex power
outputij = inputAij / inputBijstatic Complex_F64
elementSum
(ZMatrixD1 input, @Nullable Complex_F64 output) Computes the sum of all the elements in the matrix:
sum(i=1:m , j=1:n ; aij)static ZMatrixRMaj
extract
(ZMatrixRMaj src, int srcY0, int srcY1, int srcX0, int srcX1) Creates a new matrix which is the specified submatrix of 'src'static void
extract
(ZMatrixRMaj src, int srcY0, int srcY1, int srcX0, int srcX1, ZMatrixRMaj dst, int dstY0, int dstX0) Extracts a submatrix from 'src' and inserts it in a submatrix in 'dst'.static void
extractDiag
(ZMatrixRMaj src, ZMatrixRMaj dst) Extracts the diagonal elements 'src' write it to the 'dst' vector.static void
Sets every element in the matrix to the specified value.
aij = valuestatic ZMatrixRMaj
identity
(int width) Creates an identity matrix of the specified size.
aij = 0+0i if i ≠ j
aij = 1+0i if i = jstatic ZMatrixRMaj
identity
(int width, int height) Creates a matrix with diagonal elements set to 1 and the rest 0.
aij = 0+0i if i ≠ j
aij = 1+0i if i = jstatic DMatrixRMaj
imaginary
(ZMatrixD1 input, @Nullable DMatrixRMaj output) Places the imaginary component of the input matrix into the output matrix.static boolean
Performs a matrix inversion operation on the specified matrix and stores the results in the same matrix.
a = a-1static boolean
invert
(ZMatrixRMaj input, ZMatrixRMaj output) Performs a matrix inversion operation that does not modify the original and stores the results in another matrix.static DMatrixRMaj
magnitude
(ZMatrixD1 input, @Nullable DMatrixRMaj output) Computes the magnitude of the complex number in the input matrix and stores the results in the output matrix.static void
mult
(double realAlpha, double imgAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = α * a * b
cij = α ∑k=1:n { * aik * bkj}static void
mult
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = a * b
cij = ∑k=1:n { * aik * bkj}static void
multAdd
(double realAlpha, double imgAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + α * a * b
cij = cij + α * ∑k=1:n { aik * bkj}static void
multAdd
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + a * b
cij = cij + ∑k=1:n { aik * bkj}static void
multAddTransA
(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + α * aH * b
cij =cij + α * ∑k=1:n { aki * bkj}static void
multAddTransA
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + aH * b
cij = cij + ∑k=1:n { aki * bkj}static void
multAddTransAB
(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + α * aH * bH
cij = cij + α * ∑k=1:n { aki * bjk}static void
multAddTransAB
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + aH * bH
cij = cij + ∑k=1:n { aki * bjk}static void
multAddTransB
(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + α * a * bH
cij = cij + α * ∑k=1:n { aik * bjk}static void
multAddTransB
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + a * bH
cij = cij + ∑k=1:n { aik * bjk}static void
multTransA
(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = α * aH * b
cij = α ∑k=1:n { aki * bkj}static void
multTransA
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = aH * b
cij = ∑k=1:n { aki * bkj}static void
multTransAB
(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = α * aH * bH
cij = α ∑k=1:n { aki * bjk}static void
multTransAB
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = aT * bT
cij = ∑k=1:n { aki * bjk}static void
multTransB
(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = α * a * bH
cij = α ∑k=1:n { aik * bjk}static void
multTransB
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = a * bH
cij = ∑k=1:n { aik * bjk}static DMatrixRMaj
real
(ZMatrixD1 input, @Nullable DMatrixRMaj output) Places the real component of the input matrix into the output matrix.static void
Performs an in-place element by element scalar multiplication.
aij = α*aijstatic void
setIdentity
(ZMatrixRMaj mat) Sets all the diagonal elements equal to one and everything else equal to zero.static boolean
solve
(ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj x) Solves for x in the following equation:
A*x = bstatic void
Performs the following operation:
c = a - b
cij = aij - bijstatic Complex_F64
trace
(ZMatrixRMaj input, @Nullable Complex_F64 output) Computes the matrix trace:
trace = ∑i=1:n { aii }
where n = min(numRows,numCols)static void
transpose
(ZMatrixRMaj mat) Performs an "in-place" transpose.static ZMatrixRMaj
transpose
(ZMatrixRMaj input, @Nullable ZMatrixRMaj output) Transposes input matrix 'a' and stores the results in output matrix 'b':
bij = aji
where 'b' is the transpose of 'a'.static void
Performs an "in-place" conjugate transpose.static ZMatrixRMaj
transposeConjugate
(ZMatrixRMaj input, @Nullable ZMatrixRMaj output) Conjugate transposes input matrix 'a' and stores the results in output matrix 'b':
b-reali,j = a-realj,i
b-imaginaryi,j = -1*a-imaginaryj,i
where 'b' is the transpose of 'a'.
-
Method Details
-
identity
Creates an identity matrix of the specified size.
aij = 0+0i if i ≠ j
aij = 1+0i if i = j
- Parameters:
width
- The width and height of the identity matrix.- Returns:
- A new instance of an identity matrix.
-
identity
Creates a matrix with diagonal elements set to 1 and the rest 0.
aij = 0+0i if i ≠ j
aij = 1+0i if i = j
- Parameters:
width
- The width of the identity matrix.height
- The height of the identity matrix.- Returns:
- A new instance of an identity matrix.
-
diag
Creates a new square matrix whose diagonal elements are specified by data and all the other elements are zero.
aij = 0 if i ≤ j
aij = diag[i] if i = j
- Parameters:
data
- Contains the values of the diagonal elements of the resulting matrix.- Returns:
- A new complex matrix.
-
diag
-
extractDiag
Extracts the diagonal elements 'src' write it to the 'dst' vector. 'dst' can either be a row or column vector.
- Parameters:
src
- Matrix whose diagonal elements are being extracted. Not modified.dst
- A vector the results will be written into. Modified.
-
convert
Converts the real matrix into a complex matrix.- Parameters:
input
- Real matrix. Not modified.output
- Complex matrix. Modified.
-
real
Places the real component of the input matrix into the output matrix.- Parameters:
input
- Complex matrix. Not modified.output
- real matrix. Modified.
-
imaginary
Places the imaginary component of the input matrix into the output matrix.- Parameters:
input
- Complex matrix. Not modified.output
- real matrix. Modified.
-
magnitude
Computes the magnitude of the complex number in the input matrix and stores the results in the output matrix.
magnitude = sqrt(real^2 + imaginary^2)- Parameters:
input
- Complex matrix. Not modified.output
- real matrix. Modified.
-
conjugate
Computes the complex conjugate of the input matrix.
reali,j = reali,j
imaginaryi,j = -1*imaginaryi,j
- Parameters:
input
- Input matrix. Not modified.output
- The complex conjugate of the input matrix. Modified.
-
fill
Sets every element in the matrix to the specified value.
aij = value- Parameters:
a
- A matrix whose elements are about to be set. Modified.real
- The real componentimaginary
- The imaginary component
-
add
Performs the following operation:
c = a + b
cij = aij + bij
Matrix C can be the same instance as Matrix A and/or B.
- Parameters:
a
- A Matrix. Not modified.b
- A Matrix. Not modified.c
- A Matrix where the results are stored. Modified.
-
subtract
Performs the following operation:
c = a - b
cij = aij - bij
Matrix C can be the same instance as Matrix A and/or B.
- Parameters:
a
- A Matrix. Not modified.b
- A Matrix. Not modified.c
- A Matrix where the results are stored. Modified.
-
scale
Performs an in-place element by element scalar multiplication.
aij = α*aij- Parameters:
a
- The matrix that is to be scaled. Modified.alphaReal
- real component of scale factoralphaImag
- imaginary component of scale factor
-
mult
Performs the following operation:
c = a * b
cij = ∑k=1:n { * aik * bkj}- Parameters:
a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
mult
public static void mult(double realAlpha, double imgAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = α * a * b
cij = α ∑k=1:n { * aik * bkj}- Parameters:
realAlpha
- real component of scaling factor.imgAlpha
- imaginary component of scaling factor.a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multAdd
Performs the following operation:
c = c + a * b
cij = cij + ∑k=1:n { aik * bkj}- Parameters:
a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multAdd
public static void multAdd(double realAlpha, double imgAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + α * a * b
cij = cij + α * ∑k=1:n { aik * bkj}- Parameters:
realAlpha
- real component of scaling factor.imgAlpha
- imaginary component of scaling factor.a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multTransA
Performs the following operation:
c = aH * b
cij = ∑k=1:n { aki * bkj}- Parameters:
a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multTransA
public static void multTransA(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = α * aH * b
cij = α ∑k=1:n { aki * bkj}- Parameters:
realAlpha
- Real component of scaling factor.imagAlpha
- Imaginary component of scaling factor.a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multTransB
Performs the following operation:
c = a * bH
cij = ∑k=1:n { aik * bjk}- Parameters:
a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multTransB
public static void multTransB(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = α * a * bH
cij = α ∑k=1:n { aik * bjk}- Parameters:
realAlpha
- Real component of scaling factor.imagAlpha
- Imaginary component of scaling factor.a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multTransAB
Performs the following operation:
c = aT * bT
cij = ∑k=1:n { aki * bjk}- Parameters:
a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multTransAB
public static void multTransAB(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = α * aH * bH
cij = α ∑k=1:n { aki * bjk}- Parameters:
realAlpha
- Real component of scaling factor.imagAlpha
- Imaginary component of scaling factor.a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multAddTransA
Performs the following operation:
c = c + aH * b
cij = cij + ∑k=1:n { aki * bkj}- Parameters:
a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multAddTransA
public static void multAddTransA(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + α * aH * b
cij =cij + α * ∑k=1:n { aki * bkj}- Parameters:
realAlpha
- Real component of scaling factor.imagAlpha
- Imaginary component of scaling factor.a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multAddTransB
Performs the following operation:
c = c + a * bH
cij = cij + ∑k=1:n { aik * bjk}- Parameters:
a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multAddTransB
public static void multAddTransB(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + α * a * bH
cij = cij + α * ∑k=1:n { aik * bjk}- Parameters:
realAlpha
- Real component of scaling factor.imagAlpha
- Imaginary component of scaling factor.a
- The left matrix in the multiplication operation. Not modified.b
- The right matrix in the multiplication operation. Not modified.c
- Where the results of the operation are stored. Modified.
-
multAddTransAB
Performs the following operation:
c = c + aH * bH
cij = cij + ∑k=1:n { aki * bjk}- Parameters:
a
- The left matrix in the multiplication operation. Not Modified.b
- The right matrix in the multiplication operation. Not Modified.c
- Where the results of the operation are stored. Modified.
-
multAddTransAB
public static void multAddTransAB(double realAlpha, double imagAlpha, ZMatrixRMaj a, ZMatrixRMaj b, ZMatrixRMaj c) Performs the following operation:
c = c + α * aH * bH
cij = cij + α * ∑k=1:n { aki * bjk}- Parameters:
realAlpha
- Real component of scaling factor.imagAlpha
- Imaginary component of scaling factor.a
- The left matrix in the multiplication operation. Not Modified.b
- The right matrix in the multiplication operation. Not Modified.c
- Where the results of the operation are stored. Modified.
-
transpose
Performs an "in-place" transpose.
For square matrices the transpose is truly in-place and does not require additional memory. For non-square matrices, internally a temporary matrix is declared and
transpose(ZMatrixRMaj, ZMatrixRMaj)
is invoked.- Parameters:
mat
- The matrix that is to be transposed. Modified.
-
transposeConjugate
Performs an "in-place" conjugate transpose.
- Parameters:
mat
- The matrix that is to be transposed. Modified.- See Also:
-
transpose
Transposes input matrix 'a' and stores the results in output matrix 'b':
bij = aji
where 'b' is the transpose of 'a'.- Parameters:
input
- The original matrix. Not modified.output
- Where the transpose is stored. If null a new matrix is created. Modified.- Returns:
- The transposed matrix.
-
transposeConjugate
public static ZMatrixRMaj transposeConjugate(ZMatrixRMaj input, @Nullable @Nullable ZMatrixRMaj output) Conjugate transposes input matrix 'a' and stores the results in output matrix 'b':
b-reali,j = a-realj,i
b-imaginaryi,j = -1*a-imaginaryj,i
where 'b' is the transpose of 'a'.- Parameters:
input
- The original matrix. Not modified.output
- Where the transpose is stored. If null a new matrix is created. Modified.- Returns:
- The transposed matrix.
-
trace
Computes the matrix trace:
trace = ∑i=1:n { aii }
where n = min(numRows,numCols)- Parameters:
input
- (Input) A matrixoutput
- (Output) Storage for the trace. Can be null.- Returns:
- The trace's value
-
invert
Performs a matrix inversion operation on the specified matrix and stores the results in the same matrix.
a = a-1If the algorithm could not invert the matrix then false is returned. If it returns true that just means the algorithm finished. The results could still be bad because the matrix is singular or nearly singular.
- Parameters:
A
- The matrix that is to be inverted. Results are stored here. Modified.- Returns:
- true if it could invert the matrix false if it could not.
-
invert
Performs a matrix inversion operation that does not modify the original and stores the results in another matrix. The two matrices must have the same dimension.
b = a-1If the algorithm could not invert the matrix then false is returned. If it returns true that just means the algorithm finished. The results could still be bad because the matrix is singular or nearly singular.
For medium to large matrices there might be a slight performance boost to using
LinearSolverFactory_ZDRM
instead.- Parameters:
input
- The matrix that is to be inverted. Not modified.output
- Where the inverse matrix is stored. Modified.- Returns:
- true if it could invert the matrix false if it could not.
-
solve
Solves for x in the following equation:
A*x = bIf the system could not be solved then false is returned. If it returns true that just means the algorithm finished operating, but the results could still be bad because 'A' is singular or nearly singular.
If repeat calls to solve are being made then one should consider using
LinearSolverFactory_ZDRM
instead.It is ok for 'b' and 'x' to be the same matrix.
- Parameters:
a
- A matrix that is m by n. Not modified.b
- A matrix that is n by k. Not modified.x
- A matrix that is m by k. Modified.- Returns:
- true if it could invert the matrix false if it could not.
-
det
Returns the determinant of the matrix. If the inverse of the matrix is also needed, then usingLUDecompositionAlt_ZDRM
directly (or any similar algorithm) can be more efficient.- Parameters:
mat
- The matrix whose determinant is to be computed. Not modified.- Returns:
- The determinant.
-
elementMultiply
public static ZMatrixRMaj elementMultiply(ZMatrixD1 input, double real, double imaginary, @Nullable @Nullable ZMatrixRMaj output) Performs element by element multiplication operation with a complex number
outputij = inputij * (real + imaginary*i)
- Parameters:
input
- The left matrix in the multiplication operation. Not modified.real
- Real component of the number it is multiplied byimaginary
- Imaginary component of the number it is multiplied byoutput
- Where the results of the operation are stored. Modified.
-
elementMultiply
public static ZMatrixRMaj elementMultiply(ZMatrixD1 inputA, ZMatrixD1 inputB, @Nullable @Nullable ZMatrixRMaj output) Performs complex multiplication between two matrices with the same shape element by element.
outputij = inputAij * inputBij
- Parameters:
inputA
- First input matrix. Not modified.inputB
- Second input matrix. Not modified.output
- Where the results of the operation are stored. Modified.
-
elementDivide
public static ZMatrixRMaj elementDivide(ZMatrixD1 input, double real, double imaginary, @Nullable @Nullable ZMatrixRMaj output) Performs element by element division operation with a complex number on the right
outputij = inputij / (real + imaginary*i)
- Parameters:
input
- The left matrix in the multiplication operation. Not modified.real
- Real component of the number it is multiplied byimaginary
- Imaginary component of the number it is multiplied byoutput
- Where the results of the operation are stored. Modified.
-
elementDivide
public static ZMatrixRMaj elementDivide(double real, double imaginary, ZMatrixD1 input, @Nullable @Nullable ZMatrixRMaj output) Performs element by element division operation with a complex number on the right
outputij = (real + imaginary*i) / inputij
- Parameters:
real
- Real component of the number it is multiplied byimaginary
- Imaginary component of the number it is multiplied byinput
- The right matrix in the multiplication operation. Not modified.output
- Where the results of the operation are stored. Modified.
-
elementDivide
public static ZMatrixRMaj elementDivide(ZMatrixD1 inputA, ZMatrixD1 inputB, @Nullable @Nullable ZMatrixRMaj output) Performs complex division between two matrices with the same shape element by element.
outputij = inputAij / inputBij
- Parameters:
inputA
- First input matrix. Not modified.inputB
- Second input matrix. Not modified.output
- Where the results of the operation are stored. Modified.
-
elementPower
public static ZMatrixRMaj elementPower(ZMatrixD1 input, double b, @Nullable @Nullable ZMatrixRMaj output) Element by element complex power
outputij = inputAij / inputBij
- Parameters:
input
- Input matrix. Not modified.b
- Poweroutput
- Where the results of the operation are stored. Modified.
-
elementSum
Computes the sum of all the elements in the matrix:
sum(i=1:m , j=1:n ; aij)- Parameters:
input
- An m by n matrix. Not modified.output
- (Output) Storage for the sum. Can be null.- Returns:
- The sum of the elements.
-
elementMinReal
Returns the value of the real element in the matrix that has the minimum value.
Min{ aij } for all i and j
- Parameters:
a
- A matrix. Not modified.- Returns:
- The minimum value out of all the real values.
-
elementMinImaginary
Returns the value of the imaginary element in the matrix that has the minimum value.
Min{ aij } for all i and j
- Parameters:
a
- A matrix. Not modified.- Returns:
- The minimum value out of all the real values.
-
elementMaxReal
Returns the value of the real element in the matrix that has the minimum value.
Min{ aij } for all i and j
- Parameters:
a
- A matrix. Not modified.- Returns:
- The minimum value out of all the real values.
-
elementMaxImaginary
Returns the value of the imaginary element in the matrix that has the minimum value.
Min{ aij } for all i and j
- Parameters:
a
- A matrix. Not modified.- Returns:
- The minimum value out of all the real values.
-
elementMaxMagnitude2
Returns the magnitude squared of the complex element with the largest magnitude
Max{ |aij|^2 } for all i and j
- Parameters:
a
- A matrix. Not modified.- Returns:
- The max magnitude squared
-
setIdentity
Sets all the diagonal elements equal to one and everything else equal to zero. If this is a square matrix then it will be an identity matrix.- Parameters:
mat
- A square matrix.
-
extract
Creates a new matrix which is the specified submatrix of 'src'
si-y0 , j-x0 = oij for all y0 ≤ i < y1 and x0 ≤ j < x1
where 'sij' is an element in the submatrix and 'oij' is an element in the original matrix.- Parameters:
src
- The original matrix which is to be copied. Not modified.srcX0
- Start column.srcX1
- Stop column+1.srcY0
- Start row.srcY1
- Stop row+1.- Returns:
- Extracted submatrix.
-
extract
public static void extract(ZMatrixRMaj src, int srcY0, int srcY1, int srcX0, int srcX1, ZMatrixRMaj dst, int dstY0, int dstX0) Extracts a submatrix from 'src' and inserts it in a submatrix in 'dst'.
si-y0 , j-x0 = oij for all y0 ≤ i < y1 and x0 ≤ j < x1
where 'sij' is an element in the submatrix and 'oij' is an element in the original matrix.- Parameters:
src
- The original matrix which is to be copied. Not modified.srcX0
- Start column.srcX1
- Stop column+1.srcY0
- Start row.srcY1
- Stop row+1.dst
- Where the submatrix are stored. Modified.dstY0
- Start row in dst.dstX0
- start column in dst.
-
columnsToVector
Converts the columns in a matrix into a set of vectors.- Parameters:
A
- Matrix. Not modified.v
- Optional storage for columns.- Returns:
- An array of vectors.
-
elementMaxAbs
Returns the largest absolute value of any element in the matrix.
Max{ |aij| } for all i and j
- Parameters:
a
- A matrix. Not modified.- Returns:
- The max abs element value in the matrix.
-
elementMinAbs
Returns the smallest absolute value of any element in the matrix.
Min{ |aij| } for all i and j
- Parameters:
a
- A matrix. Not modified.- Returns:
- The min abs element value in the matrix.
-