MyraMath
Classes | Functions
stationary.h File Reference

Implementations of classical stationary iterations: jacobi(), seidel(), sor() and ssor() More...

#include <myramath/MYRAMATH_EXPORT.h>
#include <myramath/utility/Number.h>
#include <vector>
Include dependency graph for stationary.h:

Go to the source code of this file.

Classes

class  myra::CSparseMatrixRange< Number >
 Represents a const SparseMatrixRange. More...
 
class  myra::CVectorRange< Number >
 Represents a const VectorRange. More...
 
class  myra::VectorRange< Number >
 Represents a mutable VectorRange. More...
 
class  myra::stationary_output< Precision >
 Common return type for all these methods. More...
 

Functions

stationary_output< NumberS > myra::jacobi (const CSparseMatrixRange< NumberS > &A, const CVectorRange< NumberS > &b, const VectorRange< NumberS > &x, NumberS tolerance=1.0e-6f, int iterations=100)
 Solves A*x=b using Jacobi iteration. Vector x contains an initial guess on input, overwritten with the solution on output.
 
stationary_output< NumberD > myra::jacobi (const CSparseMatrixRange< NumberD > &A, const CVectorRange< NumberD > &b, const VectorRange< NumberD > &x, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::jacobi (const CSparseMatrixRange< NumberC > &A, const CVectorRange< NumberC > &b, const VectorRange< NumberC > &x, NumberS tolerance, int iterations)
 
stationary_output< NumberD > myra::jacobi (const CSparseMatrixRange< NumberZ > &A, const CVectorRange< NumberZ > &b, const VectorRange< NumberZ > &x, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::seidel (const CSparseMatrixRange< NumberS > &At, const CVectorRange< NumberS > &b, const VectorRange< NumberS > &x, NumberS tolerance=1.0e-6f, int iterations=100)
 Solves A*x=b using Seidel iteration. Vector x contains an initial guess on input, overwritten with the solution on output.
 
stationary_output< NumberD > myra::seidel (const CSparseMatrixRange< NumberD > &At, const CVectorRange< NumberD > &b, const VectorRange< NumberD > &x, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::seidel (const CSparseMatrixRange< NumberC > &At, const CVectorRange< NumberC > &b, const VectorRange< NumberC > &x, NumberS tolerance, int iterations)
 
stationary_output< NumberD > myra::seidel (const CSparseMatrixRange< NumberZ > &At, const CVectorRange< NumberZ > &b, const VectorRange< NumberZ > &x, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::sseidel (const CSparseMatrixRange< NumberS > &At, const CVectorRange< NumberS > &b, const VectorRange< NumberS > &x, NumberS tolerance, int iterations)
 
stationary_output< NumberD > myra::sseidel (const CSparseMatrixRange< NumberD > &At, const CVectorRange< NumberD > &b, const VectorRange< NumberD > &x, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::sseidel (const CSparseMatrixRange< NumberC > &At, const CVectorRange< NumberC > &b, const VectorRange< NumberC > &x, NumberS tolerance, int iterations)
 
stationary_output< NumberD > myra::sseidel (const CSparseMatrixRange< NumberZ > &At, const CVectorRange< NumberZ > &b, const VectorRange< NumberZ > &x, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::sor (const CSparseMatrixRange< NumberS > &At, const CVectorRange< NumberS > &b, const VectorRange< NumberS > &x, NumberS omega=1.5f, NumberS tolerance=1.0e-6f, int iterations=100)
 Solves A*x=b using successive over-relaxation (SOR). Vector x contains an initial guess on input, overwritten with the solution on output.
 
stationary_output< NumberD > myra::sor (const CSparseMatrixRange< NumberD > &At, const CVectorRange< NumberD > &b, const VectorRange< NumberD > &x, NumberD omega, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::sor (const CSparseMatrixRange< NumberC > &At, const CVectorRange< NumberC > &b, const VectorRange< NumberC > &x, NumberS omega, NumberS tolerance, int iterations)
 
stationary_output< NumberD > myra::sor (const CSparseMatrixRange< NumberZ > &At, const CVectorRange< NumberZ > &b, const VectorRange< NumberZ > &x, NumberD omega, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::ssor (const CSparseMatrixRange< NumberS > &At, const CVectorRange< NumberS > &b, const VectorRange< NumberS > &x, NumberS omega=1.5f, NumberS tolerance=1.0e-6f, int iterations=100)
 Solves A*x=b using symmetric SOR. Vector x contains an initial guess on input, overwritten with the solution on output.
 
stationary_output< NumberD > myra::ssor (const CSparseMatrixRange< NumberD > &At, const CVectorRange< NumberD > &b, const VectorRange< NumberD > &x, NumberD omega, NumberD tolerance, int iterations)
 
stationary_output< NumberS > myra::ssor (const CSparseMatrixRange< NumberC > &At, const CVectorRange< NumberC > &b, const VectorRange< NumberC > &x, NumberS omega, NumberS tolerance, int iterations)
 
stationary_output< NumberD > myra::ssor (const CSparseMatrixRange< NumberZ > &At, const CVectorRange< NumberZ > &b, const VectorRange< NumberZ > &x, NumberD omega, NumberD tolerance, int iterations)
 

Detailed Description

Implementations of classical stationary iterations: jacobi(), seidel(), sor() and ssor()