Boost logo

Ublas :

Subject: [ublas] Help with emerging standards for tiny vector/matrix libraries
From: Jesse Perla (jesseperla_at_[hidden])
Date: 2008-09-15 11:36:26


Hi:
Sorry to bombard people with questions the last few days...

What are people's current thoughts on a library for small vectors and
matrices that is "compatible" in semantics with ublas's approach?

1) Is it really necessary to have 2 separate libraries, or is ublas at most
2-3 times slower? I will take the performance hit for consistency if it
isn't that bad.
2) Should I really worry about heap vs. stack these days. I can't figure
out the memory management of ublas, but it doesn't seem like matrix data can
be declared on the stack, and I can't figure out good ways to initialize
ublas matrix/vector from data. A 101 question: My understanding of memory
management is poor (and as a library user I would be happy to keep it that
way), but I always thought that heap based memory can't be managed in the
cache in the same way as stack. Is this true, total nonsense, or are
compilers good enough these days that I shouldn't worry about it.
3) tvmet is mentioned on the ublas wiki. And of course there is blitz++.
Are there other key ones? What is the most popular and in active
development these days? (I would sacrifice bleeding edge for the likely
winner).
4) Is there an intention to put a small matrix library into boost?

The key use case here: A lot of my applications involve small fixed size
matricies and vectors for things like initial guesses for
solvers/optimizers, multiequation root finding, jacobians, etc. Sounds like
valarray is probably a good choice here, but really want a clean way to do
matricies/arrays with typical inner product, addition, etc. semantics.

-Jesse