2
0
mirror of https://github.com/boostorg/ublas.git synced 2026-02-23 16:12:09 +00:00

Add vector/matrix_temporary_type

This commit is contained in:
Michael Stevens
2004-09-21 22:30:56 +00:00
parent 37e384d0be
commit 6060ffe77e
7 changed files with 60 additions and 56 deletions

View File

@@ -42,15 +42,16 @@ namespace boost { namespace numeric { namespace ublas {
private:
typedef T *pointer;
typedef F functor_type;
typedef const banded_matrix<T, F, A> const_self_type;
typedef banded_matrix<T, F, A> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef vector<T, A> vector_temporary_type;
typedef matrix<T, F, A> matrix_temporary_type; // general sub-matrix
typedef packed_tag storage_category;
typedef typename F::orientation_category orientation_category;
@@ -1077,11 +1078,12 @@ namespace boost { namespace numeric { namespace ublas {
typename M::closure_type>::type matrix_closure_type;
#endif
private:
typedef const banded_adaptor<M> const_self_type;
typedef banded_adaptor<M> self_type;
public:
typedef const_self_type const_closure_type;
typedef const self_type const_closure_type;
typedef self_type closure_type;
typedef typename M::vector_temporary_type vector_temporary_type;
typedef typename M::matrix_temporary_type matrix_temporary_type;
typedef typename storage_restrict_traits<typename M::storage_category,
packed_proxy_tag>::storage_category storage_category;
typedef typename M::orientation_category orientation_category;

View File

@@ -257,15 +257,16 @@ namespace boost { namespace numeric { namespace ublas {
typedef T *pointer;
typedef F1 functor1_type;
typedef F2 functor2_type;
typedef const hermitian_matrix<T, F1, F2, A> const_self_type;
typedef hermitian_matrix<T, F1, F2, A> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef vector<T, A> vector_temporary_type;
typedef matrix<T, F2, A> matrix_temporary_type; // general sub-matrix
typedef packed_tag storage_category;
typedef typename F1::packed_category packed_category;
typedef typename F2::orientation_category orientation_category;
@@ -1227,11 +1228,12 @@ namespace boost { namespace numeric { namespace ublas {
typename M::closure_type>::type matrix_closure_type;
#endif
private:
typedef const hermitian_adaptor<M, F> const_self_type;
typedef hermitian_adaptor<M, F> self_type;
public:
typedef const_self_type const_closure_type;
typedef const self_type const_closure_type;
typedef self_type closure_type;
typedef typename M::vector_temporary_type vector_temporary_type;
typedef typename M::matrix_temporary_type matrix_temporary_type;
typedef typename storage_restrict_traits<typename M::storage_category,
packed_proxy_tag>::storage_category storage_category;
typedef typename F::packed_category packed_category;

View File

@@ -71,15 +71,16 @@ namespace boost { namespace numeric { namespace ublas {
private:
typedef T *pointer;
typedef F functor_type;
typedef const matrix<T, F, A> const_self_type;
typedef matrix<T, F, A> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef vector<T, A> vector_temporary_type;
typedef self_type matrix_temporary_type;
typedef dense_tag storage_category;
// This could be better for performance,
// typedef typename unknown_orientation_tag orientation_category;
@@ -1029,15 +1030,16 @@ namespace boost { namespace numeric { namespace ublas {
private:
typedef T *pointer;
typedef F functor_type;
typedef const vector_of_vector<T, F, A> const_self_type;
typedef vector_of_vector<T, F, A> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef vector<T, typename A::value_type> vector_temporary_type;
typedef self_type matrix_temporary_type;
typedef dense_tag storage_category;
// This could be better for performance,
// typedef typename unknown_orientation_tag orientation_category;
@@ -1978,13 +1980,12 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const identity_matrix<T> const_self_type;
typedef identity_matrix<T> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef packed_tag storage_category;
@@ -2454,13 +2455,12 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const zero_matrix<T> const_self_type;
typedef zero_matrix<T> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef sparse_tag storage_category;
@@ -2909,13 +2909,12 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const scalar_matrix<T> const_self_type;
typedef scalar_matrix<T> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef dense_tag storage_category;
typedef unknown_orientation_tag orientation_category;
@@ -3353,15 +3352,16 @@ namespace boost { namespace numeric { namespace ublas {
typedef const T *const_pointer;
typedef T *pointer;
private:
typedef const c_matrix<T, N, M> const_self_type;
typedef c_matrix<T, N, M> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef c_vector<T, N * M> vector_temporary_type; // vector able to store all elements of c_matrix
typedef self_type matrix_temporary_type;
typedef dense_tag storage_category;
// This could be better for performance,
// typedef typename unknown_orientation_tag orientation_category;

View File

@@ -60,15 +60,16 @@ namespace boost { namespace numeric { namespace ublas {
typedef T *pointer;
typedef F1 functor1_type;
typedef F2 functor2_type;
typedef const symmetric_matrix<T, F1, F2, A> const_self_type;
typedef symmetric_matrix<T, F1, F2, A> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef vector<T, A> vector_temporary_type;
typedef matrix<T, F2, A> matrix_temporary_type; // general sub-matrix
typedef packed_tag storage_category;
typedef typename F1::packed_category packed_category;
typedef typename F2::orientation_category orientation_category;
@@ -969,11 +970,12 @@ namespace boost { namespace numeric { namespace ublas {
typename M::closure_type>::type matrix_closure_type;
#endif
private:
typedef const symmetric_adaptor<M, F> const_self_type;
typedef symmetric_adaptor<M, F> self_type;
public:
typedef const_self_type const_closure_type;
typedef const self_type const_closure_type;
typedef self_type closure_type;
typedef typename M::vector_temporary_type vector_temporary_type;
typedef typename M::matrix_temporary_type matrix_temporary_type;
typedef typename storage_restrict_traits<typename M::storage_category,
packed_proxy_tag>::storage_category storage_category;
typedef typename F::packed_category packed_category;

View File

@@ -43,15 +43,16 @@ namespace boost { namespace numeric { namespace ublas {
typedef T *pointer;
typedef F1 functor1_type;
typedef F2 functor2_type;
typedef const triangular_matrix<T, F1, F2, A> const_self_type;
typedef triangular_matrix<T, F1, F2, A> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef vector<T, A> vector_temporary_type;
typedef matrix<T, F2, A> matrix_temporary_type; // general sub-matrix
typedef packed_proxy_tag storage_category;
typedef typename F1::packed_category packed_category;
typedef typename F2::orientation_category orientation_category;
@@ -971,11 +972,12 @@ namespace boost { namespace numeric { namespace ublas {
typename M::closure_type>::type matrix_closure_type;
#endif
private:
typedef const triangular_adaptor<M, F> const_self_type;
typedef triangular_adaptor<M, F> self_type;
public:
typedef const_self_type const_closure_type;
typedef const self_type const_closure_type;
typedef self_type closure_type;
typedef typename M::vector_temporary_type vector_temporary_type;
typedef typename M::matrix_temporary_type matrix_temporary_type;
typedef typename storage_restrict_traits<typename M::storage_category,
packed_proxy_tag>::storage_category storage_category;
typedef typename F::packed_category packed_category;

View File

@@ -45,15 +45,15 @@ namespace boost { namespace numeric { namespace ublas {
typedef A array_type;
private:
typedef T *pointer;
typedef const vector<T, A> const_self_type;
typedef vector<T, A> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const vector_const_reference<const_self_type> const_closure_type;
typedef const vector_const_reference<const self_type> const_closure_type;
#else
typedef const vector_reference<const_self_type> const_closure_type;
typedef const vector_reference<const self_type> const_closure_type;
#endif
typedef vector_reference<self_type> closure_type;
typedef self_type vector_temporary_type;
typedef dense_tag storage_category;
typedef concrete_tag simd_category;
@@ -577,13 +577,12 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const unit_vector<T> const_self_type;
typedef unit_vector<T> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const vector_const_reference<const_self_type> const_closure_type;
typedef const vector_const_reference<const self_type> const_closure_type;
#else
typedef const vector_reference<const_self_type> const_closure_type;
typedef const vector_reference<const self_type> const_closure_type;
#endif
typedef vector_reference<self_type> closure_type;
typedef packed_tag storage_category;
@@ -834,13 +833,12 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const zero_vector<T> const_self_type;
typedef zero_vector<T> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const vector_const_reference<const_self_type> const_closure_type;
typedef const vector_const_reference<const self_type> const_closure_type;
#else
typedef const vector_reference<const_self_type> const_closure_type;
typedef const vector_reference<const self_type> const_closure_type;
#endif
typedef vector_reference<self_type> closure_type;
typedef sparse_tag storage_category;
@@ -1046,13 +1044,12 @@ namespace boost { namespace numeric { namespace ublas {
typedef T &reference;
private:
typedef const T *const_pointer;
typedef const scalar_vector<T> const_self_type;
typedef scalar_vector<T> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const vector_const_reference<const_self_type> const_closure_type;
typedef const vector_const_reference<const self_type> const_closure_type;
#else
typedef const vector_reference<const_self_type> const_closure_type;
typedef const vector_reference<const self_type> const_closure_type;
#endif
typedef dense_tag storage_category;
@@ -1281,15 +1278,15 @@ namespace boost { namespace numeric { namespace ublas {
typedef T *pointer;
typedef const T *const_pointer;
private:
typedef const c_vector<T, N> const_self_type;
typedef c_vector<T, N> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const vector_const_reference<const_self_type> const_closure_type;
typedef const vector_const_reference<const self_type> const_closure_type;
#else
typedef const vector_reference<const_self_type> const_closure_type;
typedef const vector_reference<const self_type> const_closure_type;
#endif
typedef vector_reference<self_type> closure_type;
typedef self_type vector_temporary_type;
typedef dense_tag storage_category;
typedef concrete_tag simd_category;

View File

@@ -49,13 +49,12 @@ namespace boost { namespace numeric { namespace ublas {
private:
typedef T *pointer;
typedef F functor_type;
typedef const generalized_vector_of_vector<T, F, A> const_self_type;
typedef generalized_vector_of_vector<T, F, A> self_type;
public:
#ifndef BOOST_UBLAS_CT_REFERENCE_BASE_TYPEDEFS
typedef const matrix_const_reference<const_self_type> const_closure_type;
typedef const matrix_const_reference<const self_type> const_closure_type;
#else
typedef const matrix_reference<const_self_type> const_closure_type;
typedef const matrix_reference<const self_type> const_closure_type;
#endif
typedef matrix_reference<self_type> closure_type;
typedef typename A::value_type vector_data_value_type;