Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?roti
Applies Givens rotation to sparse vectors one of which is in compressed form.
Syntax
call sroti ( nz, x, indx, y, c, s )
call droti ( nz, x, indx, y, c, s )
call roti ( x, indx, y, c, s )
Include Files
mkl.fi , mkl_blas.f90
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):
\[\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\]
or in other words,
do i = 1, nz
xval = x(i)
yval = y(indx(i))
x(i) = c*xval + s*yval
y(indx(i)) = c*yval - s*xval
end do
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
INTEGER .
The number of elements in x and indx.
x
REAL |
for sroti |
DOUBLE PRECISION |
for droti |
Array, size at least nz .
indx
INTEGER.
Specifies the indices for the elements of x. Array, size at least nz .
y
REAL |
for sroti |
DOUBLE PRECISION |
for droti |
Array, size at least \(\max(\text{indx}(i))\).
c
REAL |
for sroti |
DOUBLE PRECISION |
for droti |
A scalar.
s
REAL |
for sroti |
DOUBLE PRECISION |
for droti |
A scalar.
Output Parameters
- x and y
-
The updated arrays.
BLAS 95 Interface Notes
Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or reconstructible arguments, see BLAS 95 Interface Conventions .
Specific details for the routine roti interface are the following:
- x
-
Holds the vector with the number of elements nz .
- indx
-
Holds the vector with the number of elements nz .
- y
-
Holds the vector with the number of elements nz .