KrisLibrary  1.0.0
Classes | Namespaces
Conditioner.h File Reference

Numerical conditioners for a matrix equation A*x=b. More...

#include "matrix.h"
#include "DiagonalMatrix.h"
#include "linalgebra.h"

Go to the source code of this file.

Classes

struct  Math::Conditioner_SymmDiag
 A matrix conditioner that does a pre/postmultiply with a diagonal S. More...
 

Namespaces

 Math
 Contains all definitions in the Math package.
 

Detailed Description

Numerical conditioners for a matrix equation A*x=b.

A conditioner solves a transformed equation A'*x'=b' with better properties (and such that x is readily available from x').

One example is CG preconditioners (these are in conjgrad.h), Uniform scaling: A' = cA, b' = c*b. Matrix premultiply: A' = C*A, b' = C*b. or postmultiply: A' = A*C, x' = C^-1*x.

Would like to retain symmetricity for symmetric matrices, so can use A' = C*A*C^t, x' = C^-t*x, b' = C*b.

The implementation is such that on initialization, the matrices A and b are immediately altered to obtain A',b'. x' is solved for with any method in in MatrixEquation, and x is obtained from x' using the Post() method.