Skip to content

Possible bug in dgesdd routine #672

Open
@SzymonNowakowski

Description

@SzymonNowakowski

I believe I found a bug in LAPACK in svd(.) / dgesdd function:

Problem description

R routine svd(.) from LAPACK crashes in dgesdd on a full rank matrix with dimensions 5344x263.

Problem replication

library(Rfssa)
load_github_data("https://github.com/SzymonNowakowski/DMRnet/blob/testing_branch/data/crashes_svd.RData")
svd(crashes_svd)
Error in La.svd(x, nu, nv) : error code 1 from Lapack routine 'dgesdd'

But crashes_svd is a full rank matrix, it should decompose in svd(.):

> qr(crashes_svd)$rank
[1] 263
> dim(crashes_svd)
[1] 5344 263
EDIT 07/04/2022:
The above example (a matrix 5344x263) is minimal to reproduce the bug - If you remove a row or a column from that matrix, svd(.) successfully decomposes a resulting matrix into SVD components.
I have verified, that (in general) removing random rows or columns of that special matrix makes it pass the SVD, but one can also remove them in a certain order, obtaining a sequence of matrices failing SVD computation:

crashes_svd_col <- crashes_svd[, -51]         #removing the 51st column
svd(crashes_svd_col)
# Error in La.svd(x, nu, nv) : error code 1 from Lapack routine 'dgesdd'
crashes_svd <- crashes_svd[-393,]             #removing a sequence of rows: 393, 962, 642
svd(crashes_svd)
# Error in La.svd(x, nu, nv) : error code 1 from Lapack routine 'dgesdd'
crashes_svd <- crashes_svd[-962,]
svd(crashes_svd)
# Error in La.svd(x, nu, nv) : error code 1 from Lapack routine 'dgesdd'
crashes_svd <- crashes_svd[-642,]
svd(crashes_svd)
# Error in La.svd(x, nu, nv) : error code 1 from Lapack routine 'dgesdd'

END OF EDIT 07/04/2022

Software versions

Windows 7, R 4.2.0, LAPACK 3.10.0:

> La_version()
[1] "3.10.0"
> print(sessionInfo())

R version 4.2.0 (2022-04-22 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Windows 7, R 4.1.0, LAPACK 3.9.0:

> La_version()
[1] "3.9.0"
> print(sessionInfo())

R version 4.1.0 (2021-05-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Ubuntu 20.04, R 4.1.2, LAPACK 3.9.0:

> La_version()
[1] "3.9.0"
> print(sessionInfo())

R version 4.1.2 (2021-11-01)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.2 LTS

Checklist

  • I've included a minimal example to reproduce the issue
  • I'd be willing to make a PR to solve this issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions