Function

sparse_inner_product_dense_float

Computes the inner product of sparse vector x with dense vector y, with both vectors containing single-precision values.

Declaration

float sparse_inner_product_dense_float(sparse_dimension nz, const float *restrict x, const sparse_index *restrict indx, const float *restrict y, sparse_stride incy);

Parameters

nz

The number of nonzero entries in the sparse vector x.

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.

y

Pointer to the dense vector y. Accessed as y[indx[0..nz-1]*incy], so dimension must be compatible with largest index value in indx. The behavior of this function is undefined if this is not met. Negative strides are supported. Note, unlike dense BLAS routines, the pointer points to the last element when stride is negative.

incy

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

Return Value

The inner product of sparse vector x with dense vector y. Returns zero if nz is less than or equal to zero.

Discussion

Indices in indx are always assumed to be stored in ascending order. Additionally, indices are assumed to be unique. The behavior of this function is undefined if either of these assumptions are not met.

All indices are 0 based (the first element of a pointer is ptr[0]).

See Also

Vector-Vector Operations

sparse_inner_product_dense_double

Computes the inner product of sparse vector x with double-precision y, with both vectors containing double-precision values.

sparse_inner_product_sparse_double

Computes the inner product of sparse vector x with sparse vector y, with both vectors containing double-precision values.

sparse_inner_product_sparse_float

Computes the inner product of sparse vector x with sparse vector y, with both vectors containing single-precision values.

sparse_vector_add_with_scale_dense_double

Scales the sparse vector x by alpha and adds the result to the dense vector y, with both vectors containing double-precision values.

sparse_vector_add_with_scale_dense_float

Scales the sparse vector x by alpha and adds the result to the dense vector y, with both vectors containing single-precision values.

sparse_vector_norm_double

Computes the specified norm of the double-precision sparse vector x.

sparse_vector_norm_float

Computes the specified norm of the single-precision sparse vector x.