Boost logo

Boost :

Subject: Re: [boost] different matrix library?
From: Rutger ter Borg (rutger_at_[hidden])
Date: 2009-08-17 03:02:10


joel wrote:

> NT2 as a as_matrix<T> function
>
> std::vector<float> u(100*100);
> // fill u somehow;
>
> matrix<float> r;
>
> r = cos(as_matrix(u)) * as_matrix(u);
>
> No copy of course of the original vector

Nice.

> Policies & lazy-typer.
>
> x = solve( as_matrix<settings(positive_definite)>(A), b );

Would it be possible to drop the user-unfriendly stuff? :-) Positive
definite alone already implies a vector.

x = solve( positive_definite( A ), b )

should do it :-)

> Well, don't forget SIMDifed C is faster than FORTRAN ;)

Of course, pick that, then :-) I guess CUBLAS will be faster than SIMD :-)

>> What I forgot to mention was error bounds and error propagation. For many
>> users this may be more important than speed. Many algorithms are
>> specialized for this purpose only (same speed, but higher precision).
>>
> Just drop them in various namespaces. NT2 has plan to have a set of
> toolbox in which the speed/precision trade-off avry while the base
> namespace has a middle ground implementation.

Not sure yet.

> There is nothing ahrd per se in those, it's just tedious considering the
> large number of variation.
 

I see NT2 is under LGPL. Are you considering submitting it for review /
changing the license. Suppose in that case I would like to contribute ~60k
lines of generated code to glue against (the whole of) BLAS and LAPACK.

But, I'm interested in the syntax, first. I think it is probably one of the
most important pieces for a user to accept/reject a library. Do you have
some documentation on how to write more complex expressions?

Cheers,

Rutger


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk