Boost logo

Ublas :

Subject: [ublas] [bindings] Lapack solve interface
From: Rutger ter Borg (rutger_at_[hidden])
Date: 2009-01-22 05:15:24

Dear all,

with 98% of the driver and ~80% of the computational routines passing
compiler inspection (this means a couple more changes to, I would like to propose that
we start with defining an interfaces for lapack problems, one at a time,
starting with solve for linear equations (should this include

Please find attached a first rough draft for routine dispatching as could be
done in solve.hpp. To make this really work it will take some more time,
e.g., improving support for banded/packed matrices in the matrix_traits
classes, in the generator script, keeping track of which routines actually
need workspaces, etc..

I have started to look at the simple driver routines, considering the
following bindings with their arguments

gesv: A, B, IPIV
gbsv: A, B, IPIV
gtsv: A, B
hesv: A, B, IPIV
hpsv: A, B, IPIV
posv: A, B
ppsv: A, B
pbsv: A, B
ptsv: A, B
sysv: A, B, IPIV
spsv: A, B, IPIV

could be written as (for example)

lapack::solve( A, B ); // some default for ipiv needed
lapack::solve( A, B, ipiv );
lapack::solve( positive_definite( A ), B );

Please feel free to extend this list as exhaustive (and compact at the same
time) as possible.