yat  0.14.5pre
VectorConstView.h
1 #ifndef _theplu_yat_utility_vector_const_view_
2 #define _theplu_yat_utility_vector_const_view_
3 
4 // $Id: VectorConstView.h 2992 2013-03-03 05:03:44Z peter $
5 
6 /*
7  Copyright (C) 2003 Daniel Dalevi, Peter Johansson
8  Copyright (C) 2004 Jari Häkkinen, Peter Johansson
9  Copyright (C) 2005 Jari Häkkinen, Peter Johansson, Markus Ringnér
10  Copyright (C) 2006 Jari Häkkinen, Markus Ringnér
11  Copyright (C) 2007 Jari Häkkinen, Peter Johansson, Markus Ringnér
12  Copyright (C) 2008 Jari Häkkinen, Peter Johansson
13  Copyright (C) 2009, 2012 Peter Johansson
14 
15  This file is part of the yat library, http://dev.thep.lu.se/trac/yat
16 
17  The yat library is free software; you can redistribute it and/or
18  modify it under the terms of the GNU General Public License as
19  published by the Free Software Foundation; either version 3 of the
20  License, or (at your option) any later version.
21 
22  The yat library is distributed in the hope that it will be useful,
23  but WITHOUT ANY WARRANTY; without even the implied warranty of
24  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25  General Public License for more details.
26 
27  You should have received a copy of the GNU General Public License
28  along with yat. If not, see <http://www.gnu.org/licenses/>.
29 */
30 
31 #include "VectorBase.h"
32 
33 #include <gsl/gsl_vector.h>
34 
35 namespace theplu {
36 namespace yat {
37 namespace utility {
38 
39  class Matrix;
40 
55  class VectorConstView : public VectorBase
56  {
57  public:
61  // needed to override compiler generated copy constructor
62  VectorConstView(const VectorConstView& other);
63 
67  explicit VectorConstView(const VectorBase& other);
68 
81  VectorConstView(const VectorBase& v,size_t offset,size_t n,size_t stride=1);
82 
101  VectorConstView(const Matrix& m, size_t i, bool row=true);
102 
106  ~VectorConstView(void);
107 
111  bool isview(void) const;
112 
113  private:
114  void copy(const VectorBase& other);
115  void delete_allocated_memory(void);
116 
117  // Perhaps not needed - only used to create a gsl_vector (that is
118  // stored in base class). For data access use data in base class
119  // because this pointer may be NULL.
120  gsl_vector_const_view* const_view_;
121 
122  // assignment not allowed
123  VectorConstView& operator=(const VectorConstView&);
124  };
125 
126 }}} // of namespace utility, yat, and theplu
127 
128 #endif
Read-only view.
Definition: VectorConstView.h:55
This is the yat interface to GSL vector.
Definition: VectorBase.h:52
Interface to GSL matrix.
Definition: Matrix.h:63
VectorConstView(const VectorConstView &other)
The copy constructor.

Generated on Tue Sep 26 2017 02:33:29 for yat by  doxygen 1.8.5