JCublasJava/src/main/java/jcuda/jcublas/JCublas.java
public static void cublasSrotg(Pointer host_sa, Pointer host_sb, Pointer host_sc, Pointer host_ss)
    {
        cublasSrotgNative(host_sa, host_sb, host_sc, host_ss);
        checkResultBLAS();
    }
public static void cublasSrotg(Pointer host_sa, Pointer host_sb, Pointer host_sc, Pointer host_ss)
    {
        cublasSrotgNative(host_sa, host_sb, host_sc, host_ss);
        checkResultBLAS();
    }
public static void cublasSrotg ( Pointer host_sa , Pointer host_sb , Pointer host_sc , Pointer host_ss ) { cublasSrotgNative ( host_sa , host_sb , host_sc , host_ss ) ; checkResultBLAS ( ) ; }
<pre>
void
cublasSrotg (float *host_sa, float *host_sb, float *host_sc, float *host_ss)

constructs the Givens tranformation

( sc  ss )
G = (        ) ,  sc^2 + ss^2 = 1,
(-ss  sc )

which zeros the second entry of the 2-vector transpose(sa, sb).

The quantity r = (+/-) sqrt (sa^2 + sb^2) overwrites sa in storage. The
value of sb is overwritten by a value z which allows sc and ss to be
recovered by the following algorithm:

if z=1          set sc = 0.0 and ss = 1.0
if abs(z) < 1   set sc = sqrt(1-z^2) and ss = z
if abs(z) > 1   set sc = 1/z and ss = sqrt(1-sc^2)

The function srot (n, x, incx, y, incy, sc, ss) normally is called next
to apply the transformation to a 2 x n matrix.
Note that is function is provided for completeness and run exclusively
on the Host.

Input
-----
sa     single precision scalar
sb     single precision scalar

Output
------
sa     single precision r
sb     single precision z
sc     single precision result
ss     single precision result

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

This function does not set any error status.
</pre>
<pre > void cublasSrotg ( float * host_sa float * host_sb float * host_sc float * host_ss )