Smoother.cpp File Reference
`#include "Preconditioner.h"`
`#include "BlockOps.h"`
`#include "PasoUtil.h"`

## Namespaces

| paso

## Functions

void | paso::Preconditioner_Smoother_free (Preconditioner_Smoother *in)
void | paso::Preconditioner_LocalSmoother_free (Preconditioner_LocalSmoother *in)
Preconditioner_Smoother * | paso::Preconditioner_Smoother_alloc (SystemMatrix_ptr< double > A, bool jacobi, bool is_local, bool verbose)
| constructs the symmetric Gauss-Seidel preconditioner More...
Preconditioner_LocalSmoother * | paso::Preconditioner_LocalSmoother_alloc (SparseMatrix_ptr< double > A, bool jacobi, bool verbose)
void | paso::Preconditioner_Smoother_solve (SystemMatrix_ptr< double > A, Preconditioner_Smoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial)
SolverResult | paso::Preconditioner_Smoother_solve_byTolerance (SystemMatrix_ptr< double > A, Preconditioner_Smoother *gs, double *x, const double *b, double atol, dim_t *sweeps, bool x_is_initial)
void | paso::Preconditioner_LocalSmoother_solve (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial)
void | paso::Preconditioner_LocalSmoother_Sweep (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *gs, double *x)
void | paso::Preconditioner_LocalSmoother_Sweep_sequential (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *smoother, double *x)
| inplace Gauss-Seidel sweep in sequential mode More...
void | paso::Preconditioner_LocalSmoother_Sweep_colored (SparseMatrix_ptr< double > A, Preconditioner_LocalSmoother *gs, double *x)