~ubuntu-branches/ubuntu/wily/afnix/wily

« back to all changes in this revision

Viewing changes to src/mod/mth/shl/Krylov.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Anibal Monsalve Salazar
  • Date: 2011-03-16 21:31:18 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20110316213118-gk4k3ez3e5d2huna
Tags: 2.0.0-1
* QA upload.
* New upstream release
* Debian source format is 3.0 (quilt)
* Fix debhelper-but-no-misc-depends
* Fix ancient-standards-version
* Fix package-contains-linda-override
* debhelper compatibility is 7
* Fix dh-clean-k-is-deprecated

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// ---------------------------------------------------------------------------
 
2
// - Krylov.hpp                                                              -
 
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.                  -
 
7
// -                                                                         -
 
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
// ---------------------------------------------------------------------------
 
16
 
 
17
#ifndef  AFNIX_KRYLOV_HPP
 
18
#define  AFNIX_KRYLOV_HPP
 
19
 
 
20
#ifndef  AFNIX_RVI_HPP
 
21
#include "Rvi.hpp"
 
22
#endif
 
23
 
 
24
#ifndef  AFNIX_RMI_HPP
 
25
#include "Rmi.hpp"
 
26
#endif
 
27
 
 
28
namespace afnix {
 
29
 
 
30
  /// The Krylov class is a class that implements various krylov space
 
31
  /// based algorithms used mostly with linear solver.
 
32
  /// @author amaury darsch
 
33
 
 
34
  class Krylov {
 
35
  public:
 
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);
 
42
 
 
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);
 
49
  };
 
50
}
 
51
 
 
52
#endif