---
name: "dlar1v"
section: "3lapack"
platform: "linux"
package: "liblapack-doc"
version: "3.2.1-8"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/dlar1v/3lapack"
---

# dlar1v(3lapack)

computes the (scaled) r-th column of the inverse of the sumbmatrix in rows B1 through BN of the tridiagonal matrix L D L^T - sigma I

## NAME

DLAR1V - computes the (scaled) r-th column of the inverse of the sumbmatrix in rows B1 through BN of the tridiagonal matrix L D L^T - sigma I

## SYNOPSIS

- SUBROUTINE DLAR1V(

  N, B1, BN, LAMBDA, D, L, LD, LLD, PIVMIN, GAPTOL, Z, WANTNC, NEGCNT, ZTZ, MINGMA, R, ISUPPZ, NRMINV, RESID, RQCORR, WORK )

- LOGICAL

  WANTNC

- INTEGER

  B1, BN, N, NEGCNT, R

- DOUBLE

  PRECISION GAPTOL, LAMBDA, MINGMA, NRMINV, PIVMIN, RESID, RQCORR, ZTZ

- INTEGER

  ISUPPZ( \* )

- DOUBLE

  PRECISION D( \* ), L( \* ), LD( \* ), LLD( \* ), WORK( \* )

- DOUBLE

  PRECISION Z( \* )

## PURPOSE

DLAR1V computes the (scaled) r-th column of the inverse of the sumbmatrix in rows B1 through BN of the tridiagonal matrix L D L^T - sigma I. When sigma is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude. The following steps accomplish this computation :\
 (a) Stationary qd transform,  L D L^T - sigma I = L(+) D(+) L(+)^T, (b) Progressive qd transform, L D L^T - sigma I = U(-) D(-) U(-)^T, (c) Computation of the diagonal elements of the inverse of\
     L D L^T - sigma I by combining the above transforms, and choosing\
     r as the index where the diagonal of the inverse is (one of the)\
     largest in magnitude.\
 (d) Computation of the (scaled) r-th column of the inverse using the\
     twisted factorization obtained by combining the top part of the\
     the stationary and the bottom part of the progressive transform.

## ARGUMENTS

- N (input) INTEGER

  The order of the matrix L D L^T.

- B1 (input) INTEGER

  First index of the submatrix of L D L^T.

- BN (input) INTEGER

  Last index of the submatrix of L D L^T.

- LAMBDA (input) DOUBLE PRECISION

  The shift. In order to compute an accurate eigenvector, LAMBDA should be a good approximation to an eigenvalue of L D L^T.

- L (input) DOUBLE PRECISION array, dimension (N-1)

  The (n-1) subdiagonal elements of the unit bidiagonal matrix L, in elements 1 to N-1.

- D (input) DOUBLE PRECISION array, dimension (N)

  The n diagonal elements of the diagonal matrix D.

- LD (input) DOUBLE PRECISION array, dimension (N-1)

  The n-1 elements L(i)\*D(i).

- LLD (input) DOUBLE PRECISION array, dimension (N-1)

  The n-1 elements L(i)\*L(i)\*D(i).

- PIVMIN (input) DOUBLE PRECISION

  The minimum pivot in the Sturm sequence.

- GAPTOL (input) DOUBLE PRECISION

  Tolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual.

- Z (input/output) DOUBLE PRECISION array, dimension (N)

  On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z(R) equals 1.

- WANTNC (input) LOGICAL

  Specifies whether NEGCNT has to be computed.

- NEGCNT (output) INTEGER

  If WANTNC is .TRUE. then NEGCNT = the number of pivots \< pivmin in the  matrix factorization L D L^T, and NEGCNT = -1 otherwise.

- ZTZ (output) DOUBLE PRECISION

  The square of the 2-norm of Z.

- MINGMA (output) DOUBLE PRECISION

  The reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L^T - sigma I.

- R (input/output) INTEGER

  The twist index for the twisted factorization used to compute Z. On input, 0 \<= R \<= N. If R is input as 0, R is set to the index where (L D L^T - sigma I)^{-1} is largest in magnitude. If 1 \<= R \<= N, R is unchanged. On output, R contains the twist index used to compute Z. Ideally, R designates the position of the maximum entry in the eigenvector.

- ISUPPZ (output) INTEGER array, dimension (2)

  The support of the vector in Z, i.e., the vector Z is nonzero only in elements ISUPPZ(1) through ISUPPZ( 2 ).

- NRMINV (output) DOUBLE PRECISION

  NRMINV = 1/SQRT( ZTZ )

- RESID (output) DOUBLE PRECISION

  The residual of the FP vector. RESID = ABS( MINGMA )/SQRT( ZTZ )

- RQCORR (output) DOUBLE PRECISION

  The Rayleigh Quotient correction to LAMBDA. RQCORR = MINGMA\*TMP

- WORK (workspace) DOUBLE PRECISION array, dimension (4\*N)

  ## FURTHER DETAILS

Based on contributions by\
\
    Beresford Parlett, University of California, Berkeley, USA\
    Jim Demmel, University of California, Berkeley, USA\
\
    Inderjit Dhillon, University of Texas, Austin, USA\
\
    Osni Marques, LBNL/NERSC, USA\
\
    Christof Voemel, University of California, Berkeley, USA
