ilaenv2stage(3)

πŸ’– ilaenv2stage(3) πŸ’–

okay so bestie, welcome to ilaenv2stage(3) β€” this is the Library Functions Manual page for it, and honestly? it's the tuning-parameters main character of the 2-stage eig world. no cap. πŸŽ€


✨ NAME ✨

ilaenv2stage β€” literally the function for tuning parameters for 2-stage eig. that's the whole vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

🌈 Functions

integer function ilaenv2stage (ispec, name, opts, n1, n2, n3, n4)

ILAENV2STAGE β€” that's her. πŸ‘‘


πŸ’œ Detailed Description πŸ’œ

🧚 Function Documentation

integer function ilaenv2stage (integer ispec, character*( * ) name,
    character*( * ) opts, integer n1, integer n2, integer n3, integer n4)

ILAENV2STAGE 🫢

πŸ’« Purpose:

so here's the tea, straight from the source:

!>
!> ILAENV2STAGE is called from the LAPACK routines to choose problem-dependent
!> parameters for the local environment.  See ISPEC for a description of
!> the parameters.
!> It sets problem and machine dependent parameters useful for *_2STAGE and
!> related subroutines.
!>
!> ILAENV2STAGE returns an INTEGER
!> if ILAENV2STAGE >= 0: ILAENV2STAGE returns the value of the parameter
!>                       specified by ISPEC
!> if ILAENV2STAGE < 0:  if ILAENV2STAGE = -k, the k-th argument had an
!>                       illegal value.
!>
!> This version provides a set of parameters which should give good,
!> but not optimal, performance on many of the currently available
!> computers for the 2-stage solvers. Users are encouraged to modify this
!> subroutine to set the tuning parameters for their particular machine using
!> the option and problem size information in the arguments.
!>
!> This routine will not function correctly if it is converted to all
!> lower case.  Converting it to all upper case is allowed.
!>

read that again bestie β€” good, but not optimal. it's giving "good enough for a first date" energy, and the authors are literally begging you to go in and tune it yourself for your own machine using the option and problem size info in the arguments. do with that what you will. πŸ’…

⚠️ and the big one: this routine will not function correctly if it is converted to all lower case. converting it to all upper case is allowed. so like… don't lowercase her, she'll break. 😭

πŸ“ Parameters

  • ISPEC β€” it's an INTEGER, and it picks which parameter you get back from ILAENV2STAGE:
    • = 1: the optimal blocksize nb for the reduction to BAND
    • = 2: the optimal blocksize ib for the eigenvectors singular vectors update routine
    • = 3: The length of the array that store the Housholder representation for the second stage Band to Tridiagonal or Bidiagonal
    • = 4: The workspace needed for the routine in input.
    • = 5: For future release.
  • NAME β€” it's a CHARACTER*(*). the name of the calling subroutine, in either upper case or lower case (see the warning above though πŸ‘€).
  • OPTS β€” it's a CHARACTER*(*). the character options to the subroutine NAME, concatenated into a single character string. for example, UPLO = 'U', TRANS = 'T', and DIAG = 'N' for a triangular routine would be specified as OPTS = 'UTN'. iconic string-gluing behavior fr fr. 🧚
  • N1 β€” it's an INTEGER. that's it, that's the bullet. πŸ¦‹
  • N2 β€” it's an INTEGER. also just vibing. πŸ¦‹
  • N3 β€” it's an INTEGER. still here. πŸ¦‹
  • N4 β€” it's an INTEGER. problem dimensions for the subroutine NAME; these may not all be required. so like, some of them are just there for moral support. πŸ™ˆ

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.
  • Nick R. Papior

the whole squad showed up. we love a collab. πŸ”₯


⭐ Further Details:

the conventions used when calling ILAENV2STAGE from the LAPACK routines, word for word:

!>
!>  The following conventions have been used when calling ILAENV2STAGE
!> from the LAPACK routines:
!>  1)  OPTS is a concatenation of all of the character options to
!>      subroutine NAME, in the same order that they appear in the
!>      argument list for NAME, even if they are not used in determining
!>      the value of the parameter specified by ISPEC.
!>  2)  The problem dimensions N1, N2, N3, N4 are specified in the order
!>      that they appear in the argument list for NAME.  N1 is used
!>      first, N2 second, and so on, and unused problem dimensions are
!>      passed a value of -1.
!>  3)  The parameter value returned by ILAENV2STAGE is checked for validity in
!>      the calling subroutine.
!>
!>

so: OPTS = everything concatenated in argument-list order even if it's not used for your ISPEC β€” yes, even the unused ones, she wants the full set. N1 through N4 go in argument-list order too, and any dimension you don't use gets a -1. and the value that comes back gets validity-checked by whoever called you. teamwork baby. 🫢


πŸ“Œ Definition at line 148 of file ilaenv2stage.f.


πŸŽ€ Author πŸŽ€

Generated automatically by Doxygen for LAPACK from the source code. (not a real person, just the doc machine doing its thing πŸ’€)


and that's the whole page, bestie β€” go forth and tune those 2-stage solvers πŸ’–βœ¨

LAPACK, Version 3.12.0 β€” that's the version and that's the date stamp, so consider this the cute little sign-off: LAPACK Version 3.12.0, ilaenv2stage(3), see you in the group chat πŸ¦‹πŸ’….

πŸ“¦ where this page comes from