dune-fem 2.8.0
Loading...
Searching...
No Matches
rowreferencevector.hh
Go to the documentation of this file.
1#ifndef DUNE_FEM_STORAGE_ROWREFERENCEVECTOR_HH
2#define DUNE_FEM_STORAGE_ROWREFERENCEVECTOR_HH
3
4#include <dune/common/densevector.hh>
5
6namespace Dune
7{
8
9 namespace Fem
10 {
11
12 // Internal Forward Declarations
13 // -----------------------------
14
15 template< class K >
16 class RowReferenceVector;
17
18 } // namespace Fem
19
20
21
22 // DenseMatVecTraits for RowReferenceVector
23 // ----------------------------------------
24
25 template< class K >
26 struct DenseMatVecTraits< Fem::RowReferenceVector< K > >
27 {
29 typedef K value_type;
30 typedef std::size_t size_type;
31 };
32
33
34
35 // FieldTraits for RowReferenceVector
36 // ----------------------------------
37
38 template< class K >
39 struct FieldTraits< Fem::RowReferenceVector< K > >
40 {
41 typedef typename FieldTraits< K >::field_type field_type;
42 typedef typename FieldTraits< K >::real_type real_type;
43 };
44
45
46
47 namespace Fem
48 {
49
50 // RowReferenceVector
51 // ------------------
52
53 template< class K >
55 : public Dune::DenseVector< RowReferenceVector< K > >
56 {
57 typedef Dune::DenseVector< RowReferenceVector< K > > Base;
58
59 public:
60 typedef typename Base::size_type size_type;
61 typedef typename Base::value_type value_type;
62
64 : data_( data ), size_( size )
65 {}
66
68 : data_( other.data_ ), size_( other.size_ )
69 {}
70
71 using Base::operator=;
72
73 const K &operator[] ( size_type i ) const { return data_[ i ]; }
74 K &operator[] ( size_type i ) { return data_[ i ]; }
75
76 size_type size () const { return size_; }
77
78 const K *data () const { return data_; }
79 K *data () { return data_; }
80
81 private:
82 K *data_;
83 size_type size_;
84 };
85
86 } // namespace Fem
87
88} // namespace Dune
89
90#endif // #ifndef DUNE_FEM_STORAGE_ROWREFERENCEVECTOR_HH
Definition: bindguard.hh:11
Definition: rowreferencevector.hh:56
RowReferenceVector(K *data, size_type size)
Definition: rowreferencevector.hh:63
RowReferenceVector(const RowReferenceVector &other)
Definition: rowreferencevector.hh:67
const K * data() const
Definition: rowreferencevector.hh:78
size_type size() const
Definition: rowreferencevector.hh:76
Base::size_type size_type
Definition: rowreferencevector.hh:60
const K & operator[](size_type i) const
Definition: rowreferencevector.hh:73
Base::value_type value_type
Definition: rowreferencevector.hh:61
K * data()
Definition: rowreferencevector.hh:79
Fem::RowReferenceVector< K > derived_type
Definition: rowreferencevector.hh:28
K value_type
Definition: rowreferencevector.hh:29
std::size_t size_type
Definition: rowreferencevector.hh:30
FieldTraits< K >::real_type real_type
Definition: rowreferencevector.hh:42
FieldTraits< K >::field_type field_type
Definition: rowreferencevector.hh:41