Boost logo

Ublas :

Subject: Re: [ublas] Testing the new bindings
From: Rutger ter Borg (rutger_at_[hidden])
Date: 2009-02-18 07:55:07


Jesse Perla wrote:
> In all circumstances, it says:
> 1>C
\working\libraries\boost\boost/numeric/bindings/lapack/driver/gesv.hpp(71):
> error: no instance of function template
> "boost::numeric::bindings::traits::vector_size" matches the argument list
> 1> argument types are: (int *)
> 1> assert( traits::vector_size(traits::vector_storage(ipiv)) >=
> 1> ^

I don't have compiler access right now, but looking at the code, please try
to change lines 71-72 from

        assert( traits::vector_size(traits::vector_storage(ipiv)) >=
                traits::matrix_size2(a) );

to

        assert( traits::vector_size(ipiv) >=
                traits::matrix_size2(a) );

This is a bug, I'll fix it in the generator.

> Do you expect that the interfaces to the direct drivers will stay fairly
> stable?  (i.e. gesv(matrixA, pivots, matrixB)?)  Will there be optimal
> workspaces generated for the direct drivers so you can call gesv(matrixA,
> matrixB)?

After all non-detected traits-deducable arguments have been removed, the
interface will remain stable. E.g., if a low-level driver contains an
argument UPLO or size of matrix A which is not detected, it will change. I
think most of the solve drivers are complete except for pivot vector
suppor. Pivots aren't really regarded as workspaces, but indeed gesv( A,
B ) will be made possible, either direct or through lapack::solve.

Thanks,

Rutger