Boost logo

Ublas :

Subject: [ublas] Algorithm used for uBlas's matrix multiplication
From: Yue Li (xyly781_at_[hidden])
Date: 2010-02-01 22:08:35


Hi, everyone,

I'm pretty new to Boost and BLAS, I'm currently trying to use boost's
ublas to do a simple matrix multiplication, and compare its
performance with other hand coded versions.

Therefore, I need to look at the implementation of prod in Boost, I
tried to looked at /boost/numeric/ublas/matrix_expression.h, and I
found the following:

    template<class E1, class E2>
    BOOST_UBLAS_INLINE
    typename matrix_matrix_binary_traits<typename E1::value_type, E1,
                                         typename E2::value_type,
E2>::result_type
    prod (const matrix_expression<E1> &e1,
          const matrix_expression<E2> &e2,
          unknown_storage_tag,
          unknown_orientation_tag) {
        typedef typename matrix_matrix_binary_traits<typename
E1::value_type, E1,
                                                     typename
E2::value_type, E2>::expression_ty\
pe expression_type;
        return expression_type (e1 (), e2 ());
    }

But this only creates a matrix expression representing the
multiplication, and result will be out by calling the evaluation
function. I would really like to look that evaluation function to
understand the multiplication algorithm implemented in Boost, but
still could not find one.

Here could any one point me to the right direction to look at?

Thanks for your help,

Yue