Boost logo

Ublas :

Subject: Re: [ublas] Matrix with vector interface.
From: Oswin Krause (Oswin.Krause_at_[hidden])
Date: 2012-09-22 04:57:01


Hi,

Here is my slightly adapted version of the range. I didn't find the
boost coding guidelines so i just tried to fit it to other ublas
headers(with limited success). Since i am not breathing standardese, I
am not sure whether i am 100% correct in every aspect.

Out of standard reasons, the implementation using proxy objects like
matrix_row does not lead to a random_access_iterator even though it
meets all traversal requirements. So algorithms like random_shuffle(and
sort(?)) will work in practice but overeager compilers as for example
MSVC will complain in debug mode. A solution to this is lying about the
iterator category, but since i am a honest person, i don't ;)

the implementation comes with a short test case, but i can also add a
bit more if required.

----
Than maybe a note should be added to the documentation stating that 
uBLAS is outdated and should not be used for new projects. Maybe this 
leads to a bit of drive to the development ;).
Even though i would volunteer to work on a new version and already have 
some ideas, uBLAS is just too big for me. It surpasses most BLAS 
Libraries in the amount features while calling itself "micro"-BLAS. (I 
think, this is one of the main sources of the problem. remove half of 
the features, call it nano-BLAS and ensure a good implementation).
Gretings,
Oswin
On 2012-09-21 23:51, Gunter Winkler wrote:
> Hello,
>
> Am Tuesday 18 September 2012 schrieb Oswin Krause:
>> Hi,
>>
>> > Regarding uBlas: Long time ago there was a design decision to not
>> > handle
>> > a matrix as a set of vectors in order to avoid bad surprises when
>> > playing with the storage layout and iteration order. However, I'd
>> > gladly
>> > accept a new matrix view as list of vectors using boost:range .
>>
>> So a matrix which also behaves as a range? or just a range adaptor
>> which maps a matrix_expression to a range_of_vectors which isn't
>> interpreted as matrix_expression anymore?
>
> 2nd option sounds good.
>
>> Having said that: are there any plans for an ublas2? Or something
>> like that? At the moment the advise i hear a lot from people having
>> looked at ublas is: "don't use it. There are many better libraries
>> our there". I don't think that this is an ideal state for a boost
>> library :/.
>
> Yes, you're right:
> * The uBLAS code is more than 10 years old, and little progress was 
> made
> during last 5 years.
> * There is no active developer (just check the list of open issues 
> ^^)
> * There is no active maintainer (There is a good chance that I
> "disappear" again when 1.52 is done ...)
> * There are really good alternatives out there which outperform uBLAS 
> by
> far
>
> Thus we are stuck unless we find a university which develops yet 
> another
> matrix library (compatible to uBLAS interface) or starts a full 
> rewrite
> of uBLAS' internal logic.
>
> mfg
> Gunter