DBDSDC returns non-orthogonal U

Post here if you want to report a bug to the LAPACK team

DBDSDC returns non-orthogonal U

Postby duncanpo » Mon Apr 04, 2011 11:41 am


I have come across a case when DBDSDC returns U and VT outputs that are not quite orthogonal in LAPACK 3.3.0. See the attached test program.
For this particular matrix in the test, UT*U has elements in the order of 1e-9. I am expecting if U is orthogonal, UT*U should be at round-off level, in the order of 1e-16.
Note this behavior is only seen in LAPACK 3.3.0. In LAPACK 3.2, DBDSDC returns INFO>0 as it fails to converge.


(79.83 KiB) Downloaded 69 times
Posts: 4
Joined: Fri Apr 01, 2011 5:09 pm

Re: DBDSDC returns non-orthogonal U (*updated*)

Postby rodney » Tue Apr 05, 2011 2:58 pm

This problem can apparently be fixed by changing line 290 in dbdsdc.f:

- EPS = DLAMCH( 'Epsilon' )
+ EPS = 0.9*DLAMCH( 'Epsilon' )

The LAPACK SVN repository has been updated with this change for dbdsdc.f

The test problem with this change returns:

Info from dbdsdc is: 0
max difference between u'*u and identity matrix is: 2.22045e-15

(edited 7 April to reflect the improved fix that is now included in the svn repository)

Posts: 49
Joined: Thu Feb 10, 2011 8:20 pm
Location: Colorado College

Return to Bug report

Who is online

Users browsing this forum: No registered users and 3 guests