
Parallel Colt 0.7.2  
PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object optimization.Blas_f77
public class Blas_f77
This class contains Java versions of a number of the LINPACK basic linear algebra subroutines (blas):
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 blas. 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  

Blas_f77()

Method Summary  

static void 
colaxpy_f77(int nrow,
double a,
double[][] x,
int begin,
int j1,
int j2)
This method multiplies a constant times a portion of a column of a matrix and adds the product to the corresponding portion of another column of the matrix  a portion of col2 is replaced by the corresponding portion of a*col1 + col2. 
static double 
coldot_f77(int nrow,
double[][] x,
int begin,
int j1,
int j2)
This method calculates the dot product of portions of two columns of a matrix. 
static int 
colisamax_f77(int n,
double[][] x,
int incx,
int begin,
int j)
This method finds the index of the element of a portion of a column of a matrix that has the maximum absolute value. 
static double 
colnrm2_f77(int nrow,
double[][] x,
int begin,
int j)
This method calculates the Euclidean norm of a portion of a column of a matrix. 
static void 
colrot_f77(int n,
double[][] x,
int j1,
int j2,
double c,
double s)
This method "applies a plane rotation." It is a modification of the LINPACK function DROT. 
static void 
colscal_f77(int nrow,
double a,
double[][] x,
int begin,
int j)
This method scales a portion of a column of a matrix by a constant. 
static void 
colswap_f77(int n,
double[][] x,
int j1,
int j2)
This method interchanges two columns of a matrix. 
static void 
colvaxpy_f77(int nrow,
double a,
double[][] x,
double[] y,
int begin,
int j)
This method multiplies a constant times a portion of a column of a matrix x and adds the product to the corresponding portion of a vector y  a portion of y is replaced by the corresponding portion of ax[j] + y. 
static double 
colvdot_f77(int nrow,
double[][] x,
double[] y,
int begin,
int j)
This method calculates the dot product of a portion of a column of a matrix and the corresponding portion of a vector. 
static void 
colvraxpy_f77(int nrow,
double a,
double[] y,
double[][] x,
int begin,
int j)
This method multiplies a constant times a portion of a vector y and adds the product to the corresponding portion of a column of a matrix x  a portion of column j of x is replaced by the corresponding portion of ay + x[j]. 
static void 
daxpy_f77(int n,
double da,
double[] dx,
int incx,
double[] dy,
int incy)
This method multiplies a constant times a vector and adds the product to another vector  dy = da*dx + dy. 
static void 
dcopy_f77(int n,
double[] dx,
int incx,
double[] dy,
int incy)
This method copies the vector dx to the vector dy. 
static void 
dcopyp_f77(int nrow,
double[] x,
double[] y,
int begin)
This method copies a portion of vector x to the corresponding portion of vector y. 
static double 
ddot_f77(int n,
double[] dx,
int incx,
double[] dy,
int incy)
This method calculates the dot product of two vectors. 
static double 
dnrm2_f77(int n,
double[] x,
int incx)
This method calculates the Euclidean norm of the vector stored in dx with storage increment incx. 
static double 
dnrm2p_f77(int nrow,
double[] x,
int begin)
This method calculates the Euclidean norm of a portion of a vector x. 
static void 
drotg_f77(double[] rotvec)
This method constructs a Givens plane rotation. 
static void 
dscal_f77(int n,
double da,
double[] dx,
int incx)
This method scales a vector by a constant. 
static void 
dscalp_f77(int nrow,
double a,
double[] x,
int begin)
This method scales a portion of a vector by a constant. 
static void 
dswap_f77(int n,
double[] dx,
int incx,
double[] dy,
int incy)
This method interchanges two vectors. 
static int 
isamax_f77(int n,
double[] x,
int incx)
This method finds the index of the element of a vector that has the maximum absolute value. 
static void 
matmat_f77(double[][] a,
double[][] b,
double[][] c,
int n,
int p,
int r)
This method multiplies an n x p matrix by a p x r matrix. 
static void 
mattran_f77(double[][] a,
double[][] at,
int n,
int p)
This method obtains the transpose of an n x p matrix. 
static void 
matvec_f77(double[][] a,
double[] b,
double[] c,
int n,
int p)
This method multiplies an n x p matrix by a p x 1 vector. 
static double 
sign_f77(double a,
double b)
This method implements the FORTRAN sign (not sin) function. 
Methods inherited from class java.lang.Object 

equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Constructor Detail 

public Blas_f77()
Method Detail 

public static int isamax_f77(int n, double[] x, int incx)
This method finds the index of the element of a vector that has the maximum absolute value. It is a translation from FORTRAN to Java of the LINPACK function ISAMAX. In the LINPACK listing ISAMAX is attributed to Jack Dongarra with a date of March 11, 1978. Translated by Steve Verrill, March 10, 1998.
n
 The number of elements to be checkedx
 vectorincx
 The subscript increment for xpublic static int colisamax_f77(int n, double[][] x, int incx, int begin, int j)
This method finds the index of the element of a portion of a column of a matrix that has the maximum absolute value. It is a modification of the LINPACK function ISAMAX. In the LINPACK listing ISAMAX is attributed to Jack Dongarra with a date of March 11, 1978. Translated by Steve Verrill, March 10, 1998.
n
 The number of elements to be checkedx
 The matrixincx
 The subscript increment for xbegin
 The starting rowj
 The id of the columnpublic static void daxpy_f77(int n, double da, double[] dx, int incx, double[] dy, int incy)
This method multiplies a constant times a vector and adds the product to another vector  dy = da*dx + dy. It uses unrolled loops for increments equal to one. It is a translation from FORTRAN to Java of the LINPACK subroutine DAXPY. In the LINPACK listing DAXPY is attributed to Jack Dongarra with a date of 3/11/78. Translated by Steve Verrill, February 25, 1997.
n
 The order of the vectors dy and dxda
 The constantdx
 This vector will be multiplied by the constant daincx
 The subscript increment for dxdy
 This vector will be added to da*dxincy
 The subscript increment for dypublic static double ddot_f77(int n, double[] dx, int incx, double[] dy, int incy)
This method calculates the dot product of two vectors. It uses unrolled loops for increments equal to one. It is a translation from FORTRAN to Java of the LINPACK function DDOT. In the LINPACK listing DDOT is attributed to Jack Dongarra with a date of 3/11/78. Translated by Steve Verrill, February 25, 1997.
n
 The order of the vectors dx and dydx
 vectorincx
 The subscript increment for dxdy
 vectorincy
 The subscript increment for dypublic static void dscal_f77(int n, double da, double[] dx, int incx)
This method scales a vector by a constant. It uses unrolled loops for an increment equal to one. It is a translation from FORTRAN to Java of the LINPACK subroutine DSCAL. In the LINPACK listing DSCAL is attributed to Jack Dongarra with a date of 3/11/78. Translated by Steve Verrill, February 25, 1997.
n
 The order of the vector dxda
 The constantdx
 This vector will be multiplied by the constant daincx
 The subscript increment for dxpublic static void dswap_f77(int n, double[] dx, int incx, double[] dy, int incy)
This method interchanges two vectors. It uses unrolled loops for increments equal to one. It is a translation from FORTRAN to Java of the LINPACK function DSWAP. In the LINPACK listing DSWAP is attributed to Jack Dongarra with a date of 3/11/78. Translated by Steve Verrill, February 25, 1997.
n
 The order of the vectors dx and dydx
 vectorincx
 The subscript increment for dxdy
 vectorincy
 The subscript increment for dypublic static double dnrm2_f77(int n, double[] x, int incx)
