Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/boost/numeric/ublas/fwd.hpp @ 33

Last change on this file since 33 was 29, checked in by landauf, 16 years ago

updated boost from 1_33_1 to 1_34_1

File size: 6.6 KB
Line 
1//
2//  Copyright (c) 2000-2002
3//  Joerg Walter, Mathias Koch
4//
5//  Permission to use, copy, modify, distribute and sell this software
6//  and its documentation for any purpose is hereby granted without fee,
7//  provided that the above copyright notice appear in all copies and
8//  that both that copyright notice and this permission notice appear
9//  in supporting documentation.  The authors make no representations
10//  about the suitability of this software for any purpose.
11//  It is provided "as is" without express or implied warranty.
12//
13//  The authors gratefully acknowledge the support of
14//  GeNeSys mbH & Co. KG in producing this work.
15//
16
17#ifndef BOOST_UBLAS_FWD_H
18#define BOOST_UBLAS_FWD_H
19
20#include <memory>
21
22namespace boost { namespace numeric { namespace ublas {
23
24    // Storage types
25    template<class T, class ALLOC = std::allocator<T> >
26    class unbounded_array;
27
28    template<class T, std::size_t N, class ALLOC = std::allocator<T> >
29    class bounded_array;
30
31    template <class Z = std::size_t, class D = std::ptrdiff_t>
32    class basic_range;
33    template <class Z = std::size_t, class D = std::ptrdiff_t>
34    class basic_slice;
35    typedef basic_range<> range;
36    typedef basic_slice<> slice;
37    template<class A = unbounded_array<std::size_t> >
38    class indirect_array;
39
40    template<class I, class T, class ALLOC = std::allocator<std::pair<const I, T> > >
41    class map_std;
42    template<class I, class T, class ALLOC = std::allocator<std::pair<I, T> > >
43    class map_array;
44
45    // Expression types
46    struct scalar_tag {};
47   
48    struct vector_tag {};
49    template<class E>
50    class vector_expression;
51    template<class C>
52    class vector_container;
53
54    template<class E>
55    class vector_reference;
56
57    struct matrix_tag {};
58
59    template<class E>
60    class matrix_expression;
61    template<class C>
62    class matrix_container;
63
64    template<class E>
65    class matrix_reference;
66
67    template<class V>
68    class vector_range;
69    template<class V>
70    class vector_slice;
71    template<class V, class IA = indirect_array<> >
72    class vector_indirect;
73
74    template<class M>
75    class matrix_row;
76    template<class M>
77    class matrix_column;
78    template<class M>
79    class matrix_vector_range;
80    template<class M>
81    class matrix_vector_slice;
82    template<class M, class IA = indirect_array<> >
83    class matrix_vector_indirect;
84    template<class M>
85    class matrix_range;
86    template<class M>
87    class matrix_slice;
88    template<class M, class IA = indirect_array<> >
89    class matrix_indirect;
90
91    template<class T, class A = unbounded_array<T> >
92    class vector;
93    template<class T, std::size_t N>
94    class bounded_vector;
95
96    template<class T = int>
97    class unit_vector;
98    template<class T = int>
99    class zero_vector;
100    template<class T = int>
101    class scalar_vector;
102
103    template<class T, std::size_t N>
104    class c_vector;
105
106    // Sparse vectors
107    template<class T, class A = map_std<std::size_t, T> >
108    class mapped_vector;
109    template<class T, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
110    class compressed_vector;
111    template<class T, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
112    class coordinate_vector;
113
114    // Matrix orientation type
115    struct unknown_orientation_tag {};
116    struct row_major_tag {};
117    struct column_major_tag {};
118
119    // Matrix storage layout parameterisation
120    template <class Z = std::size_t, class D = std::ptrdiff_t>
121    struct basic_row_major;
122    typedef basic_row_major<> row_major;
123
124    template <class Z = std::size_t, class D = std::ptrdiff_t>
125    struct basic_column_major;
126    typedef basic_column_major<> column_major;
127
128    template<class T, class L = row_major, class A = unbounded_array<T> >
129    class matrix;
130    template<class T, std::size_t M, std::size_t N, class L = row_major>
131    class bounded_matrix;
132
133    template<class T = int>
134    class identity_matrix;
135    template<class T = int>
136    class zero_matrix;
137    template<class T = int>
138    class scalar_matrix;
139
140    template<class T, std::size_t M, std::size_t N>
141    class c_matrix;
142
143    template<class T, class L = row_major, class A = unbounded_array<unbounded_array<T> > >
144    class vector_of_vector;
145
146    // Triangular matrix type
147    struct lower_tag {};
148    struct upper_tag {};
149    struct unit_lower_tag : public lower_tag {};
150    struct unit_upper_tag : public upper_tag {};
151    struct strict_lower_tag : public lower_tag {};
152    struct strict_upper_tag : public upper_tag {};
153
154    // Triangular matrix parameterisation
155    template <class Z = std::size_t>
156    struct basic_full;
157    typedef basic_full<> full;
158
159    template <class Z = std::size_t>
160    struct basic_lower;
161    typedef basic_lower<> lower;
162
163    template <class Z = std::size_t>
164    struct basic_upper;
165    typedef basic_upper<> upper;
166
167    template <class Z = std::size_t>
168    struct basic_unit_lower;
169    typedef basic_unit_lower<> unit_lower;
170
171    template <class Z = std::size_t>
172    struct basic_unit_upper;
173    typedef basic_unit_upper<> unit_upper;
174
175    template <class Z = std::size_t>
176    struct basic_strict_lower;
177    typedef basic_strict_lower<> strict_lower;
178
179    template <class Z = std::size_t>
180    struct basic_strict_upper;
181    typedef basic_strict_upper<> strict_upper;
182
183    // Special matrices
184    template<class T, class L = row_major, class A = unbounded_array<T> >
185    class banded_matrix;
186    template<class T, class L = row_major, class A = unbounded_array<T> >
187    class diagonal_matrix;
188
189    template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
190    class triangular_matrix;
191    template<class M, class TRI = lower>
192    class triangular_adaptor;
193
194    template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
195    class symmetric_matrix;
196    template<class M, class TRI = lower>
197    class symmetric_adaptor;
198
199    template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
200    class hermitian_matrix;
201    template<class M, class TRI = lower>
202    class hermitian_adaptor;
203
204    // Sparse matrices
205    template<class T, class L = row_major, class A = map_std<std::size_t, T> >
206    class mapped_matrix;
207    template<class T, class L = row_major, class A = map_std<std::size_t, map_std<std::size_t, T> > >
208    class mapped_vector_of_mapped_vector;
209    template<class T, class L = row_major, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
210    class compressed_matrix;
211    template<class T, class L = row_major, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
212    class coordinate_matrix;
213
214}}}
215
216#endif
Note: See TracBrowser for help on using the repository browser.