|
Ublas : |
From: Jeremy Conlin (jeremit0_at_[hidden])
Date: 2008-06-05 13:31:24
I have made some improvements to the LAPACK binding to the HSEQR function,
taking into account the suggestions by Karl and Thomas. The use of
templated structs to differentiate between complex and double arguments was
very helpful.
Karl suggested using workspaces to allow the use of BLAS3 calls. HSEQR has
the ability to calculate the optimal workspace size when called with
specific parameters. For this reason, I decided not to use the workspaces,
but just asked HSEQR to tell indicate what the size should be. Similar
functionality is in GEEV and I tried to follow the example there. Please
correct me if my assumption is incorrect.
Finally, I'm still having some troubles and I was hoping someone could help
me understand where the problem is. I am trying to pass a pointer to a
complex matrix. I tried using traits::complex_ptr(Z) (where Z is the
complex matrix), but that only passes a double* instead of
traits::complex_d*.
It's probably best to show this specifically with my code. I have attached
my hseqr.hpp file. The calls to hseqr_backend from the Hseqr<2> struct
compile just fine, but the calls from the Hseqr<1> struct don't compile and
give the error messages in the file mk.tmp. Can someone help me understand
how to fix this?
Thanks again,
Jeremy