# ISUPPZ value in LAPACK DSYEVR

I want to calculate my own system to some big real symmetric matrices and find a DSYEVR routine that should suit my needs.

```
dsyevr (JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO)
```

While enabling and testing this subroutine, I noticed a parameter `isuppz`

, which is an integer array of length `2*m`

, where it `m`

indicates the number of eigenvalues โโcalculated (which can vary depending on the input).

According to the documentation, an array `isuppz`

defines the position of non-zero elements in an array of eigenvectors `z`

. That is, in particular, `i`

the eigenvector has nonzero elements between the positions `isuppz(2*i-1)`

and `isuppz(2*i)`

.

Now I have a problem that this does not match my observations. For example. when calculating its own system to an exemplary size system, the `N=400`

second eigenvector has, according to `isuppz`

, only nonzero elements between the positions `349`

and `400`

. Looking at the eigenvector, I see that this is clearly not the case, and comparing with `Mathematica`

, I clearly see that it should not be either.

Actually, its own system `DSYEVR`

is basically the same as the original system designed for `Mathematica`

. As a result, I am assuming there is nothing wrong overall.

So what is the actual meaning of the parameter `isuppz`

?

source to share

No one has answered this question yet

Check out similar questions: