Michael Haggerty <m.haggerty@newton.cam.ac.uk> wrote:
>
>Dave Steffen <steffend@glitch.physics.colostate.edu> wrote:
>> Paul Beardsley wrote:
>>
>> > 1. What is the most extensively implemented library for
>> > matrix and vector classes at the moment, which uses the STL
>> > generic approach?
>>
>> The best one that I know of is called TNT. Check out
>> <http://math.nist.gov/pozo/tnt/> for more info. It's still in beta
>> testing, but I'm using parts of it and it works fine. Parts of it
>> are implemented directly on top of STL containers, and it has an
>> "STL-ish" flavor to it.
>
>I have an indirect comment about the search for a matrix library for
>C++, which might affect your decision.
>
>I have been using Roldan Pozo's previous C++ matrix library, called
>LAPACK++/MATRIX++, since it first came out a couple years ago. It
>still had some design flaws, some bugs, and wasn't template-based, but
>that was not so surprising for a beta product. I fixed enough of the
>problems to make it useful to me, and sent many bug fixes and
>suggestions to Roldan. I figured that over time it would become
>better and maybe even become a standard.
>
>Unfortunately that has not been the case. Development ceased after
>only a couple of releases, and has now been abandoned completely. It
>seems now (though this was not clear at the time) that the library was
>never meant to become a reliable, sturdy, supported foundation for
>real work (a la LAPACK itself), but rather a vehicle for the author's
>experimentation with numerical C++ matrix libraries.
>
>Since LAPACK++/MATRIX++ there has been another matrix package (MV++)
>by the same author that was apparently also developed for a while and
>then abandoned.
>
>My point is not that experimentation is bad, or that libraries should
>outlive their usefulness. But it is important to distinguish an
>experimental library from a usable one. And part of the process of
>evaluating a library for your own use should be an estimation of the
>likelihood that the library will be supported over the longer term. I
>will not start using another matrix library until I have that
>confidence.
>
>I hope that TNT will be supported over the long term, but I am
>sceptical. Does anybody have information whether it will or not?
>
>Michael
>
>--
>Michael Haggerty
>m.haggerty@newton.cam.ac.uk
Yes, I'm still working on TNT. I regularly get mail from about 100
people (1,500 downloads) and there are several applications based
on this library. However, you're absolutely right: the software is
still under development (v. 0.8.3) and all the standard disclaimers apply.
As for the previous packages (Lapack++, MV++, IML++, and SparseLib++)
I get about 10-15 messages per week on these and try to
reply to everyone. However, I have been encouraging users
to migrate to TNT, as it is the next incarnation of these
libraries. (Much the way LAPACK itself was a re-incarnation of LINPACK.)
The change is mainly due to progress: over the years, we have
learned much from our experience and the valuable feedback
of users. The C++ language itself has matured. We have found better
ways of doing things and have tried to incorporate this
into our software. At the same time, new features of the
language have allowed us to do things we couldn't do before.
Sometimes these ideas can be retrofitted into an existing
library, other times they really do need a new design from
the ground up.
Maybe I should have called these products Lapack++ 1.0, 2.0, 3.0,
and so on, but they really are different packages.
Another aspect of change is due to C++'s dirty little secret: portability.
In some ways, it is worse today than back in '92 when Lapack++
was first released. There are now about 5 versions of STL, all incompatible.
Compilers implement the ANSI document to varying degrees. Template support
is inconsistent. The ANSI specification itself has changed significantly
since the 94 release. (I could go on, but that's another essay...)
I mention this because, while Michael's point about the
longevity of C++ numerical software is very well taken, I'm afraid
that until ALL C++ compilers support the SAME standard language
and implementation (in PRACTICE, not just on paper), much of what we are
doing will remain --unfortunately-- largely experimental.
Portions of the TNT disclaimer read the same as they did in
the early days of Lapack++: basically, be aware; things are
changing; portability is difficult. And, oh yes, one line
is still intact verbatim from '92:
"The situtation is not ideal, but is improving..."
Best regards,
Roldan
---- Roldan Pozo Tel: (301) 975-4317 Mathematical and Computational Sciences Division Fax: (301) 990-4127 National Inst. of Standards and Technology Email: pozo@nist.gov Gaithersburg, MD 20899-0001 USA http://math.nist.gov/pozo
This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 03:20:05 EST