Looks great.  One thing that would be nice is if the B could support vectors as well as matrices.  Quite often you want to solve AX=b with b a ublas vector and don't want to convert between the two types.  I am not sure if there is the ability for the traits to treat a vector as an Nx1 matrix.  I assume this could use some kind of matrix adaptor or decoration to say whether it is an Nx1 vs. 1xN for conformability.

I assume that it will be based on some sort of traits similar to http://lists.boost.org/MailArchives/ublas/2009/03/3384.php  It would be nice if there was an equivalent decoration to these traits for calling this function so the user isn't forced to use a bunch of adaptors with every call.

I look forward to testing!



On Sun, Mar 22, 2009 at 7:08 AM, Rutger ter Borg <rutger@terborg.net> wrote:

Guys,

I've created an initial prototype for a high-level interface to solve. It
uses Boost.Parameter to allow a user to pass parameters by keyword;
low-level routines create a temporary pivot vector if not provided and
needed by that routine.

See below for the syntax, all expressions are valid.

#include <boost/numeric/bindings/lapack/solve.hpp>

using namespace lapack::keywords;

// basic usage
lapack::solve( A, B );
lapack::solve( A, B, _pivot = ipiv );

// this is also valid
lapack::solve( _B = B, _A = A );
lapack::solve( A, _pivot = ipiv, _B = B );

What we could use next is a good set of keywords/type decorators for
addressing all solve routines and expert driver options. Suggestions are
very welcome.

Cheers,

Rutger



_______________________________________________
ublas mailing list
ublas@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/ublas