linear_algebra
Class LU_f77

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

public class LU_f77
extends java.lang.Object

This class contains the LINPACK DGEFA (LU factorization), DGESL (solve), and DGEDI (determinant and inverse) 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 are also available. They 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. 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
LU_f77()
           
 
Method Summary
static void dgedi_f77(double[][] a, int n, int[] ipvt, double[] det, double[] work, int job)
           This method uses the LU decomposition provided by DGEFA to obtain the determinant and/or inverse of a full rank n by n matrix.
static void dgefa_f77(double[][] a, int n, int[] ipvt)
           This method decomposes an n by n matrix A into a product, LU, where L is a lower triangular matrix and U is an upper triangular matrix.
static void dgesl_f77(double[][] a, int n, int[] ipvt, double[] b, int job)
           This method uses the LU decomposition provided by DGEFA to solve the equation Ax = b where A is a full rank n by n matrix.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LU_f77

public LU_f77()
Method Detail

dgefa_f77

public static void dgefa_f77(double[][] a,
                             int n,
                             int[] ipvt)
                      throws NotFullRankException

This method decomposes an n by n matrix A into a product, LU, where L is a lower triangular matrix and U is an upper triangular matrix. For details, see the comments in the code. This method is a translation from FORTRAN to Java of the LINPACK subroutine DGEFA. In the LINPACK listing DGEFA is attributed to Cleve Moler with a date of 8/14/78. Translated by Steve Verrill, March 10, 1998.

Parameters:
a - The matrix to be decomposed
n - The order of a
ipvt - A vector of pivot indices
NotFullRankException

dgesl_f77

public static void dgesl_f77(double[][] a,
                             int n,
                             int[] ipvt,
                             double[] b,
                             int job)

This method uses the LU decomposition provided by DGEFA to solve the equation Ax = b where A is a full rank n by n matrix. For details, see the comments in the code. This method is a translation from FORTRAN to Java of the LINPACK subroutine DGESL. In the LINPACK listing DGESL is attributed to Cleve Moler with a date of 8/14/78. Translated by Steve Verrill, March 11, 1998.

Parameters:
a - a[][]
n - The order of a
ipvt - A vector of pivot indices
b - Input --- the vector b in Ax = b, Output --- the vector x in Ax = b
job - 0 --- solve Ax = b, nonzero --- solve Transpose(A)x = b

dgedi_f77

public static void dgedi_f77(double[][] a,
                             int n,
                             int[] ipvt,
                             double[] det,
                             double[] work,
                             int job)

This method uses the LU decomposition provided by DGEFA to obtain the determinant and/or inverse of a full rank n by n matrix. For details, see the comments in the code. This method is a translation from FORTRAN to Java of the LINPACK subroutine DGEDI. In the LINPACK listing DGEDI is attributed to Cleve Moler with a date of 8/14/78. Translated by Steve Verrill, March 11, 1998.

Parameters:
a - a[][]
n - The order of a
ipvt - A vector of pivot indices
det - det[]
work - work[]
job - Indicates whether a determinant, inverse, or both is desired