---
name: "laic1"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/laic1"
---

# laic1(3)

laic1: condition estimate, step in gelsy

## NAME

laic1 - laic1: condition estimate, step in gelsy

## SYNOPSIS

### Functions

subroutine **claic1** (job, j, x, sest, w, gamma, sestpr, s, c)\
 **CLAIC1** applies one step of incremental condition estimation.  subroutine **dlaic1** (job, j, x, sest, w, gamma, sestpr, s, c)\
 **DLAIC1** applies one step of incremental condition estimation.  subroutine **slaic1** (job, j, x, sest, w, gamma, sestpr, s, c)\
 **SLAIC1** applies one step of incremental condition estimation.  subroutine **zlaic1** (job, j, x, sest, w, gamma, sestpr, s, c)\
 **ZLAIC1** applies one step of incremental condition estimation.

## Detailed Description

## Function Documentation

### subroutine claic1 (integer job, integer j, complex, dimension( j ) x, real sest, complex, dimension( j ) w, complex gamma, real sestpr, complex s, complex c)

**CLAIC1** applies one step of incremental condition estimation.

**Purpose:**

```
!>
!> CLAIC1 applies one step of incremental condition estimation in
!> its simplest version:
!>
!> Let x, twonorm(x) = 1, be an approximate singular vector of an j-by-j
!> lower triangular matrix L, such that
!>          twonorm(L*x) = sest
!> Then CLAIC1 computes sestpr, s, c such that
!> the vector
!>                 [ s*x ]
!>          xhat = [  c  ]
!> is an approximate singular vector of
!>                 [ L      0  ]
!>          Lhat = [ w**H gamma ]
!> in the sense that
!>          twonorm(Lhat*xhat) = sestpr.
!>
!> Depending on JOB, an estimate for the largest or smallest singular
!> value is computed.
!>
!> Note that [s c]**H and sestpr**2 is an eigenpair of the system
!>
!>     diag(sest*sest, 0) + [alpha  gamma] * [ conjg(alpha) ]
!>                                           [ conjg(gamma) ]
!>
!> where  alpha =  x**H*w.
!>
```

**Parameters**

*JOB*

```
!>          JOB is INTEGER
!>          = 1: an estimate for the largest singular value is computed.
!>          = 2: an estimate for the smallest singular value is computed.
!>
```

*J*

```
!>          J is INTEGER
!>          Length of X and W
!>
```

*X*

```
!>          X is COMPLEX array, dimension (J)
!>          The j-vector x.
!>
```

*SEST*

```
!>          SEST is REAL
!>          Estimated singular value of j by j matrix L
!>
```

*W*

```
!>          W is COMPLEX array, dimension (J)
!>          The j-vector w.
!>
```

*GAMMA*

```
!>          GAMMA is COMPLEX
!>          The diagonal element gamma.
!>
```

*SESTPR*

```
!>          SESTPR is REAL
!>          Estimated singular value of (j+1) by (j+1) matrix Lhat.
!>
```

*S*

```
!>          S is COMPLEX
!>          Sine needed in forming xhat.
!>
```

*C*

```
!>          C is COMPLEX
!>          Cosine needed in forming xhat.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **134** of file **claic1.f**.

### subroutine dlaic1 (integer job, integer j, double precision, dimension( j ) x, double precision sest, double precision, dimension( j ) w, double precision gamma, double precision sestpr, double precision s, double precision c)

**DLAIC1** applies one step of incremental condition estimation.

**Purpose:**

```
!>
!> DLAIC1 applies one step of incremental condition estimation in
!> its simplest version:
!>
!> Let x, twonorm(x) = 1, be an approximate singular vector of an j-by-j
!> lower triangular matrix L, such that
!>          twonorm(L*x) = sest
!> Then DLAIC1 computes sestpr, s, c such that
!> the vector
!>                 [ s*x ]
!>          xhat = [  c  ]
!> is an approximate singular vector of
!>                 [ L       0  ]
!>          Lhat = [ w**T gamma ]
!> in the sense that
!>          twonorm(Lhat*xhat) = sestpr.
!>
!> Depending on JOB, an estimate for the largest or smallest singular
!> value is computed.
!>
!> Note that [s c]**T and sestpr**2 is an eigenpair of the system
!>
!>     diag(sest*sest, 0) + [alpha  gamma] * [ alpha ]
!>                                           [ gamma ]
!>
!> where  alpha =  x**T*w.
!>
```

**Parameters**

*JOB*

```
!>          JOB is INTEGER
!>          = 1: an estimate for the largest singular value is computed.
!>          = 2: an estimate for the smallest singular value is computed.
!>
```

*J*

```
!>          J is INTEGER
!>          Length of X and W
!>
```

*X*

```
!>          X is DOUBLE PRECISION array, dimension (J)
!>          The j-vector x.
!>
```

*SEST*

```
!>          SEST is DOUBLE PRECISION
!>          Estimated singular value of j by j matrix L
!>
```

*W*

```
!>          W is DOUBLE PRECISION array, dimension (J)
!>          The j-vector w.
!>
```

*GAMMA*

```
!>          GAMMA is DOUBLE PRECISION
!>          The diagonal element gamma.
!>
```

*SESTPR*

```
!>          SESTPR is DOUBLE PRECISION
!>          Estimated singular value of (j+1) by (j+1) matrix Lhat.
!>
```

*S*

```
!>          S is DOUBLE PRECISION
!>          Sine needed in forming xhat.
!>
```

*C*

```
!>          C is DOUBLE PRECISION
!>          Cosine needed in forming xhat.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **133** of file **dlaic1.f**.

