Developer Reference for Intel® oneAPI Math Kernel Library for C
A newer version of this document is available. Customers should click here to go to the newest version.
?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.