//! More...
Functions | |
| template<typename T1 > | |
| arma_inline const eOp< T1, eop_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 eOp< T1, eop_scalar_times > | operator* (const typename T1::elem_type k, const Base< typename T1::elem_type, T1 > &X) |
| scalar * Base | |
| template<typename T1 > | |
| arma_inline const mtOp < typename std::complex < typename T1::pod_type >, T1, op_cx_scalar_times > | operator* (const Base< typename T1::pod_type, T1 > &X, const std::complex< typename T1::pod_type > &k) |
| non-complex Base * complex scalar (experimental) | |
| template<typename T1 > | |
| arma_inline const mtOp < typename std::complex < typename T1::pod_type >, T1, op_cx_scalar_times > | operator* (const std::complex< typename T1::pod_type > &k, const Base< typename T1::pod_type, T1 > &X) |
| complex scalar * non-complex Base (experimental) | |
| template<typename T1 > | |
| arma_inline const Op< T1, op_trans2 > | operator* (const typename T1::elem_type k, const Op< T1, op_trans > &X) |
| scalar * trans(T1) | |
| template<typename T1 > | |
| arma_inline const Op< T1, op_trans2 > | operator* (const Op< T1, op_trans > &X, const typename T1::elem_type k) |
| trans(T1) * scalar | |
| 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 T1 , typename T2 > | |
| arma_inline Mat< typename promote_type< typename T1::elem_type, typename T2::elem_type >::result > | operator* (const Op< T1, op_diagmat > &X, const Op< T2, op_diagmat > &Y) |
| diagmat * diagmat | |
| template<typename T1 , typename T2 > | |
| arma_inline const Glue< T1, T2, glue_times > | operator* (const Base< typename T1::elem_type, T1 > &X, const Base< typename T1::elem_type, T2 > &Y) |
| multiplication of Base objects with same element type | |
| template<typename T1 , typename T2 > | |
| const mtGlue< typename promote_type< typename T1::elem_type, typename T2::elem_type >::result, T1, T2, glue_mixed_times > | operator* (const Base< typename force_different_type< typename T1::elem_type, typename T2::elem_type >::T1_result, T1 > &X, const Base< typename force_different_type< typename T1::elem_type, typename T2::elem_type >::T2_result, T2 > &Y) |
| multiplication of Base objects with different element types | |
//!
| arma_inline const eOp<T1, eop_scalar_times> operator* | ( | const Base< typename T1::elem_type, T1 > & | X, | |
| const typename T1::elem_type | k | |||
| ) |
Base * scalar.
Definition at line 28 of file operator_times.hpp.
References Base< elem_type, derived >::get_ref().
{
arma_extra_debug_sigprint();
return eOp<T1, eop_scalar_times>(X.get_ref(),k);
}
| arma_inline const eOp<T1, eop_scalar_times> operator* | ( | const typename T1::elem_type | k, | |
| const Base< typename T1::elem_type, T1 > & | X | |||
| ) |
scalar * Base
Definition at line 42 of file operator_times.hpp.
References Base< elem_type, derived >::get_ref().
{
arma_extra_debug_sigprint();
return eOp<T1, eop_scalar_times>(X.get_ref(),k); // NOTE: order is swapped
}
| arma_inline const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times> operator* | ( | const Base< typename T1::pod_type, T1 > & | X, | |
| const std::complex< typename T1::pod_type > & | k | |||
| ) |
non-complex Base * complex scalar (experimental)
Definition at line 56 of file operator_times.hpp.
References Base< elem_type, derived >::get_ref().
{
arma_extra_debug_sigprint();
return mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times>('j', X.get_ref(), k);
}
| arma_inline const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times> operator* | ( | const std::complex< typename T1::pod_type > & | k, | |
| const Base< typename T1::pod_type, T1 > & | X | |||
| ) |
complex scalar * non-complex Base (experimental)
Definition at line 73 of file operator_times.hpp.
References Base< elem_type, derived >::get_ref().
{
arma_extra_debug_sigprint();
return mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times>('j', X.get_ref(), k);
}
| arma_inline const Op<T1, op_trans2> operator* | ( | const typename T1::elem_type | k, | |
| const Op< T1, op_trans > & | X | |||
| ) |
scalar * trans(T1)
Definition at line 90 of file operator_times.hpp.
{
arma_extra_debug_sigprint();
return Op<T1, op_trans2>(X.m, k);
}
| arma_inline const Op<T1, op_trans2> operator* | ( | const Op< T1, op_trans > & | X, | |
| const typename T1::elem_type | k | |||
| ) |
trans(T1) * scalar
Definition at line 104 of file operator_times.hpp.
References Op< T1, op_type >::m.
{
arma_extra_debug_sigprint();
return Op<T1, op_trans2>(X.m, k);
}
| 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.
Definition at line 118 of file operator_times.hpp.
References Base< elem_type, derived >::get_ref().
{
arma_extra_debug_sigprint();
return Glue<T1, Op<T2, op_diagmat>, glue_times_diag>(X.get_ref(), Y);
}
| 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
Definition at line 132 of file operator_times.hpp.
References Base< T1::elem_type, Op< T1, op_type > >::get_ref().
{
arma_extra_debug_sigprint();
return Glue<Op<T1, op_diagmat>, T2, glue_times_diag>(X, Y.get_ref());
}
| arma_inline Mat< typename promote_type<typename T1::elem_type, typename T2::elem_type>::result > operator* | ( | const Op< T1, op_diagmat > & | X, | |
| const Op< T2, op_diagmat > & | Y | |||
| ) |
diagmat * diagmat
Definition at line 146 of file operator_times.hpp.
References upgrade_val< T1, T2 >::apply(), Mat< eT >::at(), promote_type< T1, T2 >::check(), Op< T1, op_type >::m, diagmat_proxy< T1 >::n_elem, and Mat< eT >::zeros().
{
arma_extra_debug_sigprint();
typedef typename T1::elem_type eT1;
typedef typename T2::elem_type eT2;
typedef typename promote_type<eT1,eT2>::result out_eT;
promote_type<eT1,eT2>::check();
const diagmat_proxy<T1> A(X.m);
const diagmat_proxy<T2> B(Y.m);
arma_debug_assert_mul_size(A.n_elem, A.n_elem, B.n_elem, B.n_elem, "matrix multiply");
const u32 N = A.n_elem;
Mat<out_eT> out(N,N);
out.zeros();
for(u32 i=0; i<N; ++i)
{
out.at(i,i) = upgrade_val<eT1,eT2>::apply( A[i] ) * upgrade_val<eT1,eT2>::apply( B[i] );
}
return out;
}
| arma_inline const Glue<T1, T2, glue_times> operator* | ( | const Base< typename T1::elem_type, T1 > & | X, | |
| const Base< typename T1::elem_type, T2 > & | Y | |||
| ) |
multiplication of Base objects with same element type
Definition at line 183 of file operator_times.hpp.
References Base< elem_type, derived >::get_ref().
{
arma_extra_debug_sigprint();
return Glue<T1, T2, glue_times>(X.get_ref(), Y.get_ref());
}
| const mtGlue< typename promote_type<typename T1::elem_type, typename T2::elem_type>::result, T1, T2, glue_mixed_times > operator* | ( | const Base< typename force_different_type< typename T1::elem_type, typename T2::elem_type >::T1_result, T1 > & | X, | |
| const Base< typename force_different_type< typename T1::elem_type, typename T2::elem_type >::T2_result, T2 > & | Y | |||
| ) | [inline] |
multiplication of Base objects with different element types
Definition at line 197 of file operator_times.hpp.
References promote_type< T1, T2 >::check(), and Base< elem_type, derived >::get_ref().
{
arma_extra_debug_sigprint();
typedef typename T1::elem_type eT1;
typedef typename T2::elem_type eT2;
typedef typename promote_type<eT1,eT2>::result out_eT;
promote_type<eT1,eT2>::check();
return mtGlue<out_eT, T1, T2, glue_mixed_times>( X.get_ref(), Y.get_ref() );
}