--- 
:name: slartg
:md5sum: 52b75639a9de491257810faa309579ab
:category: :subroutine
:arguments: 
- f: 
    :type: real
    :intent: input
- g: 
    :type: real
    :intent: input
- cs: 
    :type: real
    :intent: output
- sn: 
    :type: real
    :intent: output
- r: 
    :type: real
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE SLARTG( F, G, CS, SN, R )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  SLARTG generate a plane rotation so that\n\
  *\n\
  *     [  CS  SN  ]  .  [ F ]  =  [ R ]   where CS**2 + SN**2 = 1.\n\
  *     [ -SN  CS  ]     [ G ]     [ 0 ]\n\
  *\n\
  *  This is a slower, more accurate version of the BLAS1 routine SROTG,\n\
  *  with the following other differences:\n\
  *     F and G are unchanged on return.\n\
  *     If G=0, then CS=1 and SN=0.\n\
  *     If F=0 and (G .ne. 0), then CS=0 and SN=1 without doing any\n\
  *        floating point operations (saves work in SBDSQR when\n\
  *        there are zeros on the diagonal).\n\
  *\n\
  *  If F exceeds G in magnitude, CS will be positive.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  F       (input) REAL\n\
  *          The first component of vector to be rotated.\n\
  *\n\
  *  G       (input) REAL\n\
  *          The second component of vector to be rotated.\n\
  *\n\
  *  CS      (output) REAL\n\
  *          The cosine of the rotation.\n\
  *\n\
  *  SN      (output) REAL\n\
  *          The sine of the rotation.\n\
  *\n\
  *  R       (output) REAL\n\
  *          The nonzero component of the rotated vector.\n\
  *\n\
  *  This version has a few statements commented out for thread safety\n\
  *  (machine parameters are computed on each entry). 10 feb 03, SJH.\n\
  *\n\n\
  *  =====================================================================\n\
  *\n"
