34#ifndef __H__UG__MARTIN_ALGEBRA__BLOCKS__
35#define __H__UG__MARTIN_ALGEBRA__BLOCKS__
41template <
typename t>
struct block_traits;
47template<
typename TYPE>
51template<
typename TYPE>
60template<
typename T>
inline double &
BlockRef(T &vec,
size_t i);
62template<
typename T>
inline const double &
BlockRef(
const T &vec,
size_t i);
66template<
typename T>
inline double &
BlockRef(T &mat,
size_t i,
size_t j);
68template<
typename T>
inline const double &
BlockRef(
const T &mat,
size_t i,
size_t j);
74template<
typename T>
inline void SetSize(T &t,
size_t a,
size_t b);
77template<
typename T>
inline void SetSize(T &t,
size_t a);
80template<
typename T>
inline size_t GetSize(
const T &t);
82template<
typename T>
inline size_t GetRows(
const T &t);
84template<
typename T>
inline size_t GetCols(
const T &t);
109 enum { static_num_rows = 1};
110 enum { static_num_cols = 1};
111 enum { static_size = 1 };
152template<
typename TMat,
typename TVec>
double number
Definition types.h:124
size_t GetCols(const T &t)
bool GetInverse(block_traits< T >::inverse_type &inv, const T &m)
double & BlockRef(T &vec, size_t i)
Definition blocks.h:66
void SetSize(T &t, size_t a, size_t b)
size_t GetRows(const T &t)
double BlockNorm2(const TYPE &v)
Definition blocks.h:51
bool InverseMatMult(number &dest, const double &beta, const TMat &mat, const TVec &vec)
you can implement this function with GetInverse and MatMult
size_t GetSize(const T &t)
double BlockNorm(const TYPE &v)
Definition blocks.h:57
T1 ReturnType
Definition smallalgebra_interface.h:120
Definition smallalgebra_interface.h:42
T inverse_type
Definition smallalgebra_interface.h:102
T vec_type
Definition smallalgebra_interface.h:98
Definition communication_policies.h:58
@ is_static
Definition communication_policies.h:60