Skip to main content
`Ctrl`+`K`

# MatShellTestMult

Compares the multiply routine provided to the `MATSHELL` with differencing on a given function.

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatShellTestMult(Mat mat, PetscErrorCode (*f)(void *, Vec, Vec), Vec base, PetscCtx ctx, PetscBool *flg)

Logically Collective; No Fortran Support

## Input Parameters

- mat - the `MATSHELL` shell matrix

- f - the function

- base - differences are computed around this vector, see `MatMFFDSetBase()`, for Jacobians this is the point at which the Jacobian is being evaluated

- ctx - an optional context for the function

## Output Parameter

- flg - `PETSC_TRUE` if the multiply is likely correct

## Options Database Key

- -mat_shell_test_mult_view - print if any differences are detected between the products and print the difference

## See Also

Matrices, `Mat`, `MATSHELL`, `MatCreateShell()`, `MatShellGetContext()`, `MatShellGetOperation()`, `MatShellTestMultTranspose()`

## Level

advanced

## Location

src/mat/impls/shell/shell.c

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