TSparseSolver< F > Class Template Referenceabstract

solver for sparse systems of equations More...

#include <mia/core/sparse_solver.hh>

Inheritance diagram for TSparseSolver< F >:
[legend]
Collaboration diagram for TSparseSolver< F >:
[legend]

Data Structures

class  A_mult_x
 A class that implements the multiplication of a cell of the matrix A with the field x. More...
 

Public Types

typedef Field::const_iterator const_field_iterator
 type of the field random access const_iterator More...
 
typedef dim_traits< F >::dimsize_type dimsize_type
 typeef of the dimension type More...
 
typedef F Field
 typedef for the field the solver works on More...
 
typedef Field::iterator field_iterator
 type of the field random access iterator More...
 
typedef F plugin_data
 helper typedef for the plug-in handling More...
 
typedef TSparseSolver< F > plugin_type
 helper for the plug-in handling More...
 
typedef Field::value_type value_type
 type of the values stored in Field More...
 
- Public Types inherited from CPropertyFlagHolder
typedef std::set< const char * > Set
 define the type of the set of flags More...
 

Public Member Functions

virtual int solve (const Field &rhs, Field &x, const A_mult_x &mult) const =0
 
virtual ~TSparseSolver ()
 
- Public Member Functions inherited from CProductBase
const char * get_init_string () const
 
void set_init_string (const char *init)
 
void set_module (PPluginModule module)
 
- Public Member Functions inherited from CPropertyFlagHolder
void add (const char *property)
 
Set get_missing_properties (const CPropertyFlagHolder &testset) const
 
bool has (const char *property) const
 
bool has_all_in (const CPropertyFlagHolder &testset) const
 
virtual ~CPropertyFlagHolder ()
 

Static Public Attributes

static const char *const type_descr = "sparsesolver"
 plugin type component of plugin path descriptor More...
 

Detailed Description

template<typename F>
class TSparseSolver< F >

solver for sparse systems of equations

This is the templatex base class for solvers for systems of equations Ax=b if A where the multiplication Ax can be expressed as a convolution operation with a N dimansional operator.

Template Parameters
Fthe field this solver works on. The Field type must provide the types const_iterator and iterator that implement random access iterators.
Remarks
this class is currently not used at all and it may actually be better to design it to interface with a library like LAPACK etc.

Definition at line 43 of file sparse_solver.hh.

Member Typedef Documentation

◆ const_field_iterator

template<typename F >
typedef Field::const_iterator TSparseSolver< F >::const_field_iterator

type of the field random access const_iterator

Definition at line 64 of file sparse_solver.hh.

◆ dimsize_type

template<typename F >
typedef dim_traits<F>::dimsize_type TSparseSolver< F >::dimsize_type

typeef of the dimension type

Definition at line 52 of file sparse_solver.hh.

◆ Field

template<typename F >
typedef F TSparseSolver< F >::Field

typedef for the field the solver works on

Definition at line 46 of file sparse_solver.hh.

◆ field_iterator

template<typename F >
typedef Field::iterator TSparseSolver< F >::field_iterator

type of the field random access iterator

Definition at line 61 of file sparse_solver.hh.

◆ plugin_data

template<typename F >
typedef F TSparseSolver< F >::plugin_data

helper typedef for the plug-in handling

Definition at line 49 of file sparse_solver.hh.

◆ plugin_type

template<typename F >
typedef TSparseSolver<F> TSparseSolver< F >::plugin_type

helper for the plug-in handling

Definition at line 55 of file sparse_solver.hh.

◆ value_type

template<typename F >
typedef Field::value_type TSparseSolver< F >::value_type

type of the values stored in Field

Definition at line 67 of file sparse_solver.hh.

Constructor & Destructor Documentation

◆ ~TSparseSolver()

template<typename F >
virtual TSparseSolver< F >::~TSparseSolver ( )
inlinevirtual

Definition at line 124 of file sparse_solver.hh.

References TSparseSolver< F >::solve().

Member Function Documentation

◆ solve()

template<typename F >
virtual int TSparseSolver< F >::solve ( const Field rhs,
Field x,
const A_mult_x mult 
) const
pure virtual

Run the solver

Parameters
rhsthe right hand side of teh system of linear equations to be solved
[in,out]xat input an initial estimate of the solution, on output the solution
multthe class implementing the multiplication with matrix A
Returns
0 if all went fine and an algorithm specific error value if something went wrong.

Referenced by TSparseSolver< F >::~TSparseSolver().

Field Documentation

◆ type_descr

template<typename F >
const char *const TSparseSolver< F >::type_descr = "sparsesolver"
static

plugin type component of plugin path descriptor

Definition at line 58 of file sparse_solver.hh.


The documentation for this class was generated from the following file: