Operator_times


Functions

template<typename T1 >
arma_inline const Op< T1,
op_scalar_times
operator* (const Base< typename T1::elem_type, T1 > &X, const typename T1::elem_type k)
 Base * scalar.
template<typename T1 >
arma_inline const Op< T1,
op_scalar_times
operator* (const Op< T1, op_scalar_times > &X, const typename T1::elem_type k)
 op * scalar, level 2
template<typename eT >
arma_inline Mat< eT > operator* (const Op< Mat< eT >, op_ones_full > &X, const eT k)
 Op<mat,op_ones_full> * scalar.
template<typename eT >
arma_inline Mat< eT > operator* (const Op< Mat< eT >, op_ones_diag > &X, const eT k)
 Op<mat,op_ones_diag> * scalar.
template<typename T1 >
arma_inline const Op< T1,
op_scalar_times
operator* (const typename T1::elem_type k, const Base< typename T1::elem_type, T1 > &X)
 scalar * Base
template<typename eT >
arma_inline Mat< eT > operator* (const eT k, const Op< Mat< eT >, op_ones_full > &X)
 scalar * Op<mat,op_ones_full>
template<typename eT >
arma_inline Mat< eT > operator* (const eT k, const Op< Mat< eT >, op_ones_diag > &X)
 scalar * Op<mat,op_ones_diag>
template<typename T1 , typename T2 >
arma_inline const Glue< T1, Op
< T2, op_diagmat >
, glue_times_diag
operator* (const Base< typename T2::elem_type, T1 > &X, const Op< T2, op_diagmat > &Y)
 Base * diagmat.
template<typename T1 , typename T2 >
arma_inline const Glue< Op< T1,
op_diagmat >, T2,
glue_times_diag
operator* (const Op< T1, op_diagmat > &X, const Base< typename T1::elem_type, T2 > &Y)
 diagmat * Base
template<typename eT >
arma_inline const Glue< Col
< eT >, Row< eT >
, glue_times_vec
operator* (const Col< eT > &X, const Row< eT > &Y)
 colvec * rowvec
template<typename T1 >
arma_inline const Glue< T1,
Col< typename T1::elem_type >
, glue_times_vec
operator* (const Base< typename T1::elem_type, T1 > &X, const Col< typename T1::elem_type > &Y)
 Base * colvec.
template<typename T1 >
arma_inline const Glue< T1,
Row< typename T1::elem_type >
, glue_times_vec
operator* (const Base< typename T1::elem_type, T1 > &X, const Row< typename T1::elem_type > &Y)
 Base * rowvec.
template<typename T1 >
arma_inline const Glue< Col
< typename T1::elem_type >, T1,
glue_times_vec
operator* (const Col< typename T1::elem_type > &X, const Base< typename T1::elem_type, T1 > &Y)
 colvec * Base
template<typename T1 >
arma_inline const Glue< Row
< typename T1::elem_type >, T1,
glue_times_vec
operator* (const Row< typename T1::elem_type > &X, const Base< typename T1::elem_type, T1 > &Y)
 rowvec * Base
template<typename T1 >
arma_inline const Glue< Op< T1,
op_diagmat >, Col< typename
T1::elem_type >
, glue_times_diag
operator* (const Op< T1, op_diagmat > &X, const Col< typename T1::elem_type > &Y)
 diagmat * colvec
template<typename T1 >
arma_inline const Glue< Op< T1,
op_diagmat >, Row< typename
T1::elem_type >
, glue_times_diag
operator* (const Op< T1, op_diagmat > &X, const Row< typename T1::elem_type > &Y)
 diagmat * rowvec
template<typename T1 >
arma_inline const Glue< Col
< typename T1::elem_type >, Op
< T1, op_diagmat >
, glue_times_diag
operator* (const Col< typename T1::elem_type > &X, const Op< T1, op_diagmat > &Y)
 colvec * diagmat
template<typename T1 >
arma_inline const Glue< Row
< typename T1::elem_type >, Op
< T1, op_diagmat >
, glue_times_diag
operator* (const Row< typename T1::elem_type > &X, const Op< T1, op_diagmat > &Y)
 rowvec * diagmat
template<typename eT1 , typename T1 , typename eT2 , typename T2 >
arma_inline Mat< typename
promote_type< eT1, eT2 >
::result > 
operator* (const Base< eT1, T1 > &X, const Base< eT2, T2 > &Y)
 Base * Base.
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< std::complex< double >, T1 > &X, const Base< std::complex< double >, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< std::complex< float >, T1 > &X, const Base< std::complex< float >, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< double, T1 > &X, const Base< double, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< float, T1 > &X, const Base< float, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< s32, T1 > &X, const Base< s32, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< u32, T1 > &X, const Base< u32, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< s16, T1 > &X, const Base< s16, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< u16, T1 > &X, const Base< u16, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< s8, T1 > &X, const Base< s8, T2 > &Y)
template<typename T1 , typename T2 >
arma_inline const Glue< T1, T2,
glue_times
operator* (const Base< u8, T1 > &X, const Base< u8, T2 > &Y)

Function Documentation

template<typename T1 >
arma_inline const Op<T1, op_scalar_times> operator* ( const Base< typename T1::elem_type, T1 > &  X,
const typename T1::elem_type  k 
) [inline]

Base * scalar.

Definition at line 32 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00033   {
00034   arma_extra_debug_sigprint();
00035   
00036   return Op<T1, op_scalar_times>(X.get_ref(),k);
00037   }

template<typename T1 >
arma_inline const Op<T1,op_scalar_times> operator* ( const Op< T1, op_scalar_times > &  X,
const typename T1::elem_type  k 
) [inline]

op * scalar, level 2

Definition at line 46 of file operator_times.hpp.

References Op< T1, op_type >::aux, and Op< T1, op_type >::m.

00047   {
00048   arma_extra_debug_sigprint();
00049   
00050   return Op<T1, op_scalar_times>(X.m, X.aux * k);
00051   }

template<typename eT >
arma_inline Mat<eT> operator* ( const Op< Mat< eT >, op_ones_full > &  X,
const eT  k 
) [inline]

Op<mat,op_ones_full> * scalar.

Definition at line 60 of file operator_times.hpp.

References Op< T1, op_type >::aux_u32_a, Op< T1, op_type >::aux_u32_b, and Mat< eT >::fill().

00061   {
00062   arma_extra_debug_sigprint();
00063     
00064   Mat<eT> tmp(X.aux_u32_a, X.aux_u32_b);
00065   tmp.fill(k);
00066   
00067   return tmp;
00068   }

template<typename eT >
arma_inline Mat<eT> operator* ( const Op< Mat< eT >, op_ones_diag > &  X,
const eT  k 
) [inline]

Op<mat,op_ones_diag> * scalar.

Definition at line 77 of file operator_times.hpp.

References Mat< eT >::at(), Op< T1, op_type >::aux_u32_a, Op< T1, op_type >::aux_u32_b, Mat< eT >::n_rows, and Mat< eT >::zeros().

00078   {
00079   arma_extra_debug_sigprint();
00080   
00081   Mat<eT> out;
00082   out.zeros(X.aux_u32_a, X.aux_u32_b);
00083   
00084   for(u32 i=0; i<out.n_rows; ++i)
00085     {
00086     out.at(i,i) = k;
00087     }
00088   
00089   return out;
00090   }

template<typename T1 >
arma_inline const Op<T1, op_scalar_times> operator* ( const typename T1::elem_type  k,
const Base< typename T1::elem_type, T1 > &  X 
) [inline]

scalar * Base

Definition at line 99 of file operator_times.hpp.

References Base< T1::elem_type, Op< T1, op_type > >::get_ref().

00100   {
00101   arma_extra_debug_sigprint();
00102   
00103   return Op<T1, op_scalar_times>(X.get_ref(),k);  // NOTE: order is swapped
00104   }

template<typename eT >
arma_inline Mat<eT> operator* ( const eT  k,
const Op< Mat< eT >, op_ones_full > &  X 
) [inline]

scalar * Op<mat,op_ones_full>

Definition at line 113 of file operator_times.hpp.

References Op< T1, op_type >::aux_u32_a, Op< T1, op_type >::aux_u32_b, and Mat< eT >::fill().

00114   {
00115   arma_extra_debug_sigprint();
00116     
00117   Mat<eT> tmp(X.aux_u32_a, X.aux_u32_b);
00118   tmp.fill(k);
00119   
00120   return tmp;
00121   }

template<typename eT >
arma_inline Mat<eT> operator* ( const eT  k,
const Op< Mat< eT >, op_ones_diag > &  X 
) [inline]

scalar * Op<mat,op_ones_diag>

Definition at line 130 of file operator_times.hpp.

References Mat< eT >::at(), Op< T1, op_type >::aux_u32_a, Op< T1, op_type >::aux_u32_b, Mat< eT >::n_rows, and Mat< eT >::zeros().

