Page 1 of 1

LAPACKE interface to ?ORCSD is not fully functional

PostPosted: Wed Jul 08, 2015 11:53 pm
by Victor_K
?ORCSD subroutine has the following interface
?ORCSD (JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, U1, LDU1, U2, LDU2, V1T, LDV1T, V2T, LDV2T, WORK, LWORK, IWORK, INFO)
and it uses array WORK to store output parameters if computations failed:

work(2:r) contains the values phi(1), ..., phi(r-1) that, together with theta(1), ...,theta(r) define the matrix in intermediate
bidiagonal-block form remaining after nonconvergence.

LAPACKE interface LAPACKE_dorcsd omits WORK array:
lapack_int LAPACKE_dorcsd( int matrix_order, char jobu1, char jobu2,
char jobv1t, char jobv2t, char trans, char signs,
lapack_int m, lapack_int p, lapack_int q,
double* x11, lapack_int ldx11, double* x12,
lapack_int ldx12, double* x21, lapack_int ldx21,
double* x22, lapack_int ldx22, double* theta,
double* u1, lapack_int ldu1, double* u2,
lapack_int ldu2, double* v1t, lapack_int ldv1t,
double* v2t, lapack_int ldv2t )

So, there is no way to provide the info as it is done via Fortran interface

Similar problem for ?UNCSD which returns unconverged values in the array rwork which also missed in the interface LAPACKE_?uncsd

Re: LAPACKE interface to ?ORCSD is not fully functional

PostPosted: Thu Jul 09, 2015 10:54 pm
by admin
Thank you Victor,
This bug has been listed as bug 127 in http://www.netlib.org/lapack/Errata/index2.html
Julie

Re: LAPACKE interface to ?ORCSD is not fully functional

PostPosted: Mon Jul 18, 2016 5:07 am
by dklyuchi
Hello!

Could you explain why it is not a bug?

It is applied at "Bugs corrected from 3.6.0 to 3.6.1"

Please see, bug 127 at: http://netlib.org/lapack/errata_from_36 ... urn_values


Dmitriy