--- 
:name: slarrf
:md5sum: 04503ebe32bcc573b80d9d85b4382ab2
:category: :subroutine
:arguments: 
- n: 
    :type: integer
    :intent: input
- d: 
    :type: real
    :intent: input
    :dims: 
    - n
- l: 
    :type: real
    :intent: input
    :dims: 
    - n-1
- ld: 
    :type: real
    :intent: input
    :dims: 
    - n-1
- clstrt: 
    :type: integer
    :intent: input
- clend: 
    :type: integer
    :intent: input
- w: 
    :type: real
    :intent: input
    :dims: 
    - clend-clstrt+1
- wgap: 
    :type: real
    :intent: input/output
    :dims: 
    - clend-clstrt+1
- werr: 
    :type: real
    :intent: input
    :dims: 
    - clend-clstrt+1
- spdiam: 
    :type: real
    :intent: input
- clgapl: 
    :type: real
    :intent: input
- clgapr: 
    :type: real
    :intent: input
- pivmin: 
    :type: real
    :intent: input
- sigma: 
    :type: real
    :intent: output
- dplus: 
    :type: real
    :intent: output
    :dims: 
    - n
- lplus: 
    :type: real
    :intent: output
    :dims: 
    - n-1
- work: 
    :type: real
    :intent: workspace
    :dims: 
    - 2*n
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE SLARRF( N, D, L, LD, CLSTRT, CLEND, W, WGAP, WERR, SPDIAM, CLGAPL, CLGAPR, PIVMIN, SIGMA, DPLUS, LPLUS, WORK, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  Given the initial representation L D L^T and its cluster of close\n\
  *  eigenvalues (in a relative measure), W( CLSTRT ), W( CLSTRT+1 ), ...\n\
  *  W( CLEND ), SLARRF finds a new relatively robust representation\n\
  *  L D L^T - SIGMA I = L(+) D(+) L(+)^T such that at least one of the\n\
  *  eigenvalues of L(+) D(+) L(+)^T is relatively isolated.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          The order of the matrix (subblock, if the matrix split).\n\
  *\n\
  *  D       (input) REAL array, dimension (N)\n\
  *          The N diagonal elements of the diagonal matrix D.\n\
  *\n\
  *  L       (input) REAL array, dimension (N-1)\n\
  *          The (N-1) subdiagonal elements of the unit bidiagonal\n\
  *          matrix L.\n\
  *\n\
  *  LD      (input) REAL array, dimension (N-1)\n\
  *          The (N-1) elements L(i)*D(i).\n\
  *\n\
  *  CLSTRT  (input) INTEGER\n\
  *          The index of the first eigenvalue in the cluster.\n\
  *\n\
  *  CLEND   (input) INTEGER\n\
  *          The index of the last eigenvalue in the cluster.\n\
  *\n\
  *  W       (input) REAL array, dimension\n\
  *          dimension is >=  (CLEND-CLSTRT+1)\n\
  *          The eigenvalue APPROXIMATIONS of L D L^T in ascending order.\n\
  *          W( CLSTRT ) through W( CLEND ) form the cluster of relatively\n\
  *          close eigenalues.\n\
  *\n\
  *  WGAP    (input/output) REAL array, dimension\n\
  *          dimension is >=  (CLEND-CLSTRT+1)\n\
  *          The separation from the right neighbor eigenvalue in W.\n\
  *\n\
  *  WERR    (input) REAL array, dimension\n\
  *          dimension is >=  (CLEND-CLSTRT+1)\n\
  *          WERR contain the semiwidth of the uncertainty\n\
  *          interval of the corresponding eigenvalue APPROXIMATION in W\n\
  *\n\
  *  SPDIAM  (input) REAL\n\
  *          estimate of the spectral diameter obtained from the\n\
  *          Gerschgorin intervals\n\
  *\n\
  *  CLGAPL  (input) REAL\n\
  *\n\
  *  CLGAPR  (input) REAL\n\
  *          absolute gap on each end of the cluster.\n\
  *          Set by the calling routine to protect against shifts too close\n\
  *          to eigenvalues outside the cluster.\n\
  *\n\
  *  PIVMIN  (input) REAL\n\
  *          The minimum pivot allowed in the Sturm sequence.\n\
  *\n\
  *  SIGMA   (output) REAL            \n\
  *          The shift used to form L(+) D(+) L(+)^T.\n\
  *\n\
  *  DPLUS   (output) REAL             array, dimension (N)\n\
  *          The N diagonal elements of the diagonal matrix D(+).\n\
  *\n\
  *  LPLUS   (output) REAL             array, dimension (N-1)\n\
  *          The first (N-1) elements of LPLUS contain the subdiagonal\n\
  *          elements of the unit bidiagonal matrix L(+).\n\
  *\n\
  *  WORK    (workspace) REAL array, dimension (2*N)\n\
  *          Workspace.\n\
  *\n\n\
  *  Further Details\n\
  *  ===============\n\
  *\n\
  *  Based on contributions by\n\
  *     Beresford Parlett, University of California, Berkeley, USA\n\
  *     Jim Demmel, University of California, Berkeley, USA\n\
  *     Inderjit Dhillon, University of Texas, Austin, USA\n\
  *     Osni Marques, LBNL/NERSC, USA\n\
  *     Christof Voemel, University of California, Berkeley, USA\n\
  *\n\
  *  =====================================================================\n\
  *\n"
