Page 1 of 1

Problem in new ?sytri2 function

PostPosted: Thu Jan 27, 2011 12:59 am
by nmozarto
Problem in new function ?SYTRI2 was found: the part of A below the diagonal is changed in the case UPLO='U' .
But in the description of arguments
If UPLO = 'U', the upper triangular part of the
inverse is formed and the part of A below the diagonal is not
referenced
; if UPLO = 'L' the lower triangular part of the
inverse is formed and the part of A above the diagonal is
not referenced.


These elements zeroized after calling ?GEMM function in ?SYTRI2X.
CALL SGEMM('T','N',NNB,NNB,CUT,ONE,A(1,CUT+1),LDA,
$ WORK,N+NB+1, ZERO, A(CUT+1,CUT+1), LDA)


Also the error in the description of ?ORCSD/UNCSD functions
IWORK (workspace) INTEGER array, dimension (M-Q)
The dimension of IWORK is M actually.

Re: Problem in new ?sytri2 function

PostPosted: Fri Jan 28, 2011 7:20 pm
by admin
Thanks again, I just made the correction for ?SYTRI2x

Could you please confirm that everything runs smoothly on your side.

For the error in the description of ?ORCSD/UNCSD functions, I contacted the author of the routine.
Will keep you updated

Julie

Re: Problem in new ?sytri2 function

PostPosted: Mon Jan 31, 2011 12:18 pm
by admin
Correction was made for IWORK dimension in ?ORCSD/UNCSD

There was indeed an error but that the fix is
incorrect. The correct dimension is (M-R), in which R is the smallest
of P, M-P, Q, and M-Q.

An M-by-M matrix is partitioned into a 2-by-2 block structure. The
dimensions of the blocks are P-by-Q, P-by-(M-Q), (M-P)-by-Q, and
(M-P)-by-(M-Q). IWORK is involved in the permutation of rows or
columns of these blocks, and it is the largest block, in terms of
number of rows or columns, that determines the size of IWORK.

Julie