Commit 58386628 authored by Davis King's avatar Davis King

General cleanup (also added all the needed typedefs for layout_type).

--HG--
extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%402744
parent 33350213
...@@ -65,9 +65,7 @@ namespace dlib ...@@ -65,9 +65,7 @@ namespace dlib
{ {
typedef typename EXP::type type; typedef typename EXP::type type;
typedef typename EXP::mem_manager_type mem_manager_type; typedef typename EXP::mem_manager_type mem_manager_type;
// TODO typedef typename EXP::layout_type layout_type;
//typedef typename EXP::layout_type layout_type;
const static long NR = EXP::NR; const static long NR = EXP::NR;
const static long NC = EXP::NC; const static long NC = EXP::NC;
const static long cost = EXP::cost; const static long cost = EXP::cost;
...@@ -87,8 +85,7 @@ namespace dlib ...@@ -87,8 +85,7 @@ namespace dlib
public: public:
typedef typename matrix_traits<EXP>::type type; typedef typename matrix_traits<EXP>::type type;
typedef typename matrix_traits<EXP>::mem_manager_type mem_manager_type; typedef typename matrix_traits<EXP>::mem_manager_type mem_manager_type;
// TODO typedef typename matrix_traits<EXP>::layout_type layout_type;
//typedef typename matrix_traits<EXP>::layout_type layout_type;
const static long NR = matrix_traits<EXP>::NR; const static long NR = matrix_traits<EXP>::NR;
const static long NC = matrix_traits<EXP>::NC; const static long NC = matrix_traits<EXP>::NC;
const static long cost = matrix_traits<EXP>::cost; const static long cost = matrix_traits<EXP>::cost;
...@@ -267,6 +264,7 @@ namespace dlib ...@@ -267,6 +264,7 @@ namespace dlib
{ {
typedef typename LHS::type type; typedef typename LHS::type type;
typedef typename LHS::mem_manager_type mem_manager_type; typedef typename LHS::mem_manager_type mem_manager_type;
typedef typename LHS::layout_type layout_type;
const static long NR = LHS::NR; const static long NR = LHS::NR;
const static long NC = RHS::NC; const static long NC = RHS::NC;
...@@ -305,6 +303,7 @@ namespace dlib ...@@ -305,6 +303,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_multiply_exp>::NR; const static long NR = matrix_traits<matrix_multiply_exp>::NR;
const static long NC = matrix_traits<matrix_multiply_exp>::NC; const static long NC = matrix_traits<matrix_multiply_exp>::NC;
const static long cost = matrix_traits<matrix_multiply_exp>::cost; const static long cost = matrix_traits<matrix_multiply_exp>::cost;
typedef typename matrix_traits<matrix_multiply_exp>::layout_type layout_type;
const static bool lhs_is_costly = matrix_traits<matrix_multiply_exp>::lhs_is_costly; const static bool lhs_is_costly = matrix_traits<matrix_multiply_exp>::lhs_is_costly;
...@@ -398,6 +397,7 @@ namespace dlib ...@@ -398,6 +397,7 @@ namespace dlib
{ {
typedef typename LHS::type type; typedef typename LHS::type type;
typedef typename LHS::mem_manager_type mem_manager_type; typedef typename LHS::mem_manager_type mem_manager_type;
typedef typename LHS::layout_type layout_type;
const static long NR = (RHS::NR > LHS::NR) ? RHS::NR : LHS::NR; const static long NR = (RHS::NR > LHS::NR) ? RHS::NR : LHS::NR;
const static long NC = (RHS::NC > LHS::NC) ? RHS::NC : LHS::NC; const static long NC = (RHS::NC > LHS::NC) ? RHS::NC : LHS::NC;
const static long cost = LHS::cost+RHS::cost; const static long cost = LHS::cost+RHS::cost;
...@@ -419,6 +419,7 @@ namespace dlib ...@@ -419,6 +419,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_add_exp>::NR; const static long NR = matrix_traits<matrix_add_exp>::NR;
const static long NC = matrix_traits<matrix_add_exp>::NC; const static long NC = matrix_traits<matrix_add_exp>::NC;
const static long cost = matrix_traits<matrix_add_exp>::cost; const static long cost = matrix_traits<matrix_add_exp>::cost;
typedef typename matrix_traits<matrix_add_exp>::layout_type layout_type;
matrix_add_exp ( matrix_add_exp (
const matrix_add_exp& item const matrix_add_exp& item
...@@ -506,6 +507,7 @@ namespace dlib ...@@ -506,6 +507,7 @@ namespace dlib
{ {
typedef typename LHS::type type; typedef typename LHS::type type;
typedef typename LHS::mem_manager_type mem_manager_type; typedef typename LHS::mem_manager_type mem_manager_type;
typedef typename LHS::layout_type layout_type;
const static long NR = (RHS::NR > LHS::NR) ? RHS::NR : LHS::NR; const static long NR = (RHS::NR > LHS::NR) ? RHS::NR : LHS::NR;
const static long NC = (RHS::NC > LHS::NC) ? RHS::NC : LHS::NC; const static long NC = (RHS::NC > LHS::NC) ? RHS::NC : LHS::NC;
const static long cost = LHS::cost+RHS::cost; const static long cost = LHS::cost+RHS::cost;
...@@ -527,6 +529,7 @@ namespace dlib ...@@ -527,6 +529,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_subtract_exp>::NR; const static long NR = matrix_traits<matrix_subtract_exp>::NR;
const static long NC = matrix_traits<matrix_subtract_exp>::NC; const static long NC = matrix_traits<matrix_subtract_exp>::NC;
const static long cost = matrix_traits<matrix_subtract_exp>::cost; const static long cost = matrix_traits<matrix_subtract_exp>::cost;
typedef typename matrix_traits<matrix_subtract_exp>::layout_type layout_type;
matrix_subtract_exp ( matrix_subtract_exp (
const matrix_subtract_exp& item const matrix_subtract_exp& item
...@@ -613,6 +616,7 @@ namespace dlib ...@@ -613,6 +616,7 @@ namespace dlib
{ {
typedef typename M::type type; typedef typename M::type type;
typedef typename M::mem_manager_type mem_manager_type; typedef typename M::mem_manager_type mem_manager_type;
typedef typename M::layout_type layout_type;
const static long NR = M::NR; const static long NR = M::NR;
const static long NC = M::NC; const static long NC = M::NC;
const static long cost = M::cost+1; const static long cost = M::cost+1;
...@@ -638,6 +642,7 @@ namespace dlib ...@@ -638,6 +642,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_div_scal_exp>::NR; const static long NR = matrix_traits<matrix_div_scal_exp>::NR;
const static long NC = matrix_traits<matrix_div_scal_exp>::NC; const static long NC = matrix_traits<matrix_div_scal_exp>::NC;
const static long cost = matrix_traits<matrix_div_scal_exp>::cost; const static long cost = matrix_traits<matrix_div_scal_exp>::cost;
typedef typename matrix_traits<matrix_div_scal_exp>::layout_type layout_type;
matrix_div_scal_exp ( matrix_div_scal_exp (
const matrix_div_scal_exp& item const matrix_div_scal_exp& item
...@@ -707,6 +712,7 @@ namespace dlib ...@@ -707,6 +712,7 @@ namespace dlib
{ {
typedef typename M::type type; typedef typename M::type type;
typedef typename M::mem_manager_type mem_manager_type; typedef typename M::mem_manager_type mem_manager_type;
typedef typename M::layout_type layout_type;
const static long NR = M::NR; const static long NR = M::NR;
const static long NC = M::NC; const static long NC = M::NC;
const static long cost = M::cost+1; const static long cost = M::cost+1;
...@@ -731,6 +737,7 @@ namespace dlib ...@@ -731,6 +737,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_mul_scal_exp>::NR; const static long NR = matrix_traits<matrix_mul_scal_exp>::NR;
const static long NC = matrix_traits<matrix_mul_scal_exp>::NC; const static long NC = matrix_traits<matrix_mul_scal_exp>::NC;
const static long cost = matrix_traits<matrix_mul_scal_exp>::cost; const static long cost = matrix_traits<matrix_mul_scal_exp>::cost;
typedef typename matrix_traits<matrix_mul_scal_exp>::layout_type layout_type;
matrix_mul_scal_exp ( matrix_mul_scal_exp (
const matrix_mul_scal_exp& item const matrix_mul_scal_exp& item
......
...@@ -21,114 +21,6 @@ namespace dlib ...@@ -21,114 +21,6 @@ namespace dlib
> >
class matrix; class matrix;
// ----------------------------------------------------------------------------------------
template <
typename T,
long num_rows,
long num_cols,
typename mem_manager,
typename layout
>
class matrix_ref
{
/*!
WHAT THIS OBJECT REPRESENTS
This object represents a copyable (via the copy constructor but not
operator=) reference to a matrix object.
!*/
public:
typedef T type;
typedef matrix_ref ref_type;
typedef mem_manager mem_manager_type;
typedef layout layout_type;
const static long NR = num_rows;
const static long NC = num_cols;
matrix_ref (
const matrix<T,num_rows,num_cols,mem_manager,layout>& m
);
/*!
ensures
- #aliases(m) == true
(i.e. #*this references/aliases the matrix m.)
!*/
matrix_ref (
const matrix_ref& r
);
/*!
ensures
- #*this references/aliases the same matrix as r does.
!*/
const T& operator() (
long r,
long c
) const;
/*!
requires
- 0 <= r < nr()
- 0 <= c < nc()
ensures
- returns a const reference to the value at the given row and column in
this matrix.
!*/
long nr (
) const;
/*!
ensures
- returns the number of rows in the matrix referenced by *this
!*/
long nc (
) const;
/*!
ensures
- returns the number of columns in the matrix referenced by *this
!*/
long size (
) const;
/*!
ensures
- returns nr()*nc()
!*/
template <typename U, long iNR, long iNC, typename mm, typename l>
bool destructively_aliases (
const matrix<U,iNR,iNC,mm,l>& item
) const;
/*!
ensures
- returns false
!*/
template <typename U, long iNR, long iNC, typename mm, typename l>
bool aliases (
const matrix<U,iNR,iNC,mm,l>& item
) const;
/*!
ensures
- if (item is the matrix referenced by *this) then
- returns true
- else
- returns false
!*/
const ref_type& ref(
) const { return *this; }
/*!
ensures
- returns *this
!*/
private:
// no assignment operator
matrix_ref& operator=(const matrix_ref&);
};
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
template < template <
...@@ -138,8 +30,7 @@ namespace dlib ...@@ -138,8 +30,7 @@ namespace dlib
{ {
/*! /*!
REQUIREMENTS ON EXP REQUIREMENTS ON EXP
- must be a matrix_exp or matrix_ref object (or an object with - must be an object that inherits publicly from matrix_exp (this class).
a compatible interface)
WHAT THIS OBJECT REPRESENTS WHAT THIS OBJECT REPRESENTS
This object represents an expression that evaluates to a matrix This object represents an expression that evaluates to a matrix
...@@ -162,20 +53,13 @@ namespace dlib ...@@ -162,20 +53,13 @@ namespace dlib
public: public:
typedef typename EXP::type type; typedef typename EXP::type type;
typedef typename EXP::ref_type ref_type;
typedef typename EXP::mem_manager_type mem_manager_type; typedef typename EXP::mem_manager_type mem_manager_type;
typedef typename EXP::layout_type layout_type;
const static long cost = EXP::cost;
const static long NR = EXP::NR; const static long NR = EXP::NR;
const static long NC = EXP::NC; const static long NC = EXP::NC;
typedef matrix<type,NR,NC, mem_manager_type> matrix_type; typedef matrix<type,NR,NC, mem_manager_type> matrix_type;
const static long cost = EXP::cost; typedef EXP exp_type;
matrix_exp (
const EXP& exp
);
/*!
ensures
- #ref() == exp.ref()
!*/
const type operator() ( const type operator() (
long r, long r,
...@@ -277,13 +161,30 @@ namespace dlib ...@@ -277,13 +161,30 @@ namespace dlib
- returns false - returns false
!*/ !*/
const ref_type& ref ( const exp_type& ref (
) const; ) const;
/*! /*!
ensures ensures
- returns a copyable reference to the subexpression contained in *this. - returns a copyable reference to the subexpression contained in *this.
!*/ !*/
protected:
explicit matrix_exp (
const EXP& exp
);
/*!
ensures
- #ref() == exp.ref()
!*/
private:
// you can't copy a matrix_exp at all. Things that inherit from it must
// define their own copy constructors that call the above protected
// constructor so that the reference below is maintained correctly.
matrix_exp(const matrix_exp& item);
matrix_exp& operator= (const matrix_exp&);
}; };
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -412,7 +313,7 @@ namespace dlib ...@@ -412,7 +313,7 @@ namespace dlib
typename mem_manager = memory_manager<char>::kernel_1a, typename mem_manager = memory_manager<char>::kernel_1a,
typename layout = default_matrix_layout typename layout = default_matrix_layout
> >
class matrix : public matrix_exp<matrix_ref<T,num_rows,num_cols,mem_manager,layout> > class matrix : public matrix_exp<matrix<T,num_rows,num_cols,mem_manager,layout> >
{ {
/*! /*!
REQUIREMENTS ON num_rows and num_cols REQUIREMENTS ON num_rows and num_cols
...@@ -464,11 +365,11 @@ namespace dlib ...@@ -464,11 +365,11 @@ namespace dlib
public: public:
typedef T type; typedef T type;
typedef matrix_ref<T,num_rows,num_cols,mem_manager,layout> ref_type;
typedef mem_manager mem_manager_type; typedef mem_manager mem_manager_type;
typedef layout layout_type; typedef layout layout_type;
const static long NR = num_rows; const static long NR = num_rows;
const static long NC = num_cols; const static long NC = num_cols;
const static long cost = 1;
matrix ( matrix (
); );
......
...@@ -34,6 +34,7 @@ namespace dlib ...@@ -34,6 +34,7 @@ namespace dlib
typedef typename OP_::template op<M> OP; typedef typename OP_::template op<M> OP;
typedef typename OP::type type; typedef typename OP::type type;
typedef typename OP::mem_manager_type mem_manager_type; typedef typename OP::mem_manager_type mem_manager_type;
typedef typename M::layout_type layout_type;
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
...@@ -54,6 +55,7 @@ namespace dlib ...@@ -54,6 +55,7 @@ namespace dlib
public: public:
typedef typename matrix_traits<matrix_unary_exp>::type type; typedef typename matrix_traits<matrix_unary_exp>::type type;
typedef typename matrix_traits<matrix_unary_exp>::mem_manager_type mem_manager_type; typedef typename matrix_traits<matrix_unary_exp>::mem_manager_type mem_manager_type;
typedef typename matrix_traits<matrix_unary_exp>::layout_type layout_type;
const static long NR = matrix_traits<matrix_unary_exp>::NR; const static long NR = matrix_traits<matrix_unary_exp>::NR;
const static long NC = matrix_traits<matrix_unary_exp>::NC; const static long NC = matrix_traits<matrix_unary_exp>::NC;
const static long cost = matrix_traits<matrix_unary_exp>::cost; const static long cost = matrix_traits<matrix_unary_exp>::cost;
...@@ -120,6 +122,7 @@ namespace dlib ...@@ -120,6 +122,7 @@ namespace dlib
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
typedef typename M::layout_type layout_type;
}; };
template < template <
...@@ -141,6 +144,7 @@ namespace dlib ...@@ -141,6 +144,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_scalar_binary_exp>::NR; const static long NR = matrix_traits<matrix_scalar_binary_exp>::NR;
const static long NC = matrix_traits<matrix_scalar_binary_exp>::NC; const static long NC = matrix_traits<matrix_scalar_binary_exp>::NC;
const static long cost = matrix_traits<matrix_scalar_binary_exp>::cost; const static long cost = matrix_traits<matrix_scalar_binary_exp>::cost;
typedef typename matrix_traits<matrix_scalar_binary_exp>::layout_type layout_type;
matrix_scalar_binary_exp ( matrix_scalar_binary_exp (
const matrix_scalar_binary_exp& item const matrix_scalar_binary_exp& item
...@@ -210,6 +214,7 @@ namespace dlib ...@@ -210,6 +214,7 @@ namespace dlib
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
typedef typename M::layout_type layout_type;
}; };
template < template <
...@@ -231,6 +236,7 @@ namespace dlib ...@@ -231,6 +236,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_scalar_ternary_exp>::NR; const static long NR = matrix_traits<matrix_scalar_ternary_exp>::NR;
const static long NC = matrix_traits<matrix_scalar_ternary_exp>::NC; const static long NC = matrix_traits<matrix_scalar_ternary_exp>::NC;
const static long cost = matrix_traits<matrix_scalar_ternary_exp>::cost; const static long cost = matrix_traits<matrix_scalar_ternary_exp>::cost;
typedef typename matrix_traits<matrix_scalar_ternary_exp>::layout_type layout_type;
matrix_scalar_ternary_exp ( matrix_scalar_ternary_exp (
const matrix_scalar_ternary_exp& item const matrix_scalar_ternary_exp& item
...@@ -305,6 +311,7 @@ namespace dlib ...@@ -305,6 +311,7 @@ namespace dlib
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
typedef typename M1::layout_type layout_type;
}; };
template < template <
...@@ -326,6 +333,7 @@ namespace dlib ...@@ -326,6 +333,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_binary_exp>::NR; const static long NR = matrix_traits<matrix_binary_exp>::NR;
const static long NC = matrix_traits<matrix_binary_exp>::NC; const static long NC = matrix_traits<matrix_binary_exp>::NC;
const static long cost = matrix_traits<matrix_binary_exp>::cost; const static long cost = matrix_traits<matrix_binary_exp>::cost;
typedef typename matrix_traits<matrix_binary_exp>::layout_type layout_type;
matrix_binary_exp ( matrix_binary_exp (
const matrix_binary_exp& item const matrix_binary_exp& item
...@@ -393,6 +401,7 @@ namespace dlib ...@@ -393,6 +401,7 @@ namespace dlib
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
typedef typename M1::layout_type layout_type;
}; };
template < template <
...@@ -415,6 +424,7 @@ namespace dlib ...@@ -415,6 +424,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_ternary_exp>::NR; const static long NR = matrix_traits<matrix_ternary_exp>::NR;
const static long NC = matrix_traits<matrix_ternary_exp>::NC; const static long NC = matrix_traits<matrix_ternary_exp>::NC;
const static long cost = matrix_traits<matrix_ternary_exp>::cost; const static long cost = matrix_traits<matrix_ternary_exp>::cost;
typedef typename matrix_traits<matrix_ternary_exp>::layout_type layout_type;
matrix_ternary_exp ( matrix_ternary_exp (
const matrix_ternary_exp& item const matrix_ternary_exp& item
...@@ -486,6 +496,7 @@ namespace dlib ...@@ -486,6 +496,7 @@ namespace dlib
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
typedef typename M1::layout_type layout_type;
}; };
template < template <
...@@ -509,6 +520,7 @@ namespace dlib ...@@ -509,6 +520,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_fourary_exp>::NR; const static long NR = matrix_traits<matrix_fourary_exp>::NR;
const static long NC = matrix_traits<matrix_fourary_exp>::NC; const static long NC = matrix_traits<matrix_fourary_exp>::NC;
const static long cost = matrix_traits<matrix_fourary_exp>::cost; const static long cost = matrix_traits<matrix_fourary_exp>::cost;
typedef typename matrix_traits<matrix_fourary_exp>::layout_type layout_type;
matrix_fourary_exp ( matrix_fourary_exp (
const matrix_fourary_exp& item const matrix_fourary_exp& item
...@@ -583,6 +595,7 @@ namespace dlib ...@@ -583,6 +595,7 @@ namespace dlib
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
typedef default_matrix_layout layout_type;
}; };
template < template <
...@@ -601,6 +614,7 @@ namespace dlib ...@@ -601,6 +614,7 @@ namespace dlib
const static long NR = matrix_traits<dynamic_matrix_scalar_unary_exp>::NR; const static long NR = matrix_traits<dynamic_matrix_scalar_unary_exp>::NR;
const static long NC = matrix_traits<dynamic_matrix_scalar_unary_exp>::NC; const static long NC = matrix_traits<dynamic_matrix_scalar_unary_exp>::NC;
const static long cost = matrix_traits<dynamic_matrix_scalar_unary_exp>::cost; const static long cost = matrix_traits<dynamic_matrix_scalar_unary_exp>::cost;
typedef typename matrix_traits<dynamic_matrix_scalar_unary_exp>::layout_type layout_type;
dynamic_matrix_scalar_unary_exp ( dynamic_matrix_scalar_unary_exp (
const dynamic_matrix_scalar_unary_exp& item const dynamic_matrix_scalar_unary_exp& item
...@@ -668,6 +682,7 @@ namespace dlib ...@@ -668,6 +682,7 @@ namespace dlib
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
typedef default_matrix_layout layout_type;
}; };
template < template <
...@@ -686,6 +701,7 @@ namespace dlib ...@@ -686,6 +701,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_scalar_unary_exp>::NR; const static long NR = matrix_traits<matrix_scalar_unary_exp>::NR;
const static long NC = matrix_traits<matrix_scalar_unary_exp>::NC; const static long NC = matrix_traits<matrix_scalar_unary_exp>::NC;
const static long cost = matrix_traits<matrix_scalar_unary_exp>::cost; const static long cost = matrix_traits<matrix_scalar_unary_exp>::cost;
typedef typename matrix_traits<matrix_scalar_unary_exp>::layout_type layout_type;
matrix_scalar_unary_exp ( matrix_scalar_unary_exp (
const matrix_scalar_unary_exp& item const matrix_scalar_unary_exp& item
...@@ -745,6 +761,7 @@ namespace dlib ...@@ -745,6 +761,7 @@ namespace dlib
const static long NR = OP::NR; const static long NR = OP::NR;
const static long NC = OP::NC; const static long NC = OP::NC;
const static long cost = OP::cost; const static long cost = OP::cost;
typedef default_matrix_layout layout_type;
}; };
template < template <
...@@ -758,6 +775,7 @@ namespace dlib ...@@ -758,6 +775,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_zeroary_exp>::NR; const static long NR = matrix_traits<matrix_zeroary_exp>::NR;
const static long NC = matrix_traits<matrix_zeroary_exp>::NC; const static long NC = matrix_traits<matrix_zeroary_exp>::NC;
const static long cost = matrix_traits<matrix_zeroary_exp>::cost; const static long cost = matrix_traits<matrix_zeroary_exp>::cost;
typedef typename matrix_traits<matrix_zeroary_exp>::layout_type layout_type;
matrix_zeroary_exp ( matrix_zeroary_exp (
const matrix_zeroary_exp& item const matrix_zeroary_exp& item
...@@ -810,6 +828,7 @@ namespace dlib ...@@ -810,6 +828,7 @@ namespace dlib
{ {
typedef typename M::type type; typedef typename M::type type;
typedef typename M::mem_manager_type mem_manager_type; typedef typename M::mem_manager_type mem_manager_type;
typedef typename M::layout_type layout_type;
const static long NR = EXPr::NR*EXPr::NC; const static long NR = EXPr::NR*EXPr::NC;
const static long NC = EXPc::NR*EXPr::NC; const static long NC = EXPc::NR*EXPr::NC;
const static long cost = EXPr::cost+EXPc::cost+M::cost; const static long cost = EXPr::cost+EXPc::cost+M::cost;
...@@ -832,6 +851,7 @@ namespace dlib ...@@ -832,6 +851,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_sub_range_exp>::NR; const static long NR = matrix_traits<matrix_sub_range_exp>::NR;
const static long NC = matrix_traits<matrix_sub_range_exp>::NC; const static long NC = matrix_traits<matrix_sub_range_exp>::NC;
const static long cost = matrix_traits<matrix_sub_range_exp>::cost; const static long cost = matrix_traits<matrix_sub_range_exp>::cost;
typedef typename matrix_traits<matrix_sub_range_exp>::layout_type layout_type;
matrix_sub_range_exp ( matrix_sub_range_exp (
const matrix_sub_range_exp& item const matrix_sub_range_exp& item
...@@ -904,6 +924,7 @@ namespace dlib ...@@ -904,6 +924,7 @@ namespace dlib
const static long NR = 0; const static long NR = 0;
const static long NC = 1; const static long NC = 1;
const static long cost = 1; const static long cost = 1;
typedef default_matrix_layout layout_type;
}; };
template < template <
...@@ -922,6 +943,7 @@ namespace dlib ...@@ -922,6 +943,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_std_vector_exp>::NR; const static long NR = matrix_traits<matrix_std_vector_exp>::NR;
const static long NC = matrix_traits<matrix_std_vector_exp>::NC; const static long NC = matrix_traits<matrix_std_vector_exp>::NC;
const static long cost = matrix_traits<matrix_std_vector_exp>::cost; const static long cost = matrix_traits<matrix_std_vector_exp>::cost;
typedef typename matrix_traits<matrix_std_vector_exp>::layout_type layout_type;
matrix_std_vector_exp ( matrix_std_vector_exp (
const matrix_std_vector_exp& item const matrix_std_vector_exp& item
...@@ -982,6 +1004,7 @@ namespace dlib ...@@ -982,6 +1004,7 @@ namespace dlib
{ {
typedef typename M::type type; typedef typename M::type type;
typedef typename M::mem_manager_type mem_manager_type; typedef typename M::mem_manager_type mem_manager_type;
typedef default_matrix_layout layout_type;
const static long NR = 0; const static long NR = 0;
const static long NC = 1; const static long NC = 1;
const static long cost = 1; const static long cost = 1;
...@@ -1003,6 +1026,7 @@ namespace dlib ...@@ -1003,6 +1026,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_array_exp>::NR; const static long NR = matrix_traits<matrix_array_exp>::NR;
const static long NC = matrix_traits<matrix_array_exp>::NC; const static long NC = matrix_traits<matrix_array_exp>::NC;
const static long cost = matrix_traits<matrix_array_exp>::cost; const static long cost = matrix_traits<matrix_array_exp>::cost;
typedef typename matrix_traits<matrix_array_exp>::layout_type layout_type;
matrix_array_exp ( matrix_array_exp (
const matrix_array_exp& item const matrix_array_exp& item
...@@ -1063,6 +1087,7 @@ namespace dlib ...@@ -1063,6 +1087,7 @@ namespace dlib
{ {
typedef typename M::type type; typedef typename M::type type;
typedef typename M::mem_manager_type mem_manager_type; typedef typename M::mem_manager_type mem_manager_type;
typedef default_matrix_layout layout_type;
const static long NR = 0; const static long NR = 0;
const static long NC = 0; const static long NC = 0;
const static long cost = 1; const static long cost = 1;
...@@ -1084,6 +1109,7 @@ namespace dlib ...@@ -1084,6 +1109,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_array2d_exp>::NR; const static long NR = matrix_traits<matrix_array2d_exp>::NR;
const static long NC = matrix_traits<matrix_array2d_exp>::NC; const static long NC = matrix_traits<matrix_array2d_exp>::NC;
const static long cost = matrix_traits<matrix_array2d_exp>::cost; const static long cost = matrix_traits<matrix_array2d_exp>::cost;
typedef typename matrix_traits<matrix_array2d_exp>::layout_type layout_type;
matrix_array2d_exp ( matrix_array2d_exp (
const matrix_array2d_exp& item const matrix_array2d_exp& item
...@@ -1144,6 +1170,7 @@ namespace dlib ...@@ -1144,6 +1170,7 @@ namespace dlib
{ {
typedef typename M::type type; typedef typename M::type type;
typedef typename M::mem_manager_type mem_manager_type; typedef typename M::mem_manager_type mem_manager_type;
typedef typename M::layout_type layout_type;
const static long NR = 0; const static long NR = 0;
const static long NC = 0; const static long NC = 0;
const static long cost = M::cost+1; const static long cost = M::cost+1;
...@@ -1164,6 +1191,7 @@ namespace dlib ...@@ -1164,6 +1191,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_sub_exp>::NR; const static long NR = matrix_traits<matrix_sub_exp>::NR;
const static long NC = matrix_traits<matrix_sub_exp>::NC; const static long NC = matrix_traits<matrix_sub_exp>::NC;
const static long cost = matrix_traits<matrix_sub_exp>::cost; const static long cost = matrix_traits<matrix_sub_exp>::cost;
typedef typename matrix_traits<matrix_sub_exp>::layout_type layout_type;
matrix_sub_exp ( matrix_sub_exp (
const matrix_sub_exp& item const matrix_sub_exp& item
...@@ -1237,6 +1265,7 @@ namespace dlib ...@@ -1237,6 +1265,7 @@ namespace dlib
{ {
typedef long type; typedef long type;
typedef memory_manager<char>::kernel_1a mem_manager_type; typedef memory_manager<char>::kernel_1a mem_manager_type;
typedef default_matrix_layout layout_type;
const static long NR = 0; const static long NR = 0;
const static long NC = 1; const static long NC = 1;
const static long cost = 1; const static long cost = 1;
...@@ -1250,6 +1279,7 @@ namespace dlib ...@@ -1250,6 +1279,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_range_exp>::NR; const static long NR = matrix_traits<matrix_range_exp>::NR;
const static long NC = matrix_traits<matrix_range_exp>::NC; const static long NC = matrix_traits<matrix_range_exp>::NC;
const static long cost = matrix_traits<matrix_range_exp>::cost; const static long cost = matrix_traits<matrix_range_exp>::cost;
typedef matrix_traits<matrix_range_exp>::layout_type layout_type;
matrix_range_exp ( matrix_range_exp (
const matrix_range_exp& item const matrix_range_exp& item
...@@ -1331,6 +1361,7 @@ namespace dlib ...@@ -1331,6 +1361,7 @@ namespace dlib
const static long NR = tabs<(end - start)>::value/inc_ + 1; const static long NR = tabs<(end - start)>::value/inc_ + 1;
const static long NC = 1; const static long NC = 1;
const static long cost = 1; const static long cost = 1;
typedef default_matrix_layout layout_type;
}; };
template <long start, long inc_, long end> template <long start, long inc_, long end>
...@@ -1342,6 +1373,7 @@ namespace dlib ...@@ -1342,6 +1373,7 @@ namespace dlib
const static long NR = matrix_traits<matrix_range_static_exp>::NR; const static long NR = matrix_traits<matrix_range_static_exp>::NR;
const static long NC = matrix_traits<matrix_range_static_exp>::NC; const static long NC = matrix_traits<matrix_range_static_exp>::NC;
const static long cost = matrix_traits<matrix_range_static_exp>::cost; const static long cost = matrix_traits<matrix_range_static_exp>::cost;
typedef typename matrix_traits<matrix_range_static_exp>::layout_type layout_type;
const static long inc = (start <= end)?inc_:-inc_; const static long inc = (start <= end)?inc_:-inc_;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment