Re: Who uses clapack?

From: Jentje Goslinga (goslinga_at_telus.net)
Date: 12/12/04


Date: Sun, 12 Dec 2004 20:09:15 GMT


Bill Shortall wrote:
> "Victor Eijkhout" <see.sig@for.addy> wrote in message
> news:1gokv1s.16zyrkl1ytczkbN%see.sig@for.addy...
>
>>Tino <tino52@yahoo.com> wrote:
>>
>>
>>>On a slightly related note, is there any effort (or even thought) being
>>>put into the development of a "standardized" C++ object-oriented LAPACK
>>>library? Something to wrap around the BLAS and LAPACK, perhaps?
>>
>>The thought has occurred to many people. I mean, passing LDA into a C++
>>routine is the programming equivalent of turning a crank handle on the
>>space shuttle. Now, what to do about it....
>>
>>I've started looking at Sidl/Babel to get a more native looking
>>interface in other languages than F77. Not sure to what extent that will
>>satisfy you.
>>
>>V.
>>--
>>email: lastname at cs utk edu
>>homepage: www cs utk edu tilde lastname
>
>
> Hi Victor,
>
> For the last few years I have been working on a
> set of C++ classes to do linear algebra. I was trying to
> acheive most of the functionality of Lapack/Blas but
> in a very user friendly fashion. The classes center
> arround a general purpose vector class along with a dense rectangular Matrix
> class and then some more compilcated classes like a vector of vectors and
> vector of matrices.
> All of them use operator overloading so you can write
> A = B + C * D where A,B,C, D are matrices and all of the operators
> work for both real and complex matrices.

This is not a very common operation which I have only
encountered when working with block matrices.
C++ is a powerful language but the simple algebra of
Matrices, vectors and Scalars is sufficiently complex
that using C++ shorthand notation is not always possible.
Have you looked at OON, the Object Oriented Numerics
Group?

  Akll of the basic Linear algebra
> functions are supported
> ie solution of equations, decompositions, SVD eigenvectors etc. etc.
> The entire library is less than 5000 lines of code

You must be kidding, by the time I am done with Schur, SVD
and Block Reflector, I will have 25-30k lines of C and a few
thousand lines of Intel Assembler. And that is without Linear
Equations or Complex Data type.
And it is including testing modules for everything.

> and compiles into a static library of ~~ 3 megabytes

Isn't that a bit large? My executable which contains all of
the said factorizations and comprehensive testing software
weighs in at 76 kilobytes. You generate 40 times the object
code with one fifth the code, a factor 200!

> You don't have to compile it but you will need either a
> Miccrosoft VC6 or Linux GCC compiler to use it.
> I have demo version available and if anyone in the group wants to play
> with it and has a compatible compiler send me a line. Once you've used it
> you will never go back to LAPACK
> pecos@cminet.net
> regards...Bill

Have you tested those functions by constructing pathological
matrices from their eigenvalues (for symmetric matrices)
or from their singular values (in the case of the SVD) and
likewise for Linear Equations and evaluated the accuracy?

Jentje Goslinga



Relevant Pages

  • Re: Who uses clapack?
    ... >>interface in other languages than F77. ... You must be kidding, by the time I am done with Schur, SVD ... And that is without Linear ... > with it and has a compatible compiler send me a line. ...
    (comp.lang.fortran)
  • Re: Who uses clapack?
    ... >>interface in other languages than F77. ... You must be kidding, by the time I am done with Schur, SVD ... And that is without Linear ... > with it and has a compatible compiler send me a line. ...
    (comp.lang.c)
  • Re: Why C?
    ... > C programs can be as fast as a compiler can make them, ... > programs in other languages. ... > lurking bugs and inappropriate data types in any existing C code. ... With only a different declaration syntax it would be much ...
    (comp.os.linux.development.apps)
  • Re: Why do folks implement statically typed languages?
    ... The languages discussed are extremes. ... It allows the compiler to prove that your data-manipulations are ... an IDE for a dynamically-typed language can ... to IDEs in dynamically-typed languages. ...
    (comp.lang.scheme)
  • Re: arithmetic on a void * pointer
    ... Using norms from the realm of natural languages isn't necessarily ... the sizeof a void pointer is the sizeof the smallest unit of memory. ... It would be nice to think, however, that both compiler writers *and* ... here the Register. ...
    (comp.lang.c)