annotate DEPENDENCIES/generic/include/boost/numeric/ublas/fwd.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 //
Chris@16 2 // Copyright (c) 2000-2010
Chris@16 3 // Joerg Walter, Mathias Koch, David Bellot
Chris@16 4 //
Chris@16 5 // Distributed under the Boost Software License, Version 1.0. (See
Chris@16 6 // accompanying file LICENSE_1_0.txt or copy at
Chris@16 7 // http://www.boost.org/LICENSE_1_0.txt)
Chris@16 8 //
Chris@16 9 // The authors gratefully acknowledge the support of
Chris@16 10 // GeNeSys mbH & Co. KG in producing this work.
Chris@16 11 //
Chris@16 12
Chris@16 13 /// \file fwd.hpp is essentially used to forward declare the main types
Chris@16 14
Chris@16 15 #ifndef BOOST_UBLAS_FWD_H
Chris@16 16 #define BOOST_UBLAS_FWD_H
Chris@16 17
Chris@16 18 #include <memory>
Chris@16 19
Chris@101 20 #ifdef BOOST_UBLAS_CPP_GE_2011
Chris@101 21 #include <array>
Chris@101 22 #endif
Chris@101 23
Chris@16 24 namespace boost { namespace numeric { namespace ublas {
Chris@16 25
Chris@16 26 // Storage types
Chris@16 27 template<class T, class ALLOC = std::allocator<T> >
Chris@16 28 class unbounded_array;
Chris@16 29
Chris@16 30 template<class T, std::size_t N, class ALLOC = std::allocator<T> >
Chris@16 31 class bounded_array;
Chris@16 32
Chris@16 33 template <class Z = std::size_t, class D = std::ptrdiff_t>
Chris@16 34 class basic_range;
Chris@16 35 template <class Z = std::size_t, class D = std::ptrdiff_t>
Chris@16 36 class basic_slice;
Chris@16 37 typedef basic_range<> range;
Chris@16 38 typedef basic_slice<> slice;
Chris@16 39 template<class A = unbounded_array<std::size_t> >
Chris@16 40 class indirect_array;
Chris@16 41
Chris@16 42 template<class I, class T, class ALLOC = std::allocator<std::pair<const I, T> > >
Chris@16 43 class map_std;
Chris@16 44 template<class I, class T, class ALLOC = std::allocator<std::pair<I, T> > >
Chris@16 45 class map_array;
Chris@16 46
Chris@16 47 // Expression types
Chris@16 48 struct scalar_tag {};
Chris@16 49
Chris@16 50 struct vector_tag {};
Chris@16 51 template<class E>
Chris@16 52 class vector_expression;
Chris@16 53 template<class C>
Chris@16 54 class vector_container;
Chris@16 55
Chris@16 56 template<class E>
Chris@16 57 class vector_reference;
Chris@16 58
Chris@16 59 struct matrix_tag {};
Chris@16 60
Chris@16 61 template<class E>
Chris@16 62 class matrix_expression;
Chris@16 63 template<class C>
Chris@16 64 class matrix_container;
Chris@16 65
Chris@16 66 template<class E>
Chris@16 67 class matrix_reference;
Chris@16 68
Chris@16 69 template<class V>
Chris@16 70 class vector_range;
Chris@16 71 template<class V>
Chris@16 72 class vector_slice;
Chris@16 73 template<class V, class IA = indirect_array<> >
Chris@16 74 class vector_indirect;
Chris@16 75
Chris@16 76 template<class M>
Chris@16 77 class matrix_row;
Chris@16 78 template<class M>
Chris@16 79 class matrix_column;
Chris@16 80 template<class M>
Chris@16 81 class matrix_vector_range;
Chris@16 82 template<class M>
Chris@16 83 class matrix_vector_slice;
Chris@16 84 template<class M, class IA = indirect_array<> >
Chris@16 85 class matrix_vector_indirect;
Chris@16 86 template<class M>
Chris@16 87 class matrix_range;
Chris@16 88 template<class M>
Chris@16 89 class matrix_slice;
Chris@16 90 template<class M, class IA = indirect_array<> >
Chris@16 91 class matrix_indirect;
Chris@16 92
Chris@16 93 template<class T, class A = unbounded_array<T> >
Chris@16 94 class vector;
Chris@101 95 #ifdef BOOST_UBLAS_CPP_GE_2011
Chris@101 96 template<class T, std::size_t N, class A = std::array<T, N> >
Chris@101 97 class fixed_vector;
Chris@101 98 #endif
Chris@16 99 template<class T, std::size_t N>
Chris@16 100 class bounded_vector;
Chris@16 101
Chris@16 102 template<class T = int, class ALLOC = std::allocator<T> >
Chris@16 103 class unit_vector;
Chris@16 104 template<class T = int, class ALLOC = std::allocator<T> >
Chris@16 105 class zero_vector;
Chris@16 106 template<class T = int, class ALLOC = std::allocator<T> >
Chris@16 107 class scalar_vector;
Chris@16 108
Chris@16 109 template<class T, std::size_t N>
Chris@16 110 class c_vector;
Chris@16 111
Chris@16 112 // Sparse vectors
Chris@16 113 template<class T, class A = map_std<std::size_t, T> >
Chris@16 114 class mapped_vector;
Chris@16 115 template<class T, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
Chris@16 116 class compressed_vector;
Chris@16 117 template<class T, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
Chris@16 118 class coordinate_vector;
Chris@16 119
Chris@16 120 // Matrix orientation type
Chris@16 121 struct unknown_orientation_tag {};
Chris@16 122 struct row_major_tag {};
Chris@16 123 struct column_major_tag {};
Chris@16 124
Chris@16 125 // Matrix storage layout parameterisation
Chris@16 126 template <class Z = std::size_t, class D = std::ptrdiff_t>
Chris@16 127 struct basic_row_major;
Chris@16 128 typedef basic_row_major<> row_major;
Chris@16 129
Chris@16 130 template <class Z = std::size_t, class D = std::ptrdiff_t>
Chris@16 131 struct basic_column_major;
Chris@16 132 typedef basic_column_major<> column_major;
Chris@16 133
Chris@16 134 template<class T, class L = row_major, class A = unbounded_array<T> >
Chris@16 135 class matrix;
Chris@101 136 #ifdef BOOST_UBLAS_CPP_GE_2011
Chris@101 137 template<class T, std::size_t M, std::size_t N, class L = row_major, class A = std::array<T, M*N> >
Chris@101 138 class fixed_matrix;
Chris@101 139 #endif
Chris@16 140 template<class T, std::size_t M, std::size_t N, class L = row_major>
Chris@16 141 class bounded_matrix;
Chris@16 142
Chris@16 143 template<class T = int, class ALLOC = std::allocator<T> >
Chris@16 144 class identity_matrix;
Chris@16 145 template<class T = int, class ALLOC = std::allocator<T> >
Chris@16 146 class zero_matrix;
Chris@16 147 template<class T = int, class ALLOC = std::allocator<T> >
Chris@16 148 class scalar_matrix;
Chris@16 149
Chris@16 150 template<class T, std::size_t M, std::size_t N>
Chris@16 151 class c_matrix;
Chris@16 152
Chris@16 153 template<class T, class L = row_major, class A = unbounded_array<unbounded_array<T> > >
Chris@16 154 class vector_of_vector;
Chris@16 155
Chris@16 156 template<class T, class L = row_major, class A = vector<compressed_vector<T> > >
Chris@16 157 class generalized_vector_of_vector;
Chris@16 158
Chris@16 159 // Triangular matrix type
Chris@16 160 struct lower_tag {};
Chris@16 161 struct upper_tag {};
Chris@16 162 struct unit_lower_tag : public lower_tag {};
Chris@16 163 struct unit_upper_tag : public upper_tag {};
Chris@16 164 struct strict_lower_tag : public lower_tag {};
Chris@16 165 struct strict_upper_tag : public upper_tag {};
Chris@16 166
Chris@16 167 // Triangular matrix parameterisation
Chris@16 168 template <class Z = std::size_t>
Chris@16 169 struct basic_full;
Chris@16 170 typedef basic_full<> full;
Chris@16 171
Chris@16 172 template <class Z = std::size_t>
Chris@16 173 struct basic_lower;
Chris@16 174 typedef basic_lower<> lower;
Chris@16 175
Chris@16 176 template <class Z = std::size_t>
Chris@16 177 struct basic_upper;
Chris@16 178 typedef basic_upper<> upper;
Chris@16 179
Chris@16 180 template <class Z = std::size_t>
Chris@16 181 struct basic_unit_lower;
Chris@16 182 typedef basic_unit_lower<> unit_lower;
Chris@16 183
Chris@16 184 template <class Z = std::size_t>
Chris@16 185 struct basic_unit_upper;
Chris@16 186 typedef basic_unit_upper<> unit_upper;
Chris@16 187
Chris@16 188 template <class Z = std::size_t>
Chris@16 189 struct basic_strict_lower;
Chris@16 190 typedef basic_strict_lower<> strict_lower;
Chris@16 191
Chris@16 192 template <class Z = std::size_t>
Chris@16 193 struct basic_strict_upper;
Chris@16 194 typedef basic_strict_upper<> strict_upper;
Chris@16 195
Chris@16 196 // Special matrices
Chris@16 197 template<class T, class L = row_major, class A = unbounded_array<T> >
Chris@16 198 class banded_matrix;
Chris@16 199 template<class T, class L = row_major, class A = unbounded_array<T> >
Chris@16 200 class diagonal_matrix;
Chris@16 201
Chris@16 202 template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
Chris@16 203 class triangular_matrix;
Chris@16 204 template<class M, class TRI = lower>
Chris@16 205 class triangular_adaptor;
Chris@16 206
Chris@16 207 template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
Chris@16 208 class symmetric_matrix;
Chris@16 209 template<class M, class TRI = lower>
Chris@16 210 class symmetric_adaptor;
Chris@16 211
Chris@16 212 template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
Chris@16 213 class hermitian_matrix;
Chris@16 214 template<class M, class TRI = lower>
Chris@16 215 class hermitian_adaptor;
Chris@16 216
Chris@16 217 // Sparse matrices
Chris@16 218 template<class T, class L = row_major, class A = map_std<std::size_t, T> >
Chris@16 219 class mapped_matrix;
Chris@16 220 template<class T, class L = row_major, class A = map_std<std::size_t, map_std<std::size_t, T> > >
Chris@16 221 class mapped_vector_of_mapped_vector;
Chris@16 222 template<class T, class L = row_major, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
Chris@16 223 class compressed_matrix;
Chris@16 224 template<class T, class L = row_major, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
Chris@16 225 class coordinate_matrix;
Chris@16 226
Chris@16 227 }}}
Chris@16 228
Chris@16 229 #endif