Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6828 Discussions

## question about the manual of scalapack Beginner
163 Views

The parameter "lwork" of the function pdsyevr can be determined by some formula.

I don't understand some of the formula:

why the subscript is decreased by 1,e.g., mb_ -1?

what is csrc_nb_? I can not find it in the manual.

nb = desca[ mb_ - 1] = desca( nb_ ) = descz[ mb_ - 1] = descz( nb_ )

desca[ rsrc_ - 1] = desca[ csrc_nb_ - 1] = descz[rsrc_ - 1] = descz[csrc_ - 1] = 0

2 Replies Employee
163 Views

Hi Ye,

Thanks for reporting this.  It is doc bug, we will fix them in later release.

The -1  is introduced here because in c arrays are indexed from 0, not 1 link in Fortran.  But as in C documentation, the desca[mb_] is "desca[mb_-1]", so it is not needed. “-1” is introduced here because this is a C documentation. In C arrays are indexed from 0, not 1 like in Fortran.

nb = desca[ mb_ ] = desca( nb_ ) = descz[ mb_ ] = descz( nb_ )

desca[ rsrc_]  = desca[ csrc_] = descz[rsrc_ ] = descz[csrc_ ] = 0

Best Regards,
Ying Beginner
163 Views

Ying H. (Intel) wrote:

Hi Ye,

Thanks for reporting this.  It is doc bug, we will fix them in later release.

The -1  is introduced here because in c arrays are indexed from 0, not 1 link in Fortran.  But as in C documentation, the desca[mb_] is "desca[mb_-1]", so it is not needed. “-1” is introduced here because this is a C documentation. In C arrays are indexed from 0, not 1 like in Fortran.

nb = desca[ mb_ ] = desca( nb_ ) = descz[ mb_ ] = descz( nb_ )

desca[ rsrc_]  = desca[ csrc_] = descz[rsrc_ ] = descz[csrc_ ] = 0

Best Regards,
Ying

http://www.netlib.org/scalapack/explore-html/d3/d6c/pdsyevr_8f_source.html

In the website, I see the formula is

```DESCA( RSRC_ ) = DESCA( NB_ ) = DESCZ( RSRC_ ) =
00180 *                              DESCZ( CSRC_ ) = 0```

, which is different from the one you present. Which one is correct?

Thanks 