00131   {
00132   arma_extra_debug_sigprint();
00133   
00134   Mat<eT> out;
00135   out.zeros(X.aux_u32_a, X.aux_u32_b);
00136   
00137   for(u32 i=0; i<out.n_rows; ++i)
00138     out.at(i,i) = k;
00139   
00140   return out;
00141   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, Op<T2,op_diagmat>, glue_times_diag> operator* ( const Base< typename T2::elem_type, T1 > &  X,
const Op< T2, op_diagmat > &  Y 
) [inline]

Base * diagmat.

Definition at line 150 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00151   {
00152   arma_extra_debug_sigprint();
00153   
00154   return Glue<T1, Op<T2,op_diagmat>, glue_times_diag>(X.get_ref(), Y);
00155   }

template<typename T1 , typename T2 >
arma_inline const Glue<Op<T1,op_diagmat>, T2, glue_times_diag> operator* ( const Op< T1, op_diagmat > &  X,
const Base< typename T1::elem_type, T2 > &  Y 
) [inline]

diagmat * Base

Definition at line 164 of file operator_times.hpp.

References Base< T1::elem_type, Op< T1, op_type > >::get_ref().

00165   {
00166   arma_extra_debug_sigprint();
00167   
00168   return Glue<Op<T1,op_diagmat>, T2, glue_times_diag>(X, Y.get_ref());
00169   }

template<typename eT >
arma_inline const Glue<Col<eT>, Row<eT>, glue_times_vec> operator* ( const Col< eT > &  X,
const Row< eT > &  Y 
) [inline]

colvec * rowvec

Definition at line 178 of file operator_times.hpp.

00179   {
00180   arma_extra_debug_sigprint();
00181   
00182   return Glue<Col<eT>, Row<eT>, glue_times_vec>(X, Y);
00183   }

template<typename T1 >
arma_inline const Glue<T1, Col<typename T1::elem_type>, glue_times_vec> operator* ( const Base< typename T1::elem_type, T1 > &  X,
const Col< typename T1::elem_type > &  Y 
) [inline]

Base * colvec.

Definition at line 192 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00193   {
00194   arma_extra_debug_sigprint();
00195   
00196   return Glue<T1, Col<typename T1::elem_type>, glue_times_vec>(X.get_ref(), Y);
00197   }

template<typename T1 >
arma_inline const Glue<T1, Row<typename T1::elem_type>, glue_times_vec> operator* ( const Base< typename T1::elem_type, T1 > &  X,
const Row< typename T1::elem_type > &  Y 
) [inline]

Base * rowvec.

Definition at line 206 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00207   {
00208   arma_extra_debug_sigprint();
00209   
00210   return Glue<T1, Row<typename T1::elem_type>, glue_times_vec>(X.get_ref(), Y);
00211   }

template<typename T1 >
arma_inline const Glue<Col<typename T1::elem_type>, T1, glue_times_vec> operator* ( const Col< typename T1::elem_type > &  X,
const Base< typename T1::elem_type, T1 > &  Y 
) [inline]

colvec * Base

Definition at line 220 of file operator_times.hpp.

References Base< eT, Mat< eT > >::get_ref().

00221   {
00222   arma_extra_debug_sigprint();
00223   
00224   return Glue<Col<typename T1::elem_type>, T1, glue_times_vec>(X, Y.get_ref());
00225   }

template<typename T1 >
arma_inline const Glue<Row<typename T1::elem_type>, T1, glue_times_vec> operator* ( const Row< typename T1::elem_type > &  X,
const Base< typename T1::elem_type, T1 > &  Y 
) [inline]

rowvec * Base

Definition at line 234 of file operator_times.hpp.

References Base< eT, Mat< eT > >::get_ref().

00235   {
00236   arma_extra_debug_sigprint();
00237   
00238   return Glue<Row<typename T1::elem_type>, T1, glue_times_vec>(X, Y.get_ref());
00239   }

template<typename T1 >
arma_inline const Glue<Op<T1, op_diagmat>, Col<typename T1::elem_type>, glue_times_diag> operator* ( const Op< T1, op_diagmat > &  X,
const Col< typename T1::elem_type > &  Y 
) [inline]

diagmat * colvec

Definition at line 248 of file operator_times.hpp.

00249   {
00250   arma_extra_debug_sigprint();
00251   
00252   return Glue<Op<T1, op_diagmat>, Col<typename T1::elem_type>, glue_times_diag>(X, Y);
00253   }

template<typename T1 >
arma_inline const Glue<Op<T1, op_diagmat>, Row<typename T1::elem_type>, glue_times_diag> operator* ( const Op< T1, op_diagmat > &  X,
const Row< typename T1::elem_type > &  Y 
) [inline]

diagmat * rowvec

Definition at line 262 of file operator_times.hpp.

00263   {
00264   arma_extra_debug_sigprint();
00265   
00266   return Glue<Op<T1, op_diagmat>, Row<typename T1::elem_type>, glue_times_diag>(X, Y);
00267   }

template<typename T1 >
arma_inline const Glue<Col<typename T1::elem_type>, Op<T1, op_diagmat>, glue_times_diag> operator* ( const Col< typename T1::elem_type > &  X,
const Op< T1, op_diagmat > &  Y 
) [inline]

colvec * diagmat

Definition at line 276 of file operator_times.hpp.

00277   {
00278   arma_extra_debug_sigprint();
00279   
00280   return Glue<Col<typename T1::elem_type>, Op<T1, op_diagmat>, glue_times_diag>(X, Y);
00281   }

template<typename T1 >
arma_inline const Glue<Row<typename T1::elem_type>, Op<T1, op_diagmat>, glue_times_diag> operator* ( const Row< typename T1::elem_type > &  X,
const Op< T1, op_diagmat > &  Y 
) [inline]

rowvec * diagmat

Definition at line 290 of file operator_times.hpp.

00291   {
00292   arma_extra_debug_sigprint();
00293   
00294   return Glue<Row<typename T1::elem_type>, Op<T1, op_diagmat>, glue_times_diag>(X, Y);
00295   }

template<typename eT1 , typename T1 , typename eT2 , typename T2 >
arma_inline Mat<typename promote_type<eT1,eT2>::result> operator* ( const Base< eT1, T1 > &  X,
const Base< eT2, T2 > &  Y 
) [inline]

Base * Base.

Definition at line 310 of file operator_times.hpp.

References glue_times::apply_mixed(), promote_type< T1, T2 >::check(), and Base< elem_type, derived >::get_ref().

00311   {
00312   arma_extra_debug_sigprint();
00313 
00314   promote_type<eT1,eT2>::check();
00315   
00316   const unwrap<T1> tmp1(X.get_ref());
00317   const unwrap<T2> tmp2(Y.get_ref());
00318   
00319   const Mat< eT1 >& A = tmp1.M;
00320   const Mat< eT2 >& B = tmp2.M;
00321   
00322   Mat< typename promote_type<eT1,eT2>::result > out;
00323   
00324   glue_times::apply_mixed(out, A, B);
00325   
00326   return out;
00327   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< std::complex< double >, T1 > &  X,
const Base< std::complex< double >, T2 > &  Y 
) [inline]

Definition at line 341 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00342   {
00343   arma_extra_debug_sigprint();
00344   
00345   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00346   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< std::complex< float >, T1 > &  X,
const Base< std::complex< float >, T2 > &  Y 
) [inline]

Definition at line 354 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00355   {
00356   arma_extra_debug_sigprint();
00357   
00358   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00359   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< double, T1 > &  X,
const Base< double, T2 > &  Y 
) [inline]

Definition at line 367 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00368   {
00369   arma_extra_debug_sigprint();
00370   
00371   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00372   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< float, T1 > &  X,
const Base< float, T2 > &  Y 
) [inline]

Definition at line 380 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00381   {
00382   arma_extra_debug_sigprint();
00383   
00384   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00385   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< s32, T1 > &  X,
const Base< s32, T2 > &  Y 
) [inline]

Definition at line 393 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00394   {
00395   arma_extra_debug_sigprint();
00396   
00397   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00398   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< u32, T1 > &  X,
const Base< u32, T2 > &  Y 
) [inline]

Definition at line 406 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00407   {
00408   arma_extra_debug_sigprint();
00409   
00410   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00411   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< s16, T1 > &  X,
const Base< s16, T2 > &  Y 
) [inline]

Definition at line 419 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00420   {
00421   arma_extra_debug_sigprint();
00422   
00423   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00424   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< u16, T1 > &  X,
const Base< u16, T2 > &  Y 
) [inline]

Definition at line 432 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00433   {
00434   arma_extra_debug_sigprint();
00435   
00436   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00437   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< s8, T1 > &  X,
const Base< s8, T2 > &  Y 
) [inline]

Definition at line 445 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00446   {
00447   arma_extra_debug_sigprint();
00448   
00449   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00450   }

template<typename T1 , typename T2 >
arma_inline const Glue<T1, T2, glue_times> operator* ( const Base< u8, T1 > &  X,
const Base< u8, T2 > &  Y 
) [inline]

Definition at line 458 of file operator_times.hpp.

References Base< elem_type, derived >::get_ref().

00459   {
00460   arma_extra_debug_sigprint();
00461   
00462   return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
00463   }