Generates a plane rotation.


lapack_int LAPACKE_slartgp (float f, floatg, float* cs, float* sn, float* r);

lapack_int LAPACKE_dlartgp (doublef, doubleg, double* cs, double* sn, double* r);

Include Files

  • mkl.h


The routine generates a plane rotation so that


where cs2 + sn2 = 1

This is a slower, more accurate version of the BLAS Level 1 routine ?rotg, except for the following differences:

  • f and g are unchanged on return.

  • If g=0, then cs=(+/-)1 and sn=0.

  • If f=0 and g 0, then cs=0 and sn=(+/-)1.

The sign is chosen so that r 0.

Input Parameters

A <datatype> placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type definitions.

f, g

The first and second component of the vector to be rotated.

Output Parameters


The cosine of the rotation.


The sine of the rotation.


The nonzero component of the rotated vector.

Return Values

If info = 0, the execution is successful.

If info =-1,f is NaN.

If info = -2, g is NaN.

See Also

For more complete information about compiler optimizations, see our Optimization Notice.
Select sticky button color: 
Orange (only for download buttons)