DGEJSV workspace query

Post here if you would like to submit a feature request to the LAPACK or ScaLAPACK library

DGEJSV workspace query

Postby lawrence mulholland » Thu Aug 01, 2013 9:50 am

DGEJSV kind of breaks the Lapack mould by not providing a workspace query mechanism
despite LWKOPT being complicated to work out.

I have analyzed the code and have a piece of code that performs a full LQUERY
and exits immediately upon LWORK=-1 with LWKOPT in WORK(1).

This does require a small interface change in that WORK is currently declared as WORK(LWORK).
This could change to WORK(MAX(1,LWORK)) or, more correctly, WORK(*) since WORK is not
referenced when m=0 or n=0.

The current documentation is not sufficient to work out LWKOPT because some of the internal
blocksizes that could be used depend on mixtures of M and N as arguments (depending on
other DGEJSV argument values)

A workspace query here would allow the wrapping of DGESVJ in C with allocation of
WORK taking place internally. Users may also wish to write their own simpler Fortran
wrapper to DGESVJ that does the same. This is not currently possible if optimal performance
at the minimal allocated workspace is to be preferred.
lawrence mulholland
Posts: 25
Joined: Mon Jun 11, 2012 6:33 am
Location: NAG Ltd, Oxford, UK

Re: DGEJSV workspace query

Postby Julien Langou » Thu Aug 01, 2013 12:00 pm

Hi Lawrence, I agree with you that it would be best to have a workspace query mechanism for Jacobi SVD. Would you mind sending me your improved subroutines with workspace query. I think the interface change is acceptable. I will get Zlatko Drmac in the loop as well to get his take on this. Cheers, Julien.
Julien Langou
Posts: 835
Joined: Thu Dec 09, 2004 12:32 pm
Location: Denver, CO, USA

Return to Feature Request

Who is online

Users browsing this forum: No registered users and 2 guests