Boost logo

Glas :

Re: [glas] [Mtl4] [crossposting] glas and mtl4 - what are the commons and differences

From: Peter Gottschling (pgottsch_at_[hidden])
Date: 2007-11-14 13:38:47


Hello Maik,

I don't think that one can reduce GLAS to a mere ublas successor
although there is some overlap in the developers (Toon Knappen also
worked on both projects). The main goal of GLAS is the development of a
common interface for algebraic software accompanied with a prototype
implementation. This is also described on the GLAS web page. And maybe
Karl will tell you more about it.

MTL4 is written with many ideas from MTL2. However, it was developed
from scratch. Some design choices were changed, e.g., MTL2 used shallow
copy assignment and MTL4 deep copy.

The differences between GLAS and MTL4 are mainly the priorities. While
GLAS primarily develops a common generic interface to other libraries
like BLAS, LAPACK, MTL not without providing its own code, MTL4 is
primarily a C++ library not without interfacing to other libraries. For
instance you can write A= B * C; in MTL4 and if possible the
multiplication is performed in BLAS otherwise in C++ with quite good
performance. (Unfortunately I haven't found the time to implement this
dispatching for other operations.)

Karl and I work very well together and I'm optimistic that the behavior
of both libraries will be well synchronized.

Regarding concepts you observed very well that we worked a lot on this
(in many cases together) and this will certainly be an important feature
of generic libraries in the future. Nevertheless, we both are currently
waiting for the compiler prototype to become more stable before
continuing with writing concept code. This is not meant as a critic on
conceptgcc, the work Doug Gregor did in the last year is ingenious but
not even a genius can do this in one year.

Otherwise we have to admit that both projects are still in an early
stage of development considered the gigantic mountain of work and the
rather limited human resources (so far).

I hope this answered your question a little bit.

Cheers,
Peter

Maik Beckmann schrieb:
> Hello dear mtl4 and glas people
>
> I know ublas,
> - http://www.boost.org/libs/numeric/ublas/doc/index.htm
> its potential successor glas (my impression)
> - http://sourceforge.net/projects/glas
> and since yesterday mtl4
> - http://www.osl.iu.edu/research/mtl/mtl4/
>
> ublas is the lib I use today. My impression is that glas is the implemented by
> peoples (mainly Karl Meerbergen) who worked on ublas and want to rewrite it
> from scratch with C++0x in mind.
>
> On the other side theres mtl4, which will be the successor mtl2 (mainly
> developed by Peter Gottschling).
>
> What are the common goals and what are the differences between both template
> libs?
>
> The first thing I noticed is that both started using C++0x concepts and it
> might be a good idea to share experiences on this very new area of C++
> programming.
>
> Another thing are blas/lapack backends like atlas. I think the numeric
> bindings contained by boost-sandbox do a very good job.
>
> Regards,
> - Maik Beckmann
> _______________________________________________
> MTL4 mailing list
> MTL4_at_[hidden]
> http://www.osl.iu.edu/mailman/listinfo.cgi/mtl4
>