Commit a4f07199 authored by Davis King's avatar Davis King

Added a mat() overload that works with Armadillo matrices.

parent a0e3d2a6
...@@ -247,6 +247,50 @@ namespace dlib ...@@ -247,6 +247,50 @@ namespace dlib
return matrix_op<op>(op(ptr,nr,nc)); return matrix_op<op>(op(ptr,nr,nc));
} }
// ----------------------------------------------------------------------------------------
}
namespace arma
{
template <typename T> class Mat;
}
namespace dlib
{
template <typename T>
struct op_arma_Mat_to_mat : does_not_alias
{
op_arma_Mat_to_mat( const T& array_) : array(array_){}
const T& array;
const static long cost = 1;
const static long NR = 0;
const static long NC = 0;
typedef typename T::elem_type type;
typedef typename T::elem_type const_ret_type;
typedef default_memory_manager mem_manager_type;
typedef row_major_layout layout_type;
const_ret_type apply (long r, long c ) const { return array(r,c); }
long nr () const { return array.n_rows; }
long nc () const { return array.n_cols; }
};
// ----------------------------------------------------------------------------------------
template <
typename T
>
const matrix_op<op_arma_Mat_to_mat< ::arma::Mat<T> > > mat (
const ::arma::Mat<T>& array
)
{
typedef op_arma_Mat_to_mat< ::arma::Mat<T> > op;
return matrix_op<op>(op(array));
}
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// DEPRECATED FUNCTIONS // DEPRECATED FUNCTIONS
......
...@@ -147,6 +147,24 @@ namespace dlib ...@@ -147,6 +147,24 @@ namespace dlib
the pointer and thus will not delete or free it. the pointer and thus will not delete or free it.
!*/ !*/
// ----------------------------------------------------------------------------------------
template <
typename T
>
const matrix_exp mat (
const ::arma::Mat<T>& m
);
/*!
ensures
- Converts a matrix from the Armadillo library into a dlib matrix.
- returns a matrix R such that:
- R.nr() == m.n_rows
- R.nc() == m.n_cols
- for all valid r:
R(r,c) == m(r,c)
!*/
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
} }
......
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