linear_algebra
Class QR_f77

java.lang.Object
  |
  +--linear_algebra.QR_f77

public class QR_f77
extends java.lang.Object

This class contains the LINPACK DQRDC (QR decomposition) and DQRSL (QR solve) routines.

IMPORTANT: The "_f77" suffixes indicate that these routines use FORTRAN style indexing. For example, you will see

   for (i = 1; i <= n; i++)
rather than
   for (i = 0; i < n; i++)
To use the "_f77" routines you will have to declare your vectors and matrices to be one element larger (e.g., v[101] rather than v[100], and a[101][101] rather than a[100][100]), and you will have to fill elements 1 through n rather than elements 0 through n - 1. Versions of these programs that use C/Java style indexing will soon be available. They will end with the suffix "_j".

This class was translated by a statistician from FORTRAN versions of the LINPACK routines. It is NOT an official translation. It wastes memory by failing to use the first elements of vectors. When public domain Java numerical analysis routines become available from the people who produce LAPACK, then THE CODE PRODUCED BY THE NUMERICAL ANALYSTS SHOULD BE USED.

Meanwhile, if you have suggestions for improving this code, please contact Steve Verrill at steve@ws10.fpl.fs.fed.us.


Constructor Summary
QR_f77()
           
 
Method Summary
static void dqrdc_f77(double[][] x, int n, int p, double[] qraux, int[] jpvt, double[] work, int job)
           This method decomposes an n by p matrix X into a product, QR, of an orthogonal n by n matrix Q and an upper triangular n by p matrix R.
static int dqrsl_f77(double[][] x, int n, int k, double[] qraux, double[] y, double[] qy, double[] qty, double[] b, double[] rsd, double[] xb, int job)
           This method "applies the output of DQRDC to compute coordinate transformations, projections, and least squares solutions." For details, see the comments in the code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QR_f77

public QR_f77()
Method Detail

dqrdc_f77

public static void dqrdc_f77(double[][] x,
                             int n,
                             int p,
                             double[] qraux,
                             int[] jpvt,
                             double[] work,
                             int job)

This method decomposes an n by p matrix X into a product, QR, of an orthogonal n by n matrix Q and an upper triangular n by p matrix R. For details, see the comments in the code. This method is a translation from FORTRAN to Java of the LINPACK subroutine DQRDC. In the LINPACK listing DQRDC is attributed to G.W. Stewart with a date of 8/14/78. Translated by Steve Verrill, February 25, 1997.

Parameters:
n - The number of rows of the matrix X
p - The number of columns of the matrix X
qraux - This vector "contains further information required to recover the orthogonal part of the decomposition."
jpvt - This vector contains pivoting information
work - This vector is used as temporary space
job - This value indicates whether column pivoting should be performed

dqrsl_f77

public static int dqrsl_f77(double[][] x,
                            int n,
                            int k,
                            double[] qraux,
                            double[] y,
                            double[] qy,
                            double[] qty,
                            double[] b,
                            double[] rsd,
                            double[] xb,
                            int job)

This method "applies the output of DQRDC to compute coordinate transformations, projections, and least squares solutions." For details, see the comments in the code. This method is a translation from FORTRAN to Java of the LINPACK subroutine DQRSL. In the LINPACK listing DQRSL is attributed to G.W. Stewart with a date of 8/14/78. Translated by Steve Verrill, February 27, 1997.

Parameters:
n - The number of rows of X
k - k <= min(n,p) where p is the number of columns of X
qraux - This vector "contains further information required to recover the orthogonal part of the decomposition"
y - This n by 1 vector will be manipulated by DQRSL
qy - On output, this vector contains Qy if it has been requested
qty - On output, this vector contains transpose(Q)y if it has been requested
b - Parameter estimates
rsd - Residuals
xb - Predicted values
job - Specifies what is to be computed (see the code for details)