JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasSrotm(int n, Pointer x, int incx, Pointer y, int incy, float sparam[])
    {
        cublasSrotmNative(n, x, incx, y, incy, sparam);
        checkResultBLAS();
    }
public static void cublasSrotm(int n, Pointer x, int incx, Pointer y, int incy, float sparam[])
    {
        cublasSrotmNative(n, x, incx, y, incy, sparam);
        checkResultBLAS();
    }
Wrapper for CUBLAS function.
<pre>
void
cublasSrotm (int n, float *x, int incx, float *y, int incy,
const float* sparam)

applies the modified Givens transformation, h, to the 2 x n matrix

( transpose(x) )
( transpose(y) )

The elements of x are in x[lx + i * incx], i = 0 to n-1, where lx = 1 if
incx >= 0, else lx = 1 + (1 - n) * incx, and similarly for y using ly and
incy. With sparam[0] = sflag, h has one of the following forms:

sflag = -1.0f   sflag = 0.0f    sflag = 1.0f    sflag = -2.0f

(sh00  sh01)    (1.0f  sh01)    (sh00  1.0f)    (1.0f  0.0f)
h = (          )    (          )    (          )    (          )
(sh10  sh11)    (sh10  1.0f)    (-1.0f sh11)    (0.0f  1.0f)

Input
-----
n      number of elements in input vectors
x      single precision vector with n elements
incx   storage spacing between elements of x
y      single precision vector with n elements
incy   storage spacing between elements of y
sparam 5-element vector. sparam[0] is sflag described above. sparam[1]
through sparam[4] contain the 2x2 rotation matrix h: sparam[1]
contains sh00, sparam[2] contains sh10, sparam[3] contains sh01,
and sprams[4] contains sh11.

Output
------
x     rotated vector x (unchanged if n <= 0)
y     rotated vector y (unchanged if n <= 0)

Reference: http://www.netlib.org/blas/srotm.f

Error status for this function can be retrieved via cublasGetError().

Error Status
------------
CUBLAS_STATUS_NOT_INITIALIZED  if CUBLAS library has not been initialized
CUBLAS_STATUS_EXECUTION_FAILED if function failed to launch on GPU
</pre>