### subroutine slaic1 (integer job, integer j, real, dimension( j ) x, real sest, real, dimension( j ) w, real gamma, real sestpr, real s, real c)

**SLAIC1** applies one step of incremental condition estimation.

**Purpose:**

```
!>
!> SLAIC1 applies one step of incremental condition estimation in
!> its simplest version:
!>
!> Let x, twonorm(x) = 1, be an approximate singular vector of an j-by-j
!> lower triangular matrix L, such that
!>          twonorm(L*x) = sest
!> Then SLAIC1 computes sestpr, s, c such that
!> the vector
!>                 [ s*x ]
!>          xhat = [  c  ]
!> is an approximate singular vector of
!>                 [ L      0  ]
!>          Lhat = [ w**T gamma ]
!> in the sense that
!>          twonorm(Lhat*xhat) = sestpr.
!>
!> Depending on JOB, an estimate for the largest or smallest singular
!> value is computed.
!>
!> Note that [s c]**T and sestpr**2 is an eigenpair of the system
!>
!>     diag(sest*sest, 0) + [alpha  gamma] * [ alpha ]
!>                                           [ gamma ]
!>
!> where  alpha =  x**T*w.
!>
```

**Parameters**

*JOB*

```
!>          JOB is INTEGER
!>          = 1: an estimate for the largest singular value is computed.
!>          = 2: an estimate for the smallest singular value is computed.
!>
```

*J*

```
!>          J is INTEGER
!>          Length of X and W
!>
```

*X*

```
!>          X is REAL array, dimension (J)
!>          The j-vector x.
!>
```

*SEST*

```
!>          SEST is REAL
!>          Estimated singular value of j by j matrix L
!>
```

*W*

```
!>          W is REAL array, dimension (J)
!>          The j-vector w.
!>
```

*GAMMA*

```
!>          GAMMA is REAL
!>          The diagonal element gamma.
!>
```

*SESTPR*

```
!>          SESTPR is REAL
!>          Estimated singular value of (j+1) by (j+1) matrix Lhat.
!>
```

*S*

```
!>          S is REAL
!>          Sine needed in forming xhat.
!>
```

*C*

```
!>          C is REAL
!>          Cosine needed in forming xhat.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **133** of file **slaic1.f**.

### subroutine zlaic1 (integer job, integer j, complex\*16, dimension( j ) x, double precision sest, complex\*16, dimension( j ) w, complex\*16 gamma, double precision sestpr, complex\*16 s, complex\*16 c)

**ZLAIC1** applies one step of incremental condition estimation.

**Purpose:**

```
!>
!> ZLAIC1 applies one step of incremental condition estimation in
!> its simplest version:
!>
!> Let x, twonorm(x) = 1, be an approximate singular vector of an j-by-j
!> lower triangular matrix L, such that
!>          twonorm(L*x) = sest
!> Then ZLAIC1 computes sestpr, s, c such that
!> the vector
!>                 [ s*x ]
!>          xhat = [  c  ]
!> is an approximate singular vector of
!>                 [ L       0  ]
!>          Lhat = [ w**H gamma ]
!> in the sense that
!>          twonorm(Lhat*xhat) = sestpr.
!>
!> Depending on JOB, an estimate for the largest or smallest singular
!> value is computed.
!>
!> Note that [s c]**H and sestpr**2 is an eigenpair of the system
!>
!>     diag(sest*sest, 0) + [alpha  gamma] * [ conjg(alpha) ]
!>                                           [ conjg(gamma) ]
!>
!> where  alpha =  x**H * w.
!>
```

**Parameters**

*JOB*

```
!>          JOB is INTEGER
!>          = 1: an estimate for the largest singular value is computed.
!>          = 2: an estimate for the smallest singular value is computed.
!>
```

*J*

```
!>          J is INTEGER
!>          Length of X and W
!>
```

*X*

```
!>          X is COMPLEX*16 array, dimension (J)
!>          The j-vector x.
!>
```

*SEST*

```
!>          SEST is DOUBLE PRECISION
!>          Estimated singular value of j by j matrix L
!>
```

*W*

```
!>          W is COMPLEX*16 array, dimension (J)
!>          The j-vector w.
!>
```

*GAMMA*

```
!>          GAMMA is COMPLEX*16
!>          The diagonal element gamma.
!>
```

*SESTPR*

```
!>          SESTPR is DOUBLE PRECISION
!>          Estimated singular value of (j+1) by (j+1) matrix Lhat.
!>
```

*S*

```
!>          S is COMPLEX*16
!>          Sine needed in forming xhat.
!>
```

*C*

```
!>          C is COMPLEX*16
!>          Cosine needed in forming xhat.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **134** of file **zlaic1.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
