Developer Reference for Intel® oneAPI Math Kernel Library for C
?roti
Applies Givens rotation to sparse vectors one of which is in compressed form.
Syntax
void cblas_sroti ( const MKL_INT nz,
float *x,
const MKL_INT *indx,
float *y,
const float c,
const float s );
void cblas_droti ( const MKL_INT nz,
double *x,
const MKL_INT *indx,
double *y,
const double c,
const double s );
Include Files
mkl.h
Description
sroti droti roti
The ?roti routines apply the Givens rotation to elements of two real vectors, x (in compressed form nz , x , indx ) and y (in full storage form):
\[\begin{split}\left(\begin{array}{c} x_{i} \\ y_{indx_{i}}\end{array}\right) \leftarrow \left(\begin{array}{cc} c & s\\ -s & c\end{array}\right) \left(\begin{array}{c} x_{i} \\ y_{indx_{i}}\end{array}\right)\text{, for } i = 1, \dots, nz\end{split}\]
or in other words,
for (i = 0; i < nz; ++i) {
xval = x[i];
yval = y[indx[i]];
x[i] = c*xval + s*yval;
y[indx[i]] = c*yval - s*xval;
}
The routines reference only the elements of y whose indices are listed in the array indx . The values in indx must be distinct.
Input Parameters
nz
The number of elements in x and indx.
x
Array, size at least nz .
indx
Specifies the indices for the elements of x. Array, size at least nz .
y
Array, size at least \(\max(\text{indx}[i]) + 1\).
c
A scalar.
s
A scalar.
Output Parameters
- x and y
-
The updated arrays.
BLAS 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.