Re: Banded matrix storage

Nasos Iliopoulos <[email protected]>
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <[email protected]>
To all:
it would be of great help if at least another pair of eyes can review 
the code before it moves forward into an official release. Here is the 
github branch:

modified test cases (added non square matrices):
https://github.com/uBLAS/ublas/blob/ublas_bugfix0002_fix_banded_tc7549/test/test_banded_storage_layout.cpp

and modified banded.hpp:
https://github.com/uBLAS/ublas/blob/ublas_bugfix0002_fix_banded_tc7549/include/boost/numeric/ublas/banded.hpp

relevant lines are 25-56 and and anything that contains the 
"banded_indexing" specializations.

One important change I  made relatively to the old code is that I 
enabled range checking only in debug builds (where appropriate).

Please also note that I didn't follow Gunter's suggestion on adding a 
new template argument, since I felt it would break backwards 
compatibility in certain cases. 
(https://svn.boost.org/trac/boost/ticket/7549)


test instructions (not final but they should work):
https://github.com/uBLAS/ublas/wiki
please do a  git checkout ublas_bugfix0002_fix_banded_tc7549 prior to 
compiling with b2 otherwise you will be compiling the master branch.

I will megre it into ublas_develop after 1-2months so that there is 
enough time for review and maybe apply some minor modifications I have 
in mind.

On 08/01/2013 01:05 PM, [email protected] wrote:
> PS: Although I asked a very-related question, I did not see any answer, so I thought it was ignored as
> trivial/already answered elsewhere. However, I did receive these very relevant emails. Am I doing something wrong ?
Petro,
Gunter had created some test cases and a bug report on boost trac, so I 
figured it would help the discussion more to answer to that thread. I 
restrained myself flooding the mailing list with responses, since yours 
was just around the corner.

Best,
Nasos
> ---- Rutger ter Borg <[email protected]> wrote:
>> On 2013-07-31 17:22, Nasos Iliopoulos wrote:
>>> Gunter,
>>> I am working on this bug, but based on the test case I am wondering why
>>> should the expected row-major data layout be:
>>>
>>> 0, 0, 11, 12, 0, 21, 22, 23, 31, 32, 33, 34, 42, 43, 44, 45, 53, 54, 55, 0
>>>
>>> And not
>>>
>>> 0, 12, 23, 34, 45, 11, 22, 33, 44, 55, 21, 32, 43, 54, 0, 31, 42, 53, 0, 0 ?
>>>
>>> For the moment I got the column-major implementation working as
>>> expected, but I need to add some more tests cases to make sure it is
>>> working for non-square matrices as well.
>>>
>>> Regards,
>>>
>>> -Nasos
>>>
>>
>> Hey Nasos,
>>
>> great work. The data in banded matrices is stored either row-by-row
>> (row-major), or column-by-column (column-major). This is defined by
>> netlib. AFAIK, a diagonal-by-diagonal storage scheme is not supported by
>> CBLAS.
>>
>> Cheers,
>>
>> Rutger
>>
>>
>>
>> _______________________________________________
>> ublas mailing list
>> [email protected]
>> http://lists.boost.org/mailman/listinfo.cgi/ublas
>> Sent to: [email protected]
> _______________________________________________
> ublas mailing list
> [email protected]
> http://lists.boost.org/mailman/listinfo.cgi/ublas
> Sent to: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.