This method calculates the Euclidean norm of the vector stored in dx with storage increment incx. It is a translation from FORTRAN to Java of the LINPACK function DNRM2. In the LINPACK listing DNRM2 is attributed to C.L. Lawson with a date of January 8, 1978. The routine below is based on a more recent DNRM2 version that is attributed in LAPACK documentation to Sven Hammarling. Translated by Steve Verrill, February 25, 1997.
n
 The order of the vector xx
 vectorincx
 The subscript increment for xpublic static void dcopy_f77(int n, double[] dx, int incx, double[] dy, int incy)
This method copies the vector dx to the vector dy. It uses unrolled loops for increments equal to one. It is a translation from FORTRAN to Java of the LINPACK subroutine DCOPY. In the LINPACK listing DCOPY is attributed to Jack Dongarra with a date of 3/11/78. Translated by Steve Verrill, March 1, 1997.
n
 The order of dx and dydx
 vectorincx
 The subscript increment for dxdy
 vectorincy
 The subscript increment for dypublic static void drotg_f77(double[] rotvec)
This method constructs a Givens plane rotation. It is a translation from FORTRAN to Java of the LINPACK subroutine DROTG. In the LINPACK listing DROTG is attributed to Jack Dongarra with a date of 3/11/78. Translated by Steve Verrill, March 3, 1997.
rotvec
 Contains the a,b,c,s values. In Java they cannot be passed as
primitive types (e.g., double or int or ...) if we want their
return values to be altered.public static void colaxpy_f77(int nrow, double a, double[][] x, int begin, int j1, int j2)
This method multiplies a constant times a portion of a column of a matrix and adds the product to the corresponding portion of another column of the matrix  a portion of col2 is replaced by the corresponding portion of a*col1 + col2. It uses unrolled loops. It is a modification of the LINPACK subroutine DAXPY. In the LINPACK listing DAXPY is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, February 26, 1997.
nrow
 The number of rows involveda
 The constantx
 The matrixbegin
 The starting rowj1
 The id of col1j2
 The id of col2public static void colvaxpy_f77(int nrow, double a, double[][] x, double[] y, int begin, int j)
This method multiplies a constant times a portion of a column of a matrix x and adds the product to the corresponding portion of a vector y  a portion of y is replaced by the corresponding portion of ax[j] + y. It uses unrolled loops. It is a modification of the LINPACK subroutine DAXPY. In the LINPACK listing DAXPY is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, March 1, 1997.
nrow
 The number of rows involveda
 The constantx
 The matrixy
 The vectorbegin
 The starting rowj
 The id of the column of the x matrixpublic static void colvraxpy_f77(int nrow, double a, double[] y, double[][] x, int begin, int j)
This method multiplies a constant times a portion of a vector y and adds the product to the corresponding portion of a column of a matrix x  a portion of column j of x is replaced by the corresponding portion of ay + x[j]. It uses unrolled loops. It is a modification of the LINPACK subroutine DAXPY. In the LINPACK listing DAXPY is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, March 3, 1997.
nrow
 The number of rows involveda
 The constanty
 The vectorx
 The matrixbegin
 The starting rowj
 The id of the column of the x matrixpublic static double coldot_f77(int nrow, double[][] x, int begin, int j1, int j2)
This method calculates the dot product of portions of two columns of a matrix. It uses unrolled loops. It is a modification of the LINPACK function DDOT. In the LINPACK listing DDOT is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, February 27, 1997.
nrow
 The number of rows involvedx
 The matrixbegin
 The starting rowj1
 The id of the first columnj2
 The id of the second columnpublic static double colvdot_f77(int nrow, double[][] x, double[] y, int begin, int j)
This method calculates the dot product of a portion of a column of a matrix and the corresponding portion of a vector. It uses unrolled loops. It is a modification of the LINPACK function DDOT. In the LINPACK listing DDOT is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, March 1, 1997.
nrow
 The number of rows involvedx
 The matrixy
 The vectorbegin
 The starting rowj
 The id of the column of the matrixpublic static void colscal_f77(int nrow, double a, double[][] x, int begin, int j)
