:orphan: # PCDiagonalScaleLeft Scales a vector by the left scaling as needed by certain time-stepping codes. ## Synopsis ``` #include "petscksp.h" PetscErrorCode PCDiagonalScaleLeft(PC pc, Vec in, Vec out) ``` Logically Collective ## Input Parameters - ***pc -*** the preconditioner context - ***in -*** input vector - ***out -*** scaled vector (maybe the same as in) ## Notes The system solved via the Krylov method is ```none D M A D^{-1} y = D M b for left preconditioning or D A M D^{-1} z = D b for right preconditioning ``` `PCDiagonalScaleLeft()` scales a vector by D. `PCDiagonalScaleRight()` scales a vector by D^{-1}. If diagonal scaling is turned off and in is not out then in is copied to out ## See Also `PCCreate()`, `PCSetUp()`, `PCDiagonalScaleSet()`, `PCDiagonalScaleRight()`, `PCDiagonalScale()` ## Level intermediate ## Location src/ksp/pc/interface/precon.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/interface/precon.c) [Index of all PC routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)