Skip to main content
`Ctrl`+`K`

# MatTransposeSetPrecursor

Set the matrix from which the second matrix will receive numerical transpose data with a call to `MatTranspose`(A,`MAT_REUSE_MATRIX`,&B) when B was not obtained with `MatTranspose`(A,`MAT_INITIAL_MATRIX`,&B)

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatTransposeSetPrecursor(Mat mat, Mat B)

Collective

## Input Parameter

- mat - the matrix to provide the transpose

## Output Parameter

- B - the matrix to contain the transpose; it MUST have the nonzero structure of the transpose of A or the code will crash or generate incorrect results

## Note

Normally the use of `MatTranspose`(A, `MAT_REUSE_MATRIX`, &B) requires that `B` was obtained with a call to `MatTranspose`(A, `MAT_INITIAL_MATRIX`, &B). This routine allows bypassing that call.

## See Also

Matrices, `Mat`, `MatTransposeSymbolic()`, `MatTranspose()`, `MatMultTranspose()`, `MatMultTransposeAdd()`, `MatIsTranspose()`, `MatReuse`, `MAT_INITIAL_MATRIX`, `MAT_REUSE_MATRIX`, `MAT_INPLACE_MATRIX`

## Level

advanced

## Location

src/mat/interface/matrix.c

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages