1
// ---------------------------------------------------------------------------
3
// - afnix:mth module - krylov based solver class definitions -
4
// ---------------------------------------------------------------------------
5
// - This program is free software; you can redistribute it and/or modify -
6
// - it provided that this copyright notice is kept intact. -
8
// - This program is distributed in the hope that it will be useful, but -
9
// - without any warranty; without even the implied warranty of -
10
// - merchantability or fitness for a particular purpose. In no event shall -
11
// - the copyright holder be liable for any direct, indirect, incidental or -
12
// - special damages arising in any way out of the use of this software. -
13
// ---------------------------------------------------------------------------
14
// - copyright (c) 1999-2011 amaury darsch -
15
// ---------------------------------------------------------------------------
17
#ifndef AFNIX_KRYLOV_HPP
18
#define AFNIX_KRYLOV_HPP
30
/// The Krylov class is a class that implements various krylov space
31
/// based algorithms used mostly with linear solver.
32
/// @author amaury darsch
36
/// solve a system with conjugate gradient squared method
37
/// @param x the result vector
38
/// @param m the system matrix
39
/// @param b the system vector
40
/// @param ni the number of iterations
41
static bool cgs (Rvi& x, const Rmi& m, const Rvi& b, const long ni);
43
/// solve a system with bi-conjugate stabilized method
44
/// @param x the result vector
45
/// @param m the system matrix
46
/// @param b the system vector
47
/// @param ni the number of iterations
48
static bool bcs (Rvi& x, const Rmi& m, const Rvi& b, const long ni);