Function

# sparse_unpack_vector_float(_:_:_:_:_:_:_:)

Extracts elements from the sparse vector x into the corresponding location in the dense vector y, with both vectors containing single-precision values.

## Parameters

`N`

The number of elements in the dense vector y.

`nz`

The number of nonzero entries in the sparse vector x.

`zero`

When `true`, zero the elements of y which do not have nonzero values written to them. When `false` ignore the elements of y which do not have nonzero values written to them.

`x`

Pointer to the dense storage for the values of the sparse vector x. The corresponding entry in `indx` holds the index of the value. Contains `nz` values.

`indx`

Pointer to the dense storage for the index values of the sparse vector x. The corresponding entry in x holds the values of the vector. Contains `nz` values.

Indices are always assumed to be stored in ascending order. Additionally, indices are assumed to be unique. Undefined behavior if either of these assumptions are not met.All indices are 0 based (the first element of a pointer is `ptr[0]`).

`y`

Pointer to the dense vector y. Expected to be of size `N * abs(incy)` elements. Negative strides are supported. Note, unlike dense BLAS routines, the pointer points to the last element when stride is negative. On exit, the entries described by the indices in `indx` will be filled with the corresponding values in `x` and all other values will be unchanged if parameter zero is `false`, or set to zero if parameter zero is `true`.

`incy`

Increment between valid values in the dense vector y. Negative strides are supported.

## Discussion

This function extracts elements from the sparse vector x into the corresponding location in the dense vector y. It can optionally zero the unused values of y by setting the `zero` parameter to `true`.

The function is equivalent to the following code.

On exit, y has been updated with the nonzero values. If `nz` is less than or equal to zero, y is unchanged.