# NAG Library Routine Document

## 1Purpose

f06euf (dgthr) gathers specified (usually nonzero) elements of a real vector $y$ in full storage form into a sparse real vector $x$ in compressed form.

## 2Specification

Fortran Interface
 Subroutine f06euf ( nz, y, x, indx)
 Integer, Intent (In) :: nz, indx(*) Real (Kind=nag_wp), Intent (In) :: y(*) Real (Kind=nag_wp), Intent (Inout) :: x(*)
#include <nagmk26.h>
 void f06euf_ (const Integer *nz, const double y[], double x[], const Integer indx[])
The routine may be called by its BLAS name dgthr.

## 3Description

f06euf (dgthr) gathers the specified elements of a vector, $y$, in full storage form, into $x$, the equivalent sparse vector compressed form.

## 4References

Dodson D S, Grimes R G and Lewis J G (1991) Sparse extensions to the Fortran basic linear algebra subprograms ACM Trans. Math. Software 17 253–263

## 5Arguments

1:     $\mathbf{nz}$ – IntegerInput
On entry: the number of nonzeros in the compressed sparse vector $x$.
2:     $\mathbf{y}\left(*\right)$ – Real (Kind=nag_wp) arrayInput
Note: the dimension of the array y must be at least $\underset{\mathit{k}}{\mathrm{max}}\phantom{\rule{0.25em}{0ex}}\left\{{\mathbf{indx}}\left(\mathit{k}\right)\right\}$.
On entry: the vector $y$. Only elements corresponding to indices in indx are accessed.
3:     $\mathbf{x}\left(*\right)$ – Real (Kind=nag_wp) arrayOutput
Note: the dimension of the array x must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{nz}}\right)$.
On exit: the compressed vector $x$.
4:     $\mathbf{indx}\left(*\right)$ – Integer arrayInput
Note: the dimension of the array indx must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{nz}}\right)$.
On entry: ${\mathbf{indx}}\left(\mathit{i}\right)$ must contain the index ${\mathbf{y}}\left(\mathit{i}\right)$, for $\mathit{i}=1,2,\dots ,{\mathbf{nz}}$, which is to be gathered into $x$.

None.

Not applicable.

## 8Parallelism and Performance

f06euf (dgthr) is not threaded in any implementation.