1#ifndef DUNE_FEM_COMMON_FMATRIXCOL_HH
2#define DUNE_FEM_COMMON_FMATRIXCOL_HH
15 template<
class FieldMatrix >
16 class FieldMatrixColumn;
23 template<
class FieldMatrix >
24 struct DenseMatVecTraits< FieldMatrixColumn< FieldMatrix > >
26 typedef FieldMatrixColumn< FieldMatrix > derived_type;
28 typedef typename DenseMatVecTraits< typename std::remove_const< FieldMatrix >::type >::value_type value_type;
29 typedef typename DenseMatVecTraits< typename std::remove_const< FieldMatrix >::type >::size_type size_type;
36 template<
class FieldMatrix >
37 struct FieldTraits< FieldMatrixColumn< FieldMatrix > >
39 typedef typename FieldTraits< typename std::remove_const< FieldMatrix >::type >::field_type field_type;
40 typedef typename FieldTraits< typename std::remove_const< FieldMatrix >::type >::real_type real_type;
48 template<
class K,
int m,
int n >
49 class FieldMatrixColumn< FieldMatrix< K, m, n > >
50 :
public DenseVector< FieldMatrixColumn< FieldMatrix< K, m, n > > >
52 typedef DenseVector< FieldMatrixColumn< FieldMatrix< K, m, n > > > Base;
55 static const int dimension = m;
57 typedef typename Base::size_type size_type;
58 typedef typename Base::value_type value_type;
61 : fieldMatrix_( fieldMatrix ),
65 using Base::operator=;
67 constexpr size_type
size ()
const {
return dimension; }
69 const value_type &operator[] ( size_type i )
const {
return fieldMatrix_[ i ][ column_ ]; }
70 value_type &operator[] ( size_type i ) {
return fieldMatrix_[ i ][ column_ ]; }
77 template<
class K,
int m,
int n >
78 class FieldMatrixColumn< const FieldMatrix< K, m, n > >
79 :
public DenseVector< FieldMatrixColumn< const FieldMatrix< K, m, n > > >
81 typedef DenseVector< FieldMatrixColumn< const FieldMatrix< K, m, n > > > Base;
84 static const int dimension = m;
86 typedef typename Base::size_type size_type;
87 typedef typename Base::value_type value_type;
90 : fieldMatrix_( fieldMatrix ),
94 using Base::operator=;
96 constexpr size_type
size ()
const {
return dimension; }
97 const value_type &operator[] ( size_type i )
const {
return fieldMatrix_[ i ][ column_ ]; }
Implements the dense vector interface, with an exchangeable storage class.
Implements a matrix constructed from a given type representing a field and compile-time given number ...
Dune namespace.
Definition: alignedallocator.hh:13
constexpr std::integral_constant< std::size_t, sizeof...(II)> size(std::integer_sequence< T, II... >)
Return the size of the sequence.
Definition: integersequence.hh:75