|
|
|
@ -1423,8 +1423,10 @@ namespace dlib
|
|
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
struct op_rowm
|
|
|
|
|
{
|
|
|
|
|
template <typename EXP>
|
|
|
|
|
struct op_rowm : has_destructive_aliasing
|
|
|
|
|
struct op : has_destructive_aliasing
|
|
|
|
|
{
|
|
|
|
|
const static long NR = 1;
|
|
|
|
|
const static long NC = EXP::NC;
|
|
|
|
@ -1439,11 +1441,12 @@ namespace dlib
|
|
|
|
|
template <typename M>
|
|
|
|
|
static long nc (const M& m) { return m.nc(); }
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <
|
|
|
|
|
typename EXP
|
|
|
|
|
>
|
|
|
|
|
const matrix_exp<matrix_scalar_binary_exp<matrix_exp<EXP>,long,op_rowm<EXP> > > rowm (
|
|
|
|
|
const matrix_exp<matrix_scalar_binary_exp<matrix_exp<EXP>,long,op_rowm> > rowm (
|
|
|
|
|
const matrix_exp<EXP>& m,
|
|
|
|
|
long row
|
|
|
|
|
)
|
|
|
|
@ -1456,14 +1459,16 @@ namespace dlib
|
|
|
|
|
<< "\n\trow: " << row
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
typedef matrix_scalar_binary_exp<matrix_exp<EXP>,long,op_rowm<EXP> > exp;
|
|
|
|
|
typedef matrix_scalar_binary_exp<matrix_exp<EXP>,long,op_rowm> exp;
|
|
|
|
|
return matrix_exp<exp>(exp(m,row));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
struct op_colm
|
|
|
|
|
{
|
|
|
|
|
template <typename EXP>
|
|
|
|
|
struct op_colm : has_destructive_aliasing
|
|
|
|
|
struct op : has_destructive_aliasing
|
|
|
|
|
{
|
|
|
|
|
const static long NR = EXP::NR;
|
|
|
|
|
const static long NC = 1;
|
|
|
|
@ -1478,11 +1483,12 @@ namespace dlib
|
|
|
|
|
template <typename M>
|
|
|
|
|
static long nc (const M& m) { return 1; }
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <
|
|
|
|
|
typename EXP
|
|
|
|
|
>
|
|
|
|
|
const matrix_exp<matrix_scalar_binary_exp<matrix_exp<EXP>,long,op_colm<EXP> > > colm (
|
|
|
|
|
const matrix_exp<matrix_scalar_binary_exp<matrix_exp<EXP>,long,op_colm> > colm (
|
|
|
|
|
const matrix_exp<EXP>& m,
|
|
|
|
|
long col
|
|
|
|
|
)
|
|
|
|
@ -1495,7 +1501,7 @@ namespace dlib
|
|
|
|
|
<< "\n\tcol: " << col
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
typedef matrix_scalar_binary_exp<matrix_exp<EXP>,long,op_colm<EXP> > exp;
|
|
|
|
|
typedef matrix_scalar_binary_exp<matrix_exp<EXP>,long,op_colm> exp;
|
|
|
|
|
return matrix_exp<exp>(exp(m,col));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|