Marco,
Try to initialize matrix "T" in your multiplication algorithm to zeros. I attach a test run on your example without the boost unit test and with
matrix_type T=boost::numeric::ublas::zero_matrix<real_type>(A.size1(), B.size2());

compiled with:
g++ -O3 ublas_no_boost_unit_test.cpp -o test;

Very Best
Nasos Iliopoulos


> Date: Sat, 12 Sep 2009 11:15:08 +0200
> From: marco.guazzone@gmail.com
> To: ublas@lists.boost.org
> Subject: [ublas] uBlas bug or compiler bug?
>
> Dear all,
>
> Today I've found a strange behavior with uBlas.
> I've tried both Boost 1.37.0 (pre-installed on my Linux Fedora 11
> system) and Boost 1.40.0 (compiled by myself).
>
> I've attached the code (ublas.cpp) and the related makefile (ublas.mk)
> used for compiling (actually usable for gcc and alike). For people
> having the "make" command, simply run:
>
> $ make -f ublas.mk clean all
>
> You need the Boost.Test compiled libraries (see flag
> -lboost_unit_test_framework)
>
> Well, the problem.
> The code simply test some matrix operations: matrix-scalar product,
> matrix sum, matrix product.
> For each test, the computed value is checked against the expected
> value, with a certain tolerance TOL (=1.0e-5).
>
> When I run the code I get the seventeen errors in the matrix product
> test suite like the one below (the other sixteen are the same since
> the error always occurs a the same line):
> --- [snip] ---
> ublas.cpp(144): error in "matrix_matrix_prod": check std::fabs(*col_it
> - T(row,col)) <= TOL failed
> --- [/snip] ---
>
> But, and here is the *strange* behavior, if I comment both the
> "matrix_scalar_prod" and the "matrix_matrix_sum" test suites (lines
> from 22 to 94) the matrix product test suite (matrix_matrix_prod) is
> OK!!!
>
> Moreover commenting only the "matrix_matrix_sum" I get another
> different behavior, that is only four errors (with Boost 1.37) and two
> errors (with Boost 1.40); and if I comment only th
> "matrix_scalar_prod" the errors returns to be seventeen:
>
> Wow!! :(
>
> So I don't understand if this is a uBlas bug or a compiler bug ...or
> maybe something I do wrong with uBlas.
> My compiler is: GCC 4.4.1
>
> Can you try to run the attached code and give me a feedback?
>
> Many many thanks!!!
>
> Cheers,
>
> -- Marco


Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up now.