Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix workspace query for *syevd and *heevd routines #691

Conversation

neil-lindquist
Copy link

Description

The optimal workspace for dsytrd is n*nb where nb is the blocksize provided by ilaenv. However, when dsyevd is called with lwork=-1, the requested workspace size is only 2*n + nb (2*n is needed to hold the tridiagonal matrix).
So, dsyevd will use the unblocked dsytrd unless the user knows to provide extra workspace, regardless of how well ilaenv is tuned.

The issue is also present in ssyevd, cheevd, and zheevd.

This PR corrects dsyevd et al. to request enough workspace to use a blocked tridiagonal reduction.

Checklist

  • The documentation has been updated.
  • If the PR solves a specific issue, it is set to be closed on merge.

Copy link
Collaborator

@weslleyspereira weslleyspereira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @neil-lindquist!

@weslleyspereira weslleyspereira merged commit 3995eac into Reference-LAPACK:master Jul 14, 2022
@julielangou julielangou added this to the LAPACK 3.11.0 milestone Nov 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants