antioch-0.4.0
vector_utils_decl.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // Antioch - A Gas Dynamics Thermochemistry Library
5 //
6 // Copyright (C) 2014-2016 Paul T. Bauman, Benjamin S. Kirk,
7 // Sylvain Plessis, Roy H. Stonger
8 //
9 // Copyright (C) 2013 The PECOS Development Team
10 //
11 // This library is free software; you can redistribute it and/or
12 // modify it under the terms of the Version 2.1 GNU Lesser General
13 // Public License as published by the Free Software Foundation.
14 //
15 // This library is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public
21 // License along with this library; if not, write to the Free Software
22 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
23 // Boston, MA 02110-1301 USA
24 //
25 //-----------------------------------------------------------------------el-
26 
27 #ifndef ANTIOCH_VECTOR_UTILS_DECL_H
28 #define ANTIOCH_VECTOR_UTILS_DECL_H
29 
30 #ifdef ANTIOCH_METAPROGRAMMING_H
31 # error vector_utils_decl.h must be included before metaprogramming.h
32 #endif
33 
34 // Antioch
36 
37 // C++
38 #include <iostream>
39 #include <vector>
40 
41 // Add some overloads
42 
43 namespace std
44 {
45 
46 template <typename T>
47 inline
48 std::ostream&
49 operator<< (std::ostream& output, const std::vector<T>& a);
50 
51 template <typename T>
52 inline
53 std::vector<T>
54 operator* (const std::vector<T>& src, const T & mul);
55 
56 template <typename T>
57 inline
58 std::vector<T>
59 operator/ (const std::vector<T>& src, const T & mul);
60 
61 } // end namespace std
62 
63 namespace Antioch
64 {
65 
66 // Class to allow tag dispatching to std::vector specializations
68 
69 template <typename T, typename NewScalar>
70 struct rebind<std::vector<T>, NewScalar>;
71 
72 template <typename T>
73 struct has_size<std::vector<T> >;
74 
75 template <typename T>
76 struct return_auto<std::vector<T> >;
77 
78 template <typename T>
79 struct size_type<std::vector<T> >;
80 
81 template <typename T>
82 struct value_type<std::vector<T> >;
83 
84 template <typename T>
85 struct raw_value_type<std::vector<T> >;
86 
87 template <typename T>
88 inline
89 std::vector<T>
90 zero_clone(const std::vector<T>& example);
91 
92 template <typename T1, typename T2>
93 inline
94 void
95 zero_clone(std::vector<T1>& output, const std::vector<T2>& example);
96 
97 template <typename T, typename Scalar>
98 inline
99 std::vector<T>
100 constant_clone(const std::vector<T>& example, const Scalar& value);
101 
102 // A function for zero-setting vectorized numeric types
103 template <typename T>
104 inline
105 void set_zero(std::vector<T>& a);
106 
107 template <typename T, typename VectorScalar>
108 inline
109 std::vector<T> custom_clone(const std::vector<T> & vec, const VectorScalar & vecsrc, const std::vector<unsigned int> & indexes);
110 
111 } // end namespace Antioch
112 
113 
114 #endif //ANTIOCH_VECTOR_UTILS_DECL_H
std::vector< T > operator/(const std::vector< T > &src, const T &mul)
Definition: vector_utils.h:80
T custom_clone(const T &, const VectorScalar &values, unsigned int indexes)
std::vector< T > operator*(const std::vector< T > &src, const T &mul)
Definition: vector_utils.h:67
_Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > constant_clone(const _Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &ex, const Scalar &value)
Definition: eigen_utils.h:181
void set_zero(_Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &a)
Definition: eigen_utils.h:217
The parameters are reduced parameters.
_Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > zero_clone(const _Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &ex)
Definition: eigen_utils.h:145

Generated on Thu Jul 7 2016 11:09:46 for antioch-0.4.0 by  doxygen 1.8.8