/** * <p> * Conjugate transposes input matrix 'a' and stores the results in output matrix 'b':<br> * <br> * b-real<sub>i,j</sub> = a-real<sub>j,i</sub><br> * b-imaginary<sub>i,j</sub> = -1*a-imaginary<sub>j,i</sub><br> * where 'b' is the transpose of 'a'. * </p> * * @param input The original matrix. Not modified. * @param output Where the transpose is stored. If null a new matrix is created. Modified. * @return The transposed matrix. */ public static ZMatrixRMaj transposeConjugate(ZMatrixRMaj input, ZMatrixRMaj output) { output = UtilEjml.reshapeOrDeclare(output, input.numCols, input.numRows); TransposeAlgs_ZDRM.standardConjugate(input, output); return(output); }
/** * <p>Performs an "in-place" conjugate transpose.</p> * * @param mat The matrix that is to be transposed. Modified. * @see #transpose(ZMatrixRMaj) */ public static void transposeConjugate(ZMatrixRMaj mat) { if (mat.numCols == mat.numRows) { TransposeAlgs_ZDRM.squareConjugate(mat); } else { ZMatrixRMaj b = new ZMatrixRMaj(mat.numCols, mat.numRows); transposeConjugate(mat, b); mat.reshape(b.numRows, b.numCols); mat.setTo(b); } }