Boost logo

Ublas :

Subject: Re: [ublas] [bindings] How do I call the new gees? Why is it different from the old one?
From: Rutger ter Borg (rutger_at_[hidden])
Date: 2010-04-19 14:10:45


Paul Leopardi wrote:

> Hi Rutger,
> Sorry, I misread the post the first time. I now have that #include and I
> get the following error message complaining about
> gees_impl<double,void>::invoke.
>
> By the way, my code works fine with Bindings v1. It's just the current svn
> version that's giving me all these problems.
> Best, Paul

Hello Paul,

thanks for all the feedback so far! I am wondering: isn't geev more suited
for your job (or syev, or .. )? You don't seem to be using the Schur stuff.

I missed the point that you're calling an overload which is suited for
complex types only. I'll see if I can include an static assert / add
comments about that to the overloads.

The overload available for real types in MatrixA is:

gees( const char jobvs, const char sort, logical_t* select, MatrixA& a,
        int_t& sdim, VectorWR& wr, VectorWI& wi, MatrixVS& vs );

I do remember having seen something in the older bindings (interlace?) that
does stuff with complex/real vectors, but I am not sure if it was applied in
this case.

Admitted, the current binding interface do not yet contain that many
defaulting overloads. They do accept much more data types. And if it
compiles, it will most likely work, too. :-) The idea is that some high-
level interface can do all kinds of cool stuff with the bindings. Think of
libraries such as uBLAS, GLAS, MTL, etc.. Adding high-level functions to the
bindings is a lot of work; getting the bindings as robust as possible is a
first priority for me (and getting it to a RFC-status).

Cheers,

Rutger