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 doubleepsilon(package private) GeneralizedEigenvaluege(package private) GeneralizedInverse2giprivate int[]iparmsprivate ViewUserInterfaceUICommon variables in testing routines.
-
Constructor Summary
Constructors Constructor Description SVD()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidDBDSDC(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) intDCOPY(int n, double[] dx, int incx, double[] dy, int incy)private voidddrvbd(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)voidddrvbd_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 voidderred()voiddgesdd(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)voiddgesvd(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 voidDLAED6(int KNITER, boolean ORGATI, double RHO, double[] D, double[] Z, double FINIT, double[] TAU, int[] INFO)private voidDLAMRG(int N1, int N2, double[] A, int DTRD1, int DTRD2, int[] INDEX)private voidDLASD0(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 voidDLASD1(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 voidDLASD2(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 voidDLASD3(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 voidDLASD4(int N, int I, double[] D, double[] Z, double[] DELTA, double RHO, double[] SIGMA, double[] WORK, int[] INFO)private voidDLASD5(int I, double[] D, double[] Z, double[] DELTA, double RHO, double[] DSIGMA, double[] WORK)private voidDLASD6(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 voidDLASD7(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 voidDLASD8(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 voidDLASDA(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 voidDLASDQ(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 voidDLASDT(int N, int[] LVL, int[] ND, int[] INODE, int[] NDIML, int[] NDIMR, int MSUB)private voiddort03(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) doubleDROUNDUP_LWORK(int LWORK)private doublelog2(double x)doubleSIGN(double A, double B)voidxlaenv(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.
-
-