Boost logo

Ublas :

Subject: Re: [ublas] FW: Help with Matrix Inversion
From: Romin Puri (rpuri6_at_[hidden])
Date: 2010-09-01 02:13:29


Hi Marco,

Actually you did find the problem. Please look at output files InvMatrix5
and InvMatrix5a. The input matrix is the same for both. The right answer is
in InvMatrix5, whereas InvMatrix5a contains NANs.

If you rearrange main so that Matrix5 and Matrix5a are inverted one after
the other - the resulting output files will be the same.

I had noticed that problem happens if a matrix of size greater than 30 is
inverted. The memory corruption is subtle. So I included a 963x963 matrix
because after an attempt to invert this, the memory is completely hosed. I
am glad to see that you reproduced it on Linux as well. So the issue is
cross platform.

Please let me know if you would like me to resend the source and data files
directly to you. Thank you so much for your help

Best regards

Romin
-----Original Message-----
From: ublas-bounces_at_[hidden] [mailto:ublas-bounces_at_[hidden]]
On Behalf Of Marco Guazzone
Sent: Tuesday, August 31, 2010 1:27 PM
To: ublas mailing list
Subject: Re: [ublas] FW: Help with Matrix Inversion

On Tue, Aug 31, 2010 at 8:41 PM, Romin Puri <rpuri6_at_[hidden]> wrote:
>
> Hi Marco,
>
> Could you please look at this

Hi Romin,

I've just tried with your files and "unfortunately" (for you) I didn't find
any problem.

I ran 3 tests:

1. Compiled with Boost dev version
2. Compiled with Boost 1.44 version
3. Compiled with Boost 1.43 version

and all worked fine (I send you as a private message the output files).
My testbed is:
* OS: Linux Fedora 13 x86_64 with GCC 4.4.4
* CPU: Intel Core 2 Duo T7500 (2.20GHz)
* MEM: 2GB RAM
Moreover I've compiled with the following flags:
    -Wall -Wextra -g -O0 -ansi -pedantic just to make sure that the code is
good enough for the "majority" of compilers.

Each test took ~15 minutes at nearly 100% CPU, with a max RAM peak of ~36MB.

So, I think your problem is a system (SW or HW) problem or maybe an old
version of Boost.

>
> Thanks
>
> Romin
>
> -----Original Message-----
> From: Romin Puri [mailto:rpuri6_at_[hidden]]
> Sent: Monday, August 30, 2010 5:37 PM
> To: 'ublas mailing list'
> Subject: RE: [ublas] Help with Matrix Inversion
>
> Hi Marco,
>
> I think I have a serious memory corruption issue. Unfortunately I do
> not have access to Purify or like otherwise I would have tracked it down.
>
> I am attaching test code for your preview along with data files
>
> 1. Each csv file is a hermitian matrix and is a subset of the next
> larger one.
> 2. I have included a 963x963 data file as the problem becomes more
> pronounced after this inversion.
>
> Please let me know if you know any additional information. Your help
> would be greatly appreciated. I am on boost release 1.43 and am still
> using Visual Studio 2005 on Windows 7 32-bit ( We are a very poor
startup).
>
> While it is very possible I am making a subtle mistake with my use of
> boost, your inputs would be greatly appreciated.
>
>
> Thank you very much for your help
>
> Best regards
>
> Romin
>
> -----Original Message-----
> From: ublas-bounces_at_[hidden]
> [mailto:ublas-bounces_at_[hidden]]
> On Behalf Of Marco Guazzone
> Sent: Friday, August 27, 2010 1:29 AM
> To: ublas mailing list
> Subject: Re: [ublas] Help with Matrix Inversion
>
> On Fri, Aug 27, 2010 at 4:32 AM, Romin Puri <rpuri6_at_[hidden]> wrote:
>> I am using the code as outlined in this link
>>
>> http://savingyoutime.wordpress.com/2009/09/21/c-matrix-inversion-boos
>> t
>> ublas/
>>
>> and trying out Hermition matricies of different sizes to get
>> timings/memory requirements. The requirement is to solve a NxN where
>> N =
> 1000.
>>
>> While Matrix sizes upto N =30 work just fine, at N=50 I get this
>> error. The data set is the same (truncated to ensure that Hermitian
>> Matrix is of the desired size).
>>
>> Check failed in file c:\program
>> files\boost\boost_1_43_0\boost\numeric\ublas\lu.hpp at line 294:
>> detail::expression_type_check (prod
>> (triangular_adaptor<const_matrix_type,
>> upper> (m), e), cm2)
>> internal logic "
>>
>> Any pointers would be most helpful.
>>
>
> Hi,
>
> Don't know the cause of your problem, but if you submit a full working
> c++ test file I can give you a check.
>

Best,

-- Marco
_______________________________________________
ublas mailing list
ublas_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: rpuri6_at_[hidden]