EVOLUTION-MANAGER
Edit File: fwd.hpp
// // Copyright (c) 2000-2010 // Joerg Walter, Mathias Koch, David Bellot // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // The authors gratefully acknowledge the support of // GeNeSys mbH & Co. KG in producing this work. // /// \file fwd.hpp is essentially used to forward declare the main types #ifndef BOOST_UBLAS_FWD_H #define BOOST_UBLAS_FWD_H #include <memory> #ifdef BOOST_UBLAS_CPP_GE_2011 #include <array> #endif namespace boost { namespace numeric { namespace ublas { // Storage types template<class T, class ALLOC = std::allocator<T> > class unbounded_array; template<class T, std::size_t N, class ALLOC = std::allocator<T> > class bounded_array; template <class Z = std::size_t, class D = std::ptrdiff_t> class basic_range; template <class Z = std::size_t, class D = std::ptrdiff_t> class basic_slice; typedef basic_range<> range; typedef basic_slice<> slice; template<class A = unbounded_array<std::size_t> > class indirect_array; template<class I, class T, class ALLOC = std::allocator<std::pair<const I, T> > > class map_std; template<class I, class T, class ALLOC = std::allocator<std::pair<I, T> > > class map_array; // Expression types struct scalar_tag {}; struct vector_tag {}; template<class E> class vector_expression; template<class C> class vector_container; template<class E> class vector_reference; struct matrix_tag {}; template<class E> class matrix_expression; template<class C> class matrix_container; template<class E> class matrix_reference; template<class V> class vector_range; template<class V> class vector_slice; template<class V, class IA = indirect_array<> > class vector_indirect; template<class M> class matrix_row; template<class M> class matrix_column; template<class M> class matrix_vector_range; template<class M> class matrix_vector_slice; template<class M, class IA = indirect_array<> > class matrix_vector_indirect; template<class M> class matrix_range; template<class M> class matrix_slice; template<class M, class IA = indirect_array<> > class matrix_indirect; template<class T, class A = unbounded_array<T> > class vector; #ifdef BOOST_UBLAS_CPP_GE_2011 template<class T, std::size_t N, class A = std::array<T, N> > class fixed_vector; #endif template<class T, std::size_t N> class bounded_vector; template<class T = int, class ALLOC = std::allocator<T> > class unit_vector; template<class T = int, class ALLOC = std::allocator<T> > class zero_vector; template<class T = int, class ALLOC = std::allocator<T> > class scalar_vector; template<class T, std::size_t N> class c_vector; // Sparse vectors template<class T, class A = map_std<std::size_t, T> > class mapped_vector; template<class T, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> > class compressed_vector; template<class T, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> > class coordinate_vector; // Matrix orientation type struct unknown_orientation_tag {}; struct row_major_tag {}; struct column_major_tag {}; // Matrix storage layout parameterisation template <class Z = std::size_t, class D = std::ptrdiff_t> struct basic_row_major; typedef basic_row_major<> row_major; template <class Z = std::size_t, class D = std::ptrdiff_t> struct basic_column_major; typedef basic_column_major<> column_major; template<class T, class L = row_major, class A = unbounded_array<T> > class matrix; #ifdef BOOST_UBLAS_CPP_GE_2011 template<class T, std::size_t M, std::size_t N, class L = row_major, class A = std::array<T, M*N> > class fixed_matrix; #endif template<class T, std::size_t M, std::size_t N, class L = row_major> class bounded_matrix; template<class T = int, class ALLOC = std::allocator<T> > class identity_matrix; template<class T = int, class ALLOC = std::allocator<T> > class zero_matrix; template<class T = int, class ALLOC = std::allocator<T> > class scalar_matrix; template<class T, std::size_t M, std::size_t N> class c_matrix; template<class T, class L = row_major, class A = unbounded_array<unbounded_array<T> > > class vector_of_vector; template<class T, class L = row_major, class A = vector<compressed_vector<T> > > class generalized_vector_of_vector; // Triangular matrix type struct lower_tag {}; struct upper_tag {}; struct unit_lower_tag : public lower_tag {}; struct unit_upper_tag : public upper_tag {}; struct strict_lower_tag : public lower_tag {}; struct strict_upper_tag : public upper_tag {}; // Triangular matrix parameterisation template <class Z = std::size_t> struct basic_full; typedef basic_full<> full; template <class Z = std::size_t> struct basic_lower; typedef basic_lower<> lower; template <class Z = std::size_t> struct basic_upper; typedef basic_upper<> upper; template <class Z = std::size_t> struct basic_unit_lower; typedef basic_unit_lower<> unit_lower; template <class Z = std::size_t> struct basic_unit_upper; typedef basic_unit_upper<> unit_upper; template <class Z = std::size_t> struct basic_strict_lower; typedef basic_strict_lower<> strict_lower; template <class Z = std::size_t> struct basic_strict_upper; typedef basic_strict_upper<> strict_upper; // Special matrices template<class T, class L = row_major, class A = unbounded_array<T> > class banded_matrix; template<class T, class L = row_major, class A = unbounded_array<T> > class diagonal_matrix; template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> > class triangular_matrix; template<class M, class TRI = lower> class triangular_adaptor; template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> > class symmetric_matrix; template<class M, class TRI = lower> class symmetric_adaptor; template<class T, class TRI = lower, class L = row_major, class A = unbounded_array<T> > class hermitian_matrix; template<class M, class TRI = lower> class hermitian_adaptor; // Sparse matrices template<class T, class L = row_major, class A = map_std<std::size_t, T> > class mapped_matrix; template<class T, class L = row_major, class A = map_std<std::size_t, map_std<std::size_t, T> > > class mapped_vector_of_mapped_vector; template<class T, class L = row_major, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> > class compressed_matrix; template<class T, class L = row_major, std::size_t IB = 0, class IA = unbounded_array<std::size_t>, class TA = unbounded_array<T> > class coordinate_matrix; }}} #endif