os/ossrv/ossrv_pub/boost_apis/boost/numeric/ublas/fwd.hpp
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/numeric/ublas/fwd.hpp	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,216 @@
     1.4 +//
     1.5 +//  Copyright (c) 2000-2002
     1.6 +//  Joerg Walter, Mathias Koch
     1.7 +//
     1.8 +//  Permission to use, copy, modify, distribute and sell this software
     1.9 +//  and its documentation for any purpose is hereby granted without fee,
    1.10 +//  provided that the above copyright notice appear in all copies and
    1.11 +//  that both that copyright notice and this permission notice appear
    1.12 +//  in supporting documentation.  The authors make no representations
    1.13 +//  about the suitability of this software for any purpose.
    1.14 +//  It is provided "as is" without express or implied warranty.
    1.15 +//
    1.16 +//  The authors gratefully acknowledge the support of
    1.17 +//  GeNeSys mbH & Co. KG in producing this work.
    1.18 +//
    1.19 +
    1.20 +#ifndef BOOST_UBLAS_FWD_H
    1.21 +#define BOOST_UBLAS_FWD_H
    1.22 +
    1.23 +#include <memory>
    1.24 +
    1.25 +namespace boost { namespace numeric { namespace ublas {
    1.26 +
    1.27 +    // Storage types
    1.28 +    template<class T, class ALLOC = std::allocator<T> >
    1.29 +    class unbounded_array;
    1.30 +
    1.31 +    template<class T, std::size_t N, class ALLOC = std::allocator<T> >
    1.32 +    class bounded_array;
    1.33 +
    1.34 +    template <class Z = std::size_t, class D = std::ptrdiff_t>
    1.35 +    class basic_range;
    1.36 +    template <class Z = std::size_t, class D = std::ptrdiff_t>
    1.37 +    class basic_slice;
    1.38 +    typedef basic_range<> range;
    1.39 +    typedef basic_slice<> slice;
    1.40 +    template<class A = unbounded_array<std::size_t> >
    1.41 +    class indirect_array;
    1.42 +
    1.43 +    template<class I, class T, class ALLOC = std::allocator<std::pair<const I, T> > >
    1.44 +    class map_std;
    1.45 +    template<class I, class T, class ALLOC = std::allocator<std::pair<I, T> > >
    1.46 +    class map_array;
    1.47 +
    1.48 +    // Expression types
    1.49 +    struct scalar_tag {};
    1.50 +    
    1.51 +    struct vector_tag {};
    1.52 +    template<class E>
    1.53 +    class vector_expression;
    1.54 +    template<class C>
    1.55 +    class vector_container;
    1.56 +
    1.57 +    template<class E>
    1.58 +    class vector_reference;
    1.59 +
    1.60 +    struct matrix_tag {};
    1.61 +
    1.62 +    template<class E>
    1.63 +    class matrix_expression;
    1.64 +    template<class C>
    1.65 +    class matrix_container;
    1.66 +
    1.67 +    template<class E>
    1.68 +    class matrix_reference;
    1.69 +
    1.70 +    template<class V>
    1.71 +    class vector_range;
    1.72 +    template<class V>
    1.73 +    class vector_slice;
    1.74 +    template<class V, class IA = indirect_array<> >
    1.75 +    class vector_indirect;
    1.76 +
    1.77 +    template<class M>
    1.78 +    class matrix_row;
    1.79 +    template<class M>
    1.80 +    class matrix_column;
    1.81 +    template<class M>
    1.82 +    class matrix_vector_range;
    1.83 +    template<class M>
    1.84 +    class matrix_vector_slice;
    1.85 +    template<class M, class IA = indirect_array<> >
    1.86 +    class matrix_vector_indirect;
    1.87 +    template<class M>
    1.88 +    class matrix_range;
    1.89 +    template<class M>
    1.90 +    class matrix_slice;
    1.91 +    template<class M, class IA = indirect_array<> >
    1.92 +    class matrix_indirect;
    1.93 +
    1.94 +    template<class T, class A = unbounded_array<T> >
    1.95 +    class vector;
    1.96 +    template<class T, std::size_t N>
    1.97 +    class bounded_vector;
    1.98 +
    1.99 +    template<class T = int>
   1.100 +    class unit_vector;
   1.101 +    template<class T = int>
   1.102 +    class zero_vector;
   1.103 +    template<class T = int>
   1.104 +    class scalar_vector;
   1.105 +
   1.106 +    template<class T, std::size_t N>
   1.107 +    class c_vector;
   1.108 +
   1.109 +    // Sparse vectors
   1.110 +    template<class T, class A = map_std<std::size_t, T> >
   1.111 +    class mapped_vector;
   1.112 +    template<class T, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
   1.113 +    class compressed_vector;
   1.114 +    template<class T, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
   1.115 +    class coordinate_vector;
   1.116 +
   1.117 +    // Matrix orientation type
   1.118 +    struct unknown_orientation_tag {};
   1.119 +    struct row_major_tag {};
   1.120 +    struct column_major_tag {};
   1.121 +
   1.122 +    // Matrix storage layout parameterisation
   1.123 +    template <class Z = std::size_t, class D = std::ptrdiff_t>
   1.124 +    struct basic_row_major;
   1.125 +    typedef basic_row_major<> row_major;
   1.126 +
   1.127 +    template <class Z = std::size_t, class D = std::ptrdiff_t>
   1.128 +    struct basic_column_major;
   1.129 +    typedef basic_column_major<> column_major;
   1.130 +
   1.131 +    template<class T, class L = row_major, class A = unbounded_array<T> >
   1.132 +    class matrix;
   1.133 +    template<class T, std::size_t M, std::size_t N, class L = row_major>
   1.134 +    class bounded_matrix;
   1.135 +
   1.136 +    template<class T = int>
   1.137 +    class identity_matrix;
   1.138 +    template<class T = int>
   1.139 +    class zero_matrix;
   1.140 +    template<class T = int>
   1.141 +    class scalar_matrix;
   1.142 +
   1.143 +    template<class T, std::size_t M, std::size_t N>
   1.144 +    class c_matrix;
   1.145 +
   1.146 +    template<class T, class L = row_major, class A = unbounded_array<unbounded_array<T> > >
   1.147 +    class vector_of_vector;
   1.148 +
   1.149 +    // Triangular matrix type
   1.150 +    struct lower_tag {};
   1.151 +    struct upper_tag {};
   1.152 +    struct unit_lower_tag : public lower_tag {};
   1.153 +    struct unit_upper_tag : public upper_tag {};
   1.154 +    struct strict_lower_tag : public lower_tag {};
   1.155 +    struct strict_upper_tag : public upper_tag {};
   1.156 +
   1.157 +    // Triangular matrix parameterisation
   1.158 +    template <class Z = std::size_t>
   1.159 +    struct basic_full;
   1.160 +    typedef basic_full<> full;
   1.161 +
   1.162 +    template <class Z = std::size_t>
   1.163 +    struct basic_lower;
   1.164 +    typedef basic_lower<> lower;
   1.165 +
   1.166 +    template <class Z = std::size_t>
   1.167 +    struct basic_upper;
   1.168 +    typedef basic_upper<> upper;
   1.169 +
   1.170 +    template <class Z = std::size_t>
   1.171 +    struct basic_unit_lower;
   1.172 +    typedef basic_unit_lower<> unit_lower;
   1.173 +
   1.174 +    template <class Z = std::size_t>
   1.175 +    struct basic_unit_upper;
   1.176 +    typedef basic_unit_upper<> unit_upper;
   1.177 +
   1.178 +    template <class Z = std::size_t>
   1.179 +    struct basic_strict_lower;
   1.180 +    typedef basic_strict_lower<> strict_lower;
   1.181 +
   1.182 +    template <class Z = std::size_t>
   1.183 +    struct basic_strict_upper;
   1.184 +    typedef basic_strict_upper<> strict_upper;
   1.185 +
   1.186 +    // Special matrices
   1.187 +    template<class T, class L = row_major, class A = unbounded_array<T> >
   1.188 +    class banded_matrix;
   1.189 +    template<class T, class L = row_major, class A = unbounded_array<T> >
   1.190 +    class diagonal_matrix;
   1.191 +
   1.192 +    template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
   1.193 +    class triangular_matrix;
   1.194 +    template<class M, class TRI = lower>
   1.195 +    class triangular_adaptor;
   1.196 +
   1.197 +    template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
   1.198 +    class symmetric_matrix;
   1.199 +    template<class M, class TRI = lower>
   1.200 +    class symmetric_adaptor;
   1.201 +
   1.202 +    template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> >
   1.203 +    class hermitian_matrix;
   1.204 +    template<class M, class TRI = lower>
   1.205 +    class hermitian_adaptor;
   1.206 +
   1.207 +    // Sparse matrices
   1.208 +    template<class T, class L = row_major, class A = map_std<std::size_t, T> >
   1.209 +    class mapped_matrix;
   1.210 +    template<class T, class L = row_major, class A = map_std<std::size_t, map_std<std::size_t, T> > >
   1.211 +    class mapped_vector_of_mapped_vector;
   1.212 +    template<class T, class L = row_major, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
   1.213 +    class compressed_matrix;
   1.214 +    template<class T, class L = row_major, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> >
   1.215 +    class coordinate_matrix;
   1.216 +
   1.217 +}}}
   1.218 +
   1.219 +#endif