---
name: "ddrvls.f"
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/ddrvls.f"
---

# ddrvls.f(3)

## NAME

TESTING/LIN/ddrvls.f

## SYNOPSIS

### Functions/Subroutines

subroutine **ddrvls** (dotype, nm, mval, nn, nval, nns, nsval, nnb, nbval, nxval, thresh, tsterr, a, copya, b, copyb, c, s, copys, nout)\
 **DDRVLS**

## Function/Subroutine Documentation

### subroutine ddrvls (logical, dimension( \* ) dotype, integer nm, integer, dimension( \* ) mval, integer nn, integer, dimension( \* ) nval, integer nns, integer, dimension( \* ) nsval, integer nnb, integer, dimension( \* ) nbval, integer, dimension( \* ) nxval, double precision thresh, logical tsterr, double precision, dimension( \* ) a, double precision, dimension( \* ) copya, double precision, dimension( \* ) b, double precision, dimension( \* ) copyb, double precision, dimension( \* ) c, double precision, dimension( \* ) s, double precision, dimension( \* ) copys, integer nout)

**DDRVLS**

**Purpose:**

```
!>
!> DDRVLS tests the least squares driver routines DGELS, DGELST,
!> DGETSLS, DGELSS, DGELSY, and DGELSD.
!>
```

**Parameters**

*DOTYPE*

```
!>          DOTYPE is LOGICAL array, dimension (NTYPES)
!>          The matrix types to be used for testing.  Matrices of type j
!>          (for 1 <= j <= NTYPES) are used for testing if DOTYPE(j) =
!>          .TRUE.; if DOTYPE(j) = .FALSE., then type j is not used.
!>          The matrix of type j is generated as follows:
!>          j=1: A = U*D*V where U and V are random orthogonal matrices
!>               and D has random entries (> 0.1) taken from a uniform
!>               distribution (0,1). A is full rank.
!>          j=2: The same of 1, but A is scaled up.
!>          j=3: The same of 1, but A is scaled down.
!>          j=4: A = U*D*V where U and V are random orthogonal matrices
!>               and D has 3*min(M,N)/4 random entries (> 0.1) taken
!>               from a uniform distribution (0,1) and the remaining
!>               entries set to 0. A is rank-deficient.
!>          j=5: The same of 4, but A is scaled up.
!>          j=6: The same of 5, but A is scaled down.
!>
```

*NM*

```
!>          NM is INTEGER
!>          The number of values of M contained in the vector MVAL.
!>
```

*MVAL*

```
!>          MVAL is INTEGER array, dimension (NM)
!>          The values of the matrix row dimension M.
!>
```

*NN*

```
!>          NN is INTEGER
!>          The number of values of N contained in the vector NVAL.
!>
```

*NVAL*

```
!>          NVAL is INTEGER array, dimension (NN)
!>          The values of the matrix column dimension N.
!>
```

*NNS*

```
!>          NNS is INTEGER
!>          The number of values of NRHS contained in the vector NSVAL.
!>
```

*NSVAL*

```
!>          NSVAL is INTEGER array, dimension (NNS)
!>          The values of the number of right hand sides NRHS.
!>
```

*NNB*

```
!>          NNB is INTEGER
!>          The number of values of NB and NX contained in the
!>          vectors NBVAL and NXVAL.  The blocking parameters are used
!>          in pairs (NB,NX).
!>
```

*NBVAL*

```
!>          NBVAL is INTEGER array, dimension (NNB)
!>          The values of the blocksize NB.
!>
```

*NXVAL*

```
!>          NXVAL is INTEGER array, dimension (NNB)
!>          The values of the crossover point NX.
!>
```

*THRESH*

```
!>          THRESH is DOUBLE PRECISION
!>          The threshold value for the test ratios.  A result is
!>          included in the output file if RESULT >= THRESH.  To have
!>          every test ratio printed, use THRESH = 0.
!>
```

*TSTERR*

```
!>          TSTERR is LOGICAL
!>          Flag that indicates whether error exits are to be tested.
!>
```

*A*

```
!>          A is DOUBLE PRECISION array, dimension (MMAX*NMAX)
!>          where MMAX is the maximum value of M in MVAL and NMAX is the
!>          maximum value of N in NVAL.
!>
```

*COPYA*

```
!>          COPYA is DOUBLE PRECISION array, dimension (MMAX*NMAX)
!>
```

*B*

```
!>          B is DOUBLE PRECISION array, dimension (MMAX*NSMAX)
!>          where MMAX is the maximum value of M in MVAL and NSMAX is the
!>          maximum value of NRHS in NSVAL.
!>
```

*COPYB*

```
!>          COPYB is DOUBLE PRECISION array, dimension (MMAX*NSMAX)
!>
```

*C*

```
!>          C is DOUBLE PRECISION array, dimension (MMAX*NSMAX)
!>
```

*S*

```
!>          S is DOUBLE PRECISION array, dimension
!>                      (min(MMAX,NMAX))
!>
```

*COPYS*

```
!>          COPYS is DOUBLE PRECISION array, dimension
!>                      (min(MMAX,NMAX))
!>
```

*NOUT*

```
!>          NOUT is INTEGER
!>          The unit number for output.
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **189** of file **ddrvls.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
