Visible to Intel only — GUID: GUID-53D98600-6821-4E79-BD51-3649C6BE82A6
Visible to Intel only — GUID: GUID-53D98600-6821-4E79-BD51-3649C6BE82A6
p?rot
Applies a planar rotation to two distributed vectors.
Syntax
call psrot( n, x, ix, jx, descx, incx, y, iy, jy, descy, incy, cs, sn, work, lwork, info )
call pdrot( n, x, ix, jx, descx, incx, y, iy, jy, descy, incy, cs, sn, work, lwork, info )
Description
p?rot applies a planar rotation defined by cs and sn to the two distributed vectors sub(x) and sub(y).
Input Parameters
- n
-
(global ) INTEGER
The number of elements to operate on when applying the planar rotation to x and y (n≥0).
- x
-
REAL for psrot
DOUBLE PRECISION for pdrot
(local) array of size ( (jx-1)*m_x + ix + ( n - 1 )*abs( incx ) )
This array contains the entries of the distributed vector sub( x ).
- ix
-
(global ) INTEGER
The global row index of the submatrix of the distributed matrix x to operate on. If incx = 1, then it is required that ix = iy. 1 ≤ix≤m_x.
- jx
-
(global ) INTEGER
The global column index of the submatrix of the distributed matrix x to operate on. If incx = m_x, then it is required that jx = jy. 1 ≤ix≤n_x.
- descx
-
(global and local) INTEGER array of size 9
The array descriptor of the distributed matrix x.
- incx
-
(global ) INTEGER
The global increment for the elements of x. Only two values of incx are supported in this version, namely 1 and m_x. Moreover, it must hold that incx = m_x if incy =m_y and that incx = 1 if incy = 1.
- y
-
REAL for psrot
DOUBLE PRECISION for pdrot
(local) array of size ( (jy-1)*m_y + iy + ( n - 1 )*abs( incy ) )
This array contains the entries of the distributed vector sub( y ).
- iy
-
(global ) INTEGER
The global row index of the submatrix of the distributed matrix y to operate on. If incy = 1, then it is required that iy = ix. 1 ≤iy≤m_y.
- jy
-
(global ) INTEGER
The global column index of the submatrix of the distributed matrix y to operate on. If incy = m_x, then it is required that jy = jx. 1 ≤jy≤m_y.
- descy
-
(global and local) INTEGER array of size 9
The array descriptor of the distributed matrix y.
- incy
-
(global ) INTEGER
The global increment for the elements of y. Only two values of incy are supported in this version, namely 1 and m_y. Moreover, it must hold that incy = m_y if incx = m_x and that incy = 1 if incx = 1.
- cs, sn
-
(global)
REAL for psrot
DOUBLE PRECISION for pdrot
The parameters defining the properties of the planar rotation. It must hold that 0 ≤cs,sn≤ 1 and that sn2 + cs2 = 1. The latter is hardly checked in finite precision arithmetics.
- work
-
REAL for psrot
DOUBLE PRECISION for pdrot
(local workspace) array of size lwork
- lwork
-
(local ) INTEGER
The length of the workspace array work.
If incx = 1 and incy = 1, then lwork = 2*m_x
If lwork = -1, then a workspace query is assumed; the routine only calculates the optimal size of the work array, returns this value as the first entry of the IWORK array, and no error message related to LIWORK is issued by pxerbla.
OUTPUT Parameters
- x
- y
- work(1)
-
On exit, if info = 0, work(1) returns the optimal lwork
- info
-
(global ) INTEGER
= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
If the i-th argument is an array and the j-th entry had an illegal value, then info = -(i*100+j), if the i-th argument is a scalar and had an illegal value, then info = -i.