Boost logo

Ublas :

Subject: Re: [ublas] [bindings] New traits system
From: Jesse (jesseperla_at_[hidden])
Date: 2010-01-10 14:36:49


Rutger ter Borg <rutger <at> terborg.net> writes:
> I've made another update to gelsd which hopefully fixes this assertion (it's
> committed). The regression for gelsd didn't actually pass either, although
> running the regression showed "*passed*".

Not working for me yet, but I did a little more digging. The problem is before
with the size of the iwork: size(work.select(fortran_int_t()))

Looking inside of the "work" object here, the real part of the work structure
has size 865, where the integer part of work has the above has
size: -858993460

Jumping to line 205ish in gelsd, where we call lapack to get the optimal
sizes, this is the number coming out of the gelsd call.

Going back even further to line 66 I see the following call to LAPACK_DGELSD(
(m=6, n=3, *nrhs=1, a valid ptr, *lda = 6, b valid ptr,
*ldb=6, s looks valid, rcond, rank look fine
work[0] = kosher initalization garbage, lwork = -1, iwork[0] = -858993460)

After the call:
work[0] = 865
iwork[0] = -858993460,
info=0

So basically, the opt_size_iwork comes out in the invoke as
-858993460, which cascades later.

Forgive my lack of knowledge about LAPACK if this is all irrelevant.

A few notes on my setup:
* I didn't use any typedefs, configuration, etc. for setup.
* I am using an IA32 build in Intel 11.1 Windows.
* typedef int fortran_int_t; is set