33#ifndef __H__LIB_ALGEBRA__PARALLELIZATION__PARALLEL_MATRIX__
34#define __H__LIB_ALGEBRA__PARALLELIZATION__PARALLEL_MATRIX__
63template <
typename TMatrix>
128 template<
typename TPVector>
129 bool apply(TPVector &res,
const TPVector &x)
const;
132 template<
typename TPVector>
136 template<
typename TPVector>
137 bool matmul_minus(TPVector &res,
const TPVector &x)
const;
Definition smart_pointer.h:296
Definition smart_pointer.h:108
Extends the HorizontalAlgebraLayouts by vertical layouts.
Definition algebra_layouts.h:121
Wrapper for sequential matrices to handle them in parallel.
Definition parallel_matrix.h:65
bool has_storage_type(uint type) const
returns if the current storage type has a given representation
Definition parallel_matrix.h:116
bool apply_transposed(TPVector &res, const TPVector &x) const
calculate res = A.T x
Definition parallel_matrix_impl.h:125
void set_storage_type(uint type)
sets the storage type
Definition parallel_matrix.h:101
void set_layouts(ConstSmartPtr< AlgebraLayouts > layouts)
sets the algebra layouts
Definition parallel_matrix.h:97
bool matmul_minus(TPVector &res, const TPVector &x) const
calculate res -= A x
Definition parallel_matrix_impl.h:167
ParallelStorageType get_storage_type() const
Definition parallel_matrix.h:121
ConstSmartPtr< AlgebraLayouts > layouts() const
returns the algebra layouts
Definition parallel_matrix.h:94
ParallelMatrix(SmartPtr< AlgebraLayouts > layouts)
Constructor setting the layouts.
Definition parallel_matrix.h:85
uint m_type
type of storage (i.e. consistent, additiv, additiv unique)
Definition parallel_matrix.h:144
ConstSmartPtr< AlgebraLayouts > m_spAlgebraLayouts
algebra layouts and communicators
Definition parallel_matrix.h:147
bool apply(TPVector &res, const TPVector &x) const
calculate res = A x
Definition parallel_matrix_impl.h:83
ParallelMatrix(const ParallelMatrix &)
void add_storage_type(uint type)
adds a storage type
Definition parallel_matrix.h:105
uint get_storage_mask() const
returns storage type mask
Definition parallel_matrix.h:120
@ rows_sorted
Definition parallel_matrix.h:67
bool change_storage_type(ParallelStorageType type)
changes to the requested storage type if possible
Definition parallel_matrix_impl.h:59
ParallelMatrix< TMatrix > this_type
own type
Definition parallel_matrix.h:76
void remove_storage_type(uint type)
removes a storage type
Definition parallel_matrix.h:109
this_type & operator=(const this_type &M)
assignment
Definition parallel_matrix_impl.h:43
ParallelMatrix()
Default Constructor.
Definition parallel_matrix.h:80
ParallelStorageType
Definition parallel_storage_type.h:66
@ PST_UNDEFINED
Definition parallel_storage_type.h:67
unsigned int uint
Definition types.h:114
@ MATRIX_USE_GLOBAL_FUNCTIONS
Definition matrix_algebra_types.h:69
Definition matrix_algebra_types.h:79
static const int type
Definition matrix_algebra_types.h:80
function ProblemDisc new(problemDesc, dom)