Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

dlartgs (3p)

Name

dlartgs - generate a plane rotation designed to introduce a bulge in implicit QR iteration for the bidiagonal SVD problem

Synopsis

SUBROUTINE DLARTGS( X, Y, SIGMA, CS, SN )


DOUBLE PRECISION CS, SIGMA, SN, X, Y


SUBROUTINE DLARTGS_64( X, Y, SIGMA, CS, SN )


DOUBLE PRECISION CS, SIGMA, SN, X, Y


F95 INTERFACE
SUBROUTINE LARTGS( X, Y, SIGMA, CS, SN )


REAL(8) :: X, Y, SIGMA, CS, SN


SUBROUTINE LARTGS_64( X, Y, SIGMA, CS, SN )


REAL(8) :: X, Y, SIGMA, CS, SN


C INTERFACE
#include <sunperf.h>

void dlartgs (double x, double y,  double  sigma,  double  *cs,  double
*sn);


void  dlartgs_64  (double x, double y, double sigma, double *cs, double
*sn);

Description

Oracle Solaris Studio Performance Library                          dlartgs(3P)



NAME
       dlartgs  -  generate  a plane rotation designed to introduce a bulge in
       implicit QR iteration for the bidiagonal SVD problem


SYNOPSIS
       SUBROUTINE DLARTGS( X, Y, SIGMA, CS, SN )


       DOUBLE PRECISION CS, SIGMA, SN, X, Y


       SUBROUTINE DLARTGS_64( X, Y, SIGMA, CS, SN )


       DOUBLE PRECISION CS, SIGMA, SN, X, Y


   F95 INTERFACE
       SUBROUTINE LARTGS( X, Y, SIGMA, CS, SN )


       REAL(8) :: X, Y, SIGMA, CS, SN


       SUBROUTINE LARTGS_64( X, Y, SIGMA, CS, SN )


       REAL(8) :: X, Y, SIGMA, CS, SN


   C INTERFACE
       #include <sunperf.h>

       void dlartgs (double x, double y,  double  sigma,  double  *cs,  double
                 *sn);


       void  dlartgs_64  (double x, double y, double sigma, double *cs, double
                 *sn);


PURPOSE
       dlartgs generates a plane rotation designed to  introduce  a  bulge  in
       Golub-Reinsch-style  implicit QR iteration for the bidiagonal SVD prob-
       lem. X and Y are the top-row entries, and SIGMA is the shift.  The com-
       puted CS and SN define a plane rotation satisfying

       [  CS  SN  ]  .  [ X^2 - SIGMA ]  =  [ R ], [ -SN  CS  ]     [    X * Y
       ]     [ 0 ]

       with R nonnegative.  If X^2 - SIGMA and X * Y are 0, then the  rotation
       is by PI/2.


ARGUMENTS
       X (input)
                 X is DOUBLE PRECISION
                 The (1,1) entry of an upper bidiagonal matrix.


       Y (input)
                 Y is DOUBLE PRECISION
                 The (1,2) entry of an upper bidiagonal matrix.


       SIGMA (input)
                 SIGMA is DOUBLE PRECISION
                 The shift.


       CS (output)
                 CS is DOUBLE PRECISION
                 The cosine of the rotation.


       SN (output)
                 SN is DOUBLE PRECISION
                 The sine of the rotation.




                                  7 Nov 2015                       dlartgs(3P)