Class SVD
- java.lang.Object
-
- gov.nih.mipav.model.structures.jama.SVD
-
- All Implemented Interfaces:
java.io.Serializable
public class SVD extends java.lang.Object implements java.io.Serializable
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private double
epsilon
(package private) GeneralizedEigenvalue
ge
(package private) GeneralizedInverse2
gi
private int[]
iparms
private ViewUserInterface
UI
Common variables in testing routines.
-
Constructor Summary
Constructors Constructor Description SVD()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
DBDSDC(char UPLO, char COMPQ, int N, double[] D, double[] E, double[][] U, int LDU, double[][] VT, int LDVT, double[] Q, int[] IQ, double[] WORK, int[] IWORK, int[] INFO)
(package private) int
DCOPY(int n, double[] dx, int incx, double[] dy, int incy)
private void
ddrvbd(int nsizes, int[] mm, int[] nn, int ntypes, boolean[] dotype, int[] iseed, double thresh, double[][] A, int lda, double[][] U, int ldu, double[][] VT, int ldvt, double[][] ASAV, double[][] USAV, double[][] VTSAV, double[] s, double[] ssav, double[] e, double[] work, int lwork, int[] iwork, int[] info)
void
ddrvbd_test()
This routine is an extraction from the FORTRAN program version 3.4.1 DCHKEE of the code needed to drive ddrvbd in order to run ddrvbd in order to test the singular value decomposition drivers dgesvd and dgesdd.private void
derred()
void
dgesdd(char JOBZ, int M, int N, double[][] A, int LDA, double[] S, double[][] U, int LDU, double[][] VT, int LDVT, double[] WORK, int LWORK, int[] IWORK, int[] INFO)
void
dgesvd(char jobu, char jobvt, int m, int n, double[][] A, int lda, double[] s, double[][] U, int ldu, double[][] VT, int ldvt, double[] work, int lwork, int[] info)
private void
DLAED6(int KNITER, boolean ORGATI, double RHO, double[] D, double[] Z, double FINIT, double[] TAU, int[] INFO)
private void
DLAMRG(int N1, int N2, double[] A, int DTRD1, int DTRD2, int[] INDEX)
private void
DLASD0(int N, int SQRE, double[] D, double[] E, double[][] U, int LDU, double[][] VT, int LDVT, int SMLSIZ, int[] IWORK, double[] WORK, int[] INFO)
private void
DLASD1(int NL, int NR, int SQRE, double[] D, double[] ALPHA, double[] BETA, double[][] U, int LDU, double[][] VT, int LDVT, int[] IDXQ, int[] IWORK, double[] WORK, int[] INFO)
private void
DLASD2(int NL, int NR, int SQRE, int[] K, double[] D, double[] Z, double ALPHA, double BETA, double[][] U, int LDU, double[][] VT, int LDVT, double[] DSIGMA, double[][] U2, int LDU2, double[][] VT2, int LDVT2, int[] IDXP, int[] IDX, int[] IDXC, int[] IDXQ, int[] COLTYP, int[] INFO)
private void
DLASD3(int NL, int NR, int SQRE, int K, double[] D, double[][] Q, int LDQ, double[] DSIGMA, double[][] U, int LDU, double[][] U2, int LDU2, double[][] VT, int LDVT, double[][] VT2, int LDVT2, int[] IDXC, int[] CTOT, double[] Z, int[] INFO)
private void
DLASD4(int N, int I, double[] D, double[] Z, double[] DELTA, double RHO, double[] SIGMA, double[] WORK, int[] INFO)
private void
DLASD5(int I, double[] D, double[] Z, double[] DELTA, double RHO, double[] DSIGMA, double[] WORK)
private void
DLASD6(int ICOMPQ, int NL, int NR, int SQRE, double[] D, double[] VF, double[] VL, double[] ALPHA, double[] BETA, int[] IDXQ, int[] PERM, int[] GIVPTR, int[][] GIVCOL, int LDGCOL, double[][] GIVNUM, int LDGNUM, double[][] POLES, double[] DIFL, double[][] DIFR, double[] Z, int[] K, double[] C, double[] S, double[] WORK, int[] IWORK, int[] INFO)
private void
DLASD7(int ICOMPQ, int NL, int NR, int SQRE, int[] K, double[] D, double[] Z, double[] ZW, double[] VF, double[] VFW, double[] VL, double[] VLW, double ALPHA, double BETA, double[] DSIGMA, int[] IDX, int[] IDXP, int[] IDXQ, int[] PERM, int[] GIVPTR, int[][] GIVCOL, int LDGCOL, double[][] GIVNUM, int LDGNUM, double[] C, double[] S, int[] INFO)
private void
DLASD8(int ICOMPQ, int K, double[] D, double[] Z, double[] VF, double[] VL, double[] DIFL, double[][] DIFR, int LDDIFR, double[] DSIGMA, double[] WORK, int[] INFO)
private void
DLASDA(int ICOMPQ, int SMLSIZ, int N, int SQRE, double[] D, double[] E, double[][] U, int LDU, double[][] VT, int[] K, double[][] DIFL, double[][] DIFR, double[][] Z, double[][] POLES, int[] GIVPTR, int[][] GIVCOL, int LDGCOL, int[][] PERM, double[][] GIVNUM, double[] C, double[] S, double[] WORK, int[] IWORK, int[] INFO)
private void
DLASDQ(char UPLO, int SQRE, int N, int NCVT, int NRU, int NCC, double[] D, double[] E, double[][] VT, int LDVT, double[][] U, int LDU, double[][] C, int LDC, double[] WORK, int[] INFO)
private void
DLASDT(int N, int[] LVL, int[] ND, int[] INODE, int[] NDIML, int[] NDIMR, int MSUB)
private void
dort03(char rc, int mu, int mv, int n, int k, double[][] U, int ldu, double[][] V, int ldv, double[] work, int lwork, double[] result, int[] info)
(package private) double
DROUNDUP_LWORK(int LWORK)
private double
log2(double x)
double
SIGN(double A, double B)
void
xlaenv(int ispec, int nvalue)
This is a port of version 3.1 LAPACK auxiliary routine XLAENV.
-
-
-
Field Detail
-
ge
GeneralizedEigenvalue ge
-
gi
GeneralizedInverse2 gi
-
UI
private ViewUserInterface UI
Common variables in testing routines.
-
iparms
private int[] iparms
-
epsilon
private double epsilon
-
-
Method Detail
-
ddrvbd_test
public void ddrvbd_test()
This routine is an extraction from the FORTRAN program version 3.4.1 DCHKEE of the code needed to drive ddrvbd in order to run ddrvbd in order to test the singular value decomposition drivers dgesvd and dgesdd. Numerical values were obtained from the svd.in datafile. Original DCHKEE created by Univ. of Tennessee, Univ. of California Berkeley, University of Colorado Denver, and NAG Ltd., April, 2012 Always see All 2660.0 dgesvd tests passed by being less than the threshold If DLASD0 uses if (N <= SMLSIZ) to call DLASDQ rather than divide and conquer see 96 out of 2660 dgesdd tests failed by being >= the threshold. If DLASDO uses if (true) so that DLASDQ is always called instead of divide and conquer see All 2660.0 dgesdd tests passed by being less than the threshold.
-
derred
private void derred()
-
ddrvbd
private void ddrvbd(int nsizes, int[] mm, int[] nn, int ntypes, boolean[] dotype, int[] iseed, double thresh, double[][] A, int lda, double[][] U, int ldu, double[][] VT, int ldvt, double[][] ASAV, double[][] USAV, double[][] VTSAV, double[] s, double[] ssav, double[] e, double[] work, int lwork, int[] iwork, int[] info)
-
dort03
private void dort03(char rc, int mu, int mv, int n, int k, double[][] U, int ldu, double[][] V, int ldv, double[] work, int lwork, double[] result, int[] info)
-
dgesdd
public void dgesdd(char JOBZ, int M, int N, double[][] A, int LDA, double[] S, double[][] U, int LDU, double[][] VT, int LDVT, double[] WORK, int LWORK, int[] IWORK, int[] INFO)
-
DBDSDC
public void DBDSDC(char UPLO, char COMPQ, int N, double[] D, double[] E, double[][] U, int LDU, double[][] VT, int LDVT, double[] Q, int[] IQ, double[] WORK, int[] IWORK, int[] INFO)
-
log2
private double log2(double x)
-
DLASDA
private void DLASDA(int ICOMPQ, int SMLSIZ, int N, int SQRE, double[] D, double[] E, double[][] U, int LDU, double[][] VT, int[] K, double[][] DIFL, double[][] DIFR, double[][] Z, double[][] POLES, int[] GIVPTR, int[][] GIVCOL, int LDGCOL, int[][] PERM, double[][] GIVNUM, double[] C, double[] S, double[] WORK, int[] IWORK, int[] INFO)
-
DLASD6
private void DLASD6(int ICOMPQ, int NL, int NR, int SQRE, double[] D, double[] VF, double[] VL, double[] ALPHA, double[] BETA, int[] IDXQ, int[] PERM, int[] GIVPTR, int[][] GIVCOL, int LDGCOL, double[][] GIVNUM, int LDGNUM, double[][] POLES, double[] DIFL, double[][] DIFR, double[] Z, int[] K, double[] C, double[] S, double[] WORK, int[] IWORK, int[] INFO)
-
DLASD7
private void DLASD7(int ICOMPQ, int NL, int NR, int SQRE, int[] K, double[] D, double[] Z, double[] ZW, double[] VF, double[] VFW, double[] VL, double[] VLW, double ALPHA, double BETA, double[] DSIGMA, int[] IDX, int[] IDXP, int[] IDXQ, int[] PERM, int[] GIVPTR, int[][] GIVCOL, int LDGCOL, double[][] GIVNUM, int LDGNUM, double[] C, double[] S, int[] INFO)
-
DLASD8
private void DLASD8(int ICOMPQ, int K, double[] D, double[] Z, double[] VF, double[] VL, double[] DIFL, double[][] DIFR, int LDDIFR, double[] DSIGMA, double[] WORK, int[] INFO)
-
DLASD0
private void DLASD0(int N, int SQRE, double[] D, double[] E, double[][] U, int LDU, double[][] VT, int LDVT, int SMLSIZ, int[] IWORK, double[] WORK, int[] INFO)
-
DLASD1
private void DLASD1(int NL, int NR, int SQRE, double[] D, double[] ALPHA, double[] BETA, double[][] U, int LDU, double[][] VT, int LDVT, int[] IDXQ, int[] IWORK, double[] WORK, int[] INFO)
-
DLASD3
private void DLASD3(int NL, int NR, int SQRE, int K, double[] D, double[][] Q, int LDQ, double[] DSIGMA, double[][] U, int LDU, double[][] U2, int LDU2, double[][] VT, int LDVT, double[][] VT2, int LDVT2, int[] IDXC, int[] CTOT, double[] Z, int[] INFO)
-
DLASD4
private void DLASD4(int N, int I, double[] D, double[] Z, double[] DELTA, double RHO, double[] SIGMA, double[] WORK, int[] INFO)
-
DLAED6
private void DLAED6(int KNITER, boolean ORGATI, double RHO, double[] D, double[] Z, double FINIT, double[] TAU, int[] INFO)
-
DLASD5
private void DLASD5(int I, double[] D, double[] Z, double[] DELTA, double RHO, double[] DSIGMA, double[] WORK)
-
DLAMRG
private void DLAMRG(int N1, int N2, double[] A, int DTRD1, int DTRD2, int[] INDEX)
-
DLASD2
private void DLASD2(int NL, int NR, int SQRE, int[] K, double[] D, double[] Z, double ALPHA, double BETA, double[][] U, int LDU, double[][] VT, int LDVT, double[] DSIGMA, double[][] U2, int LDU2, double[][] VT2, int LDVT2, int[] IDXP, int[] IDX, int[] IDXC, int[] IDXQ, int[] COLTYP, int[] INFO)
-
DLASDT
private void DLASDT(int N, int[] LVL, int[] ND, int[] INODE, int[] NDIML, int[] NDIMR, int MSUB)
-
DLASDQ
private void DLASDQ(char UPLO, int SQRE, int N, int NCVT, int NRU, int NCC, double[] D, double[] E, double[][] VT, int LDVT, double[][] U, int LDU, double[][] C, int LDC, double[] WORK, int[] INFO)
-
DCOPY
int DCOPY(int n, double[] dx, int incx, double[] dy, int incy)
-
SIGN
public double SIGN(double A, double B)
-
DROUNDUP_LWORK
double DROUNDUP_LWORK(int LWORK)
-
dgesvd
public void dgesvd(char jobu, char jobvt, int m, int n, double[][] A, int lda, double[] s, double[][] U, int ldu, double[][] VT, int ldvt, double[] work, int lwork, int[] info)
-
xlaenv
public void xlaenv(int ispec, int nvalue)
This is a port of version 3.1 LAPACK auxiliary routine XLAENV. Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. November 2006 .. Scalar Arguments .. INTEGER ISPEC, NVALUE .. Purpose ======= XLAENV sets certain machine- and problem-dependent quantities which will later be retrieved by ILAENV. Arguments ========= ISPEC (input) INTEGER Specifies the parameter to be set in the COMMON array IPARMS. = 1: the optimal blocksize; if this value is 1, an unblocked algorithm will give the best performance. = 2: the minimum block size for which the block routine should be used; if the usable block size is less than this value, an unblocked routine should be used. = 3: the crossover point (in a block routine, for N less than this value, an unblocked routine should be used) = 4: the number of shifts, used in the nonsymmetric eigenvalue routines = 5: the minimum column dimension for blocking to be used; rectangular blocks must have dimension at least k by m, where k is given by ILAENV(2,...) and m by ILAENV(5,...) = 6: the crossover point for the SVD (when reducing an m by n matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds this value, a QR factorization is used first to reduce the matrix to a triangular form) = 7: the number of processors = 8: another crossover point, for the multishift QR and QZ methods for nonsymmetric eigenvalue problems. = 9: maximum size of the subproblems at the bottom of the computation tree in the divide-and-conquer algorithm (used by xGELSD and xGESDD) =10: ieee NaN arithmetic can be trusted not to trap =11: infinity arithmetic can be trusted not to trap NVALUE (input) INTEGER The value of the parameter specified by ISPEC.
-
-