This method scales a portion of a column of a matrix by a constant. It uses unrolled loops. It is a modification of the LINPACK subroutine DSCAL. In the LINPACK listing DSCAL is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, February 27, 1997.
nrow
 The number of rows involveda
 The constantx
 The matrixbegin
 The starting rowj
 The id of the columnpublic static void dscalp_f77(int nrow, double a, double[] x, int begin)
This method scales a portion of a vector by a constant. It uses unrolled loops. It is a modification of the LINPACK subroutine DSCAL. In the LINPACK listing DSCAL is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, March 3, 1997.
nrow
 The number of rows involveda
 The constantx
 The vectorbegin
 The starting rowpublic static void colswap_f77(int n, double[][] x, int j1, int j2)
This method interchanges two columns of a matrix. It uses unrolled loops. It is a modification of the LINPACK function DSWAP. In the LINPACK listing DSWAP is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, February 26, 1997.
n
 The number of rows of the matrixx
 The matrixj1
 The id of the first columnj2
 The id of the second columnpublic static double colnrm2_f77(int nrow, double[][] x, int begin, int j)
This method calculates the Euclidean norm of a portion of a column of a matrix. It is a modification of the LINPACK function dnrm2. In the LINPACK listing dnrm2 is attributed to C.L. Lawson with a date of January 8, 1978. The routine below is based on a more recent dnrm2 version that is attributed in LAPACK documentation to Sven Hammarling. Translated and modified by Steve Verrill, February 26, 1997.
nrow
 The number of rows involvedx
 The matrixbegin
 The starting rowj
 The id of the columnpublic static double dnrm2p_f77(int nrow, double[] x, int begin)
This method calculates the Euclidean norm of a portion of a vector x. It is a modification of the LINPACK function dnrm2. In the LINPACK listing dnrm2 is attributed to C.L. Lawson with a date of January 8, 1978. The routine below is based on a more recent dnrm2 version that is attributed in LAPACK documentation to Sven Hammarling. Translated by Steve Verrill, March 3, 1997.
nrow
 The number of rows involvedx
 vectorbegin
 The starting rowpublic static void dcopyp_f77(int nrow, double[] x, double[] y, int begin)
This method copies a portion of vector x to the corresponding portion of vector y. It uses unrolled loops. It is a modification of the LINPACK subroutine dcopy. In the LINPACK listing dcopy is attributed to Jack Dongarra with a date of 3/11/78. Translated by Steve Verrill, March 1, 1997.
nrow
 The number of rows involvedx
 vectory
 vectorbegin
 The starting rowpublic static void colrot_f77(int n, double[][] x, int j1, int j2, double c, double s)
This method "applies a plane rotation." It is a modification of the LINPACK function DROT. In the LINPACK listing DROT is attributed to Jack Dongarra with a date of 3/11/78. Translated and modified by Steve Verrill, March 4, 1997.
n
 The order of xx
 The matrixj1
 The id of the first columnj2
 The id of the second columnc
 "cos"s
 "sin"public static double sign_f77(double a, double b)
This method implements the FORTRAN sign (not sin) function. See the code for details. Created by Steve Verrill, March 1997.
a
 ab
 bpublic static void matmat_f77(double[][] a, double[][] b, double[][] c, int n, int p, int r)
This method multiplies an n x p matrix by a p x r matrix. Created by Steve Verrill, March 1997.
a
 The left matrixb
 The right matrixc
 The productn
 np
 pr
 rpublic static void mattran_f77(double[][] a, double[][] at, int n, int p)
This method obtains the transpose of an n x p matrix. Created by Steve Verrill, March 1997.
a
 matrixat
 transpose of the matrixn
 np
 ppublic static void matvec_f77(double[][] a, double[] b, double[] c, int n, int p)
This method multiplies an n x p matrix by a p x 1 vector. Created by Steve Verrill, March 1997.
a
 The matrixb
 The vectorc
 The productn
 np
 p

Parallel Colt 0.7.2  
PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 