---
name: "larscl2"
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/larscl2"
---

# larscl2(3)

larscl2: reciprocal diagonal scale matrix, A = D^{-1} A

## NAME

larscl2 - larscl2: reciprocal diagonal scale matrix, A = D^{-1} A

## SYNOPSIS

### Functions

subroutine **clarscl2** (m, n, d, x, ldx)\
 **CLARSCL2** performs reciprocal diagonal scaling on a matrix.  subroutine **dlarscl2** (m, n, d, x, ldx)\
 **DLARSCL2** performs reciprocal diagonal scaling on a matrix.  subroutine **slarscl2** (m, n, d, x, ldx)\
 **SLARSCL2** performs reciprocal diagonal scaling on a matrix.  subroutine **zlarscl2** (m, n, d, x, ldx)\
 **ZLARSCL2** performs reciprocal diagonal scaling on a matrix.

## Detailed Description

## Function Documentation

### subroutine clarscl2 (integer m, integer n, real, dimension( \* ) d, complex, dimension( ldx, \* ) x, integer ldx)

**CLARSCL2** performs reciprocal diagonal scaling on a matrix.

**Purpose:**

```
!>
!> CLARSCL2 performs a reciprocal diagonal scaling on a matrix:
!>   x <-- inv(D) * x
!> where the REAL diagonal matrix D is stored as a vector.
!>
!> Eventually to be replaced by BLAS_cge_diag_scale in the new BLAS
!> standard.
!>
```

**Parameters**

*M*

```
!>          M is INTEGER
!>     The number of rows of D and X. M >= 0.
!>
```

*N*

```
!>          N is INTEGER
!>     The number of columns of X. N >= 0.
!>
```

*D*

```
!>          D is REAL array, length M
!>     Diagonal matrix D, stored as a vector of length M.
!>
```

*X*

```
!>          X is COMPLEX array, dimension (LDX,N)
!>     On entry, the matrix X to be scaled by D.
!>     On exit, the scaled matrix.
!>
```

*LDX*

```
!>          LDX is INTEGER
!>     The leading dimension of the matrix X. LDX >= M.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **90** of file **clarscl2.f**.

### subroutine dlarscl2 (integer m, integer n, double precision, dimension( \* ) d, double precision, dimension( ldx, \* ) x, integer ldx)

**DLARSCL2** performs reciprocal diagonal scaling on a matrix.

**Purpose:**

```
!>
!> DLARSCL2 performs a reciprocal diagonal scaling on a matrix:
!>   x <-- inv(D) * x
!> where the diagonal matrix D is stored as a vector.
!>
!> Eventually to be replaced by BLAS_dge_diag_scale in the new BLAS
!> standard.
!>
```

**Parameters**

*M*

```
!>          M is INTEGER
!>     The number of rows of D and X. M >= 0.
!>
```

*N*

```
!>          N is INTEGER
!>     The number of columns of X. N >= 0.
!>
```

*D*

```
!>          D is DOUBLE PRECISION array, dimension (M)
!>     Diagonal matrix D, stored as a vector of length M.
!>
```

*X*

```
!>          X is DOUBLE PRECISION array, dimension (LDX,N)
!>     On entry, the matrix X to be scaled by D.
!>     On exit, the scaled matrix.
!>
```

*LDX*

```
!>          LDX is INTEGER
!>     The leading dimension of the matrix X. LDX >= M.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **89** of file **dlarscl2.f**.

### subroutine slarscl2 (integer m, integer n, real, dimension( \* ) d, real, dimension( ldx, \* ) x, integer ldx)

**SLARSCL2** performs reciprocal diagonal scaling on a matrix.

**Purpose:**

```
!>
!> SLARSCL2 performs a reciprocal diagonal scaling on a matrix:
!>   x <-- inv(D) * x
!> where the diagonal matrix D is stored as a vector.
!>
!> Eventually to be replaced by BLAS_sge_diag_scale in the new BLAS
!> standard.
!>
```

**Parameters**

*M*

```
!>          M is INTEGER
!>     The number of rows of D and X. M >= 0.
!>
```

*N*

```
!>          N is INTEGER
!>     The number of columns of X. N >= 0.
!>
```

*D*

```
!>          D is REAL array, length M
!>     Diagonal matrix D, stored as a vector of length M.
!>
```

*X*

```
!>          X is REAL array, dimension (LDX,N)
!>     On entry, the matrix X to be scaled by D.
!>     On exit, the scaled matrix.
!>
```

*LDX*

```
!>          LDX is INTEGER
!>     The leading dimension of the matrix X. LDX >= M.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **89** of file **slarscl2.f**.

### subroutine zlarscl2 (integer m, integer n, double precision, dimension( \* ) d, complex\*16, dimension( ldx, \* ) x, integer ldx)

**ZLARSCL2** performs reciprocal diagonal scaling on a matrix.

**Purpose:**

```
!>
!> ZLARSCL2 performs a reciprocal diagonal scaling on a matrix:
!>   x <-- inv(D) * x
!> where the DOUBLE PRECISION diagonal matrix D is stored as a vector.
!>
!> Eventually to be replaced by BLAS_zge_diag_scale in the new BLAS
!> standard.
!>
```

**Parameters**

*M*

```
!>          M is INTEGER
!>     The number of rows of D and X. M >= 0.
!>
```

*N*

```
!>          N is INTEGER
!>     The number of columns of X. N >= 0.
!>
```

*D*

```
!>          D is DOUBLE PRECISION array, length M
!>     Diagonal matrix D, stored as a vector of length M.
!>
```

*X*

```
!>          X is COMPLEX*16 array, dimension (LDX,N)
!>     On entry, the matrix X to be scaled by D.
!>     On exit, the scaled matrix.
!>
```

*LDX*

```
!>          LDX is INTEGER
!>     The leading dimension of the matrix X. LDX >= M.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **90** of file **zlarscl2.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
