vector.hpp
Go to the documentation of this file.
1 /*!
2  * \brief Implements the Dense vector class
3  *
4  * \author O. Krause
5  * \date 2014
6  *
7  *
8  * \par Copyright 1995-2015 Shark Development Team
9  *
10  * <BR><HR>
11  * This file is part of Shark.
12  * <http://image.diku.dk/shark/>
13  *
14  * Shark is free software: you can redistribute it and/or modify
15  * it under the terms of the GNU Lesser General Public License as published
16  * by the Free Software Foundation, either version 3 of the License, or
17  * (at your option) any later version.
18  *
19  * Shark is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU Lesser General Public License for more details.
23  *
24  * You should have received a copy of the GNU Lesser General Public License
25  * along with Shark. If not, see <http://www.gnu.org/licenses/>.
26  *
27  */
28 #ifndef REMORA_VECTOR_HPP
29 #define REMORA_VECTOR_HPP
30 
31 #include "expression_types.hpp"
32 #include "detail/traits.hpp"
33 namespace remora{
34 
35 /// \brief A dense vector of values of type \c T.
36 ///
37 /// For a \f$n\f$-dimensional vector \f$v\f$ and \f$0\leq i < n\f$ every element \f$v_i\f$ is mapped
38 /// to the \f$i\f$-th element of the container.
39 /// The tag descripes whether the vector is residing on a cpu or gpu which change its semantics.
40 template<class T, class Tag = cpu_tag>
41 class vector;
42 
43 template<class T, class Tag>
44 struct vector_temporary_type<T,dense_tag, Tag>{
45  typedef vector<T, Tag> type;
46 };
47 }
48 
49 #include "cpu/vector.hpp"
50 #ifdef REMORA_USE_GPU
51 #include "gpu/vector.hpp"
52 #endif
53 
54 #endif