Skip to main content
`Ctrl`+`K`

# FNEvaluateFunctionMat

Computes the value of the function \(f(A)\) for a given matrix \(A\), where the result is also a matrix.

## Synopsis

    #include "slepcfn.h"
    PetscErrorCode FNEvaluateFunctionMat(FN fn,Mat A,Mat B)

Logically Collective

## Input Parameters

- fn - the math function context

- A - matrix on which the function must be evaluated

## Output Parameter

- B - (optional) matrix resulting from evaluating \(f(A)\)

## Notes

Matrix `A` must be a square sequential dense `Mat`, with all entries equal on all processes (otherwise each process will compute different results). If matrix `B` is provided, it must also be a square sequential dense `Mat`, and both matrices must have the same dimensions. If `B` is `NULL` (or `B`=`A`) then the function will perform an in-place computation, overwriting `A` with \(f(A)\).

If `A` is known to be real symmetric or complex Hermitian then it is recommended to set the appropriate flag with `MatSetOption()`, because symmetry can sometimes be exploited by the algorithm.

Scaling factors are taken into account, so the actual function evaluation will return \(\beta f(\alpha A)\).

## See Also

FN: Mathematical Functions, `FNEvaluateFunction()`, `FNEvaluateFunctionMatVec()`, `FNSetMethod()`

## Level

advanced

## Location

src/sys/classes/fn/interface/fnbasic.c

## Implementations

FNEvaluateFunctionMat_Combine() in src/sys/classes/fn/impls/combine/fncombine.c
FNEvaluateFunctionMat_Rational() in src/sys/classes/fn/impls/rational/fnrational.c

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