34#ifndef __H__UG__SMALL_ALGEBRA__BLOCKS__
35#define __H__UG__SMALL_ALGEBRA__BLOCKS__
41inline double dabs(
double a) {
return a > 0 ? a : -a; }
44template <
typename t>
struct block_traits;
45template<
typename value_type,
typename vec_type>
struct block_multiply_traits;
50template<
typename TYPE>
56template<
typename TYPE>
66template<
typename T>
inline double &
BlockRef(T &vec,
size_t i)
71template<
typename T>
inline const double &
BlockRef(
const T &vec,
size_t i)
77template<
typename T>
inline double &
BlockRef(T &mat,
size_t i,
size_t j)
82template<
typename T>
inline const double &
BlockRef(
const T &mat,
size_t i,
size_t j)
119template<
typename A,
typename B,
typename C>
inline void AssignMult(A &dest,
const B &b,
const C &vec);
121template<
typename A,
typename B,
typename C>
inline void AddMult(A &dest,
const B &b,
const C &vec);
123template<
typename A,
typename B,
typename C>
inline void SubMult(A &dest,
const B &b,
const C &vec);
132inline void SetSize(T &t,
size_t a,
size_t b);
136inline void SetSize(T &t,
size_t a);
140inline size_t GetSize(
const T &t);
144inline size_t GetRows(
const T &t);
148inline size_t GetCols(
const T &t);
size_t GetCols(const T &t)
double dabs(double a)
Definition blocks.h:41
void AssignMult(A &dest, const B &b, const C &vec)
void SubMult(A &dest, const B &b, const C &vec)
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
void AddMult(A &dest, const B &b, const C &vec)
size_t GetSize(const T &t)
double BlockNorm(const TYPE &v)
Definition blocks.h:57