- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

Would you please read the scalapack document :

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

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page