
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