Class SparseEigenvalue
- java.lang.Object
-
- gov.nih.mipav.model.structures.jama.SparseEigenvalue
-
- All Implemented Interfaces:
java.io.Serializable
public class SparseEigenvalue extends java.lang.Object implements java.io.SerializableThese sparse symmetric eigenvalue and eigenvector routines are ported from the FORTRAN ARPACK package. The license with the orginal ARPACK package is: BSD Software License Pertains to ARPACK and P_ARPACK Copyright (c) 1996-2008 Rice University. Developed by D.C. Sorensen, R.B. Lehoucq, C. Yang, and K. Maschhoff. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution. - Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.- Author:
- ilb
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private booleandgetv0_firstprivate booleandgetv0_initsprivate int[]dgetv0_iseedprivate intdgetv0_iterprivate intdgetv0_msglvlprivate booleandgetv0_orthprivate doubledgetv0_rnorm0private booleandsaitr_firstprivate int[]dsaitr_ierrprivate intdsaitr_ipjprivate intdsaitr_irjprivate intdsaitr_iterprivate intdsaitr_itryprivate intdsaitr_ivjprivate intdsaitr_jprivate intdsaitr_msglvlprivate booleandsaitr_orth1private booleandsaitr_orth2private doubledsaitr_rnorm1private booleandsaitr_rstartprivate doubledsaitr_safminprivate booleandsaitr_step3private booleandsaitr_step4private doubledsaitr_wnormprivate doubledsapps_epsmchprivate booleandsapps_firstprivate booleandsaup2_cnormprivate doubledsaup2_eps23private booleandsaup2_getv0private booleandsaup2_initvprivate intdsaup2_iterprivate intdsaup2_kpluspprivate intdsaup2_msglvlprivate int[]dsaup2_nconvprivate intdsaup2_nev0private intdsaup2_np0private double[]dsaup2_rnormprivate booleandsaup2_updateprivate booleandsaup2_ushiftprivate intdsaupd_boundsprivate intdsaupd_ierrprivate intdsaupd_ihprivate intdsaupd_iqprivate intdsaupd_ishiftprivate intdsaupd_iupdprivate intdsaupd_iwprivate intdsaupd_ldhprivate intdsaupd_ldqprivate intdsaupd_modeprivate intdsaupd_msglvlprivate int[]dsaupd_mxiterprivate intdsaupd_nbprivate int[]dsaupd_nev0private intdsaupd_nextprivate int[]dsaupd_npprivate intdsaupd_ritz(package private) GeneralizedEigenvaluege(package private) LinearEquationsleprivate intmgetv0private intmsaitrprivate intmsappsprivate intmsaup2private intmsaupdprivate intmseigtprivate intmseupdprivate intmsgetsprivate intnbx(package private) java.text.DecimalFormatnfprivate intnitrefprivate intnopxprivate intnrorthprivate intnrstrtprivate longt0private longt1private longt2private longt3private longt4private longt5private doubletgetv0private doubletitrefprivate doubletmvbxprivate doubletmvopxprivate doubletsaitrprivate doubletsappsprivate doubletsaup2private doubletsaupdprivate doubletsconvprivate doubletseigtprivate doubletsgetsprivate ViewUserInterfaceUI
-
Constructor Summary
Constructors Constructor Description SparseEigenvalue()Creates a new SparseEigenvalue object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidatv(int m, int n, double[] w, double[] y)private voidav(int nx, double[] v, double[] w)private voidav2(int n, double[] v, double[] w)private voidav3(int n, double[] v, double[] w)private voidav4(int n, double[] v, double[] w)private voidav5(int n, double[] v, double[] w)private voidav6(int n, double[] v, double[] w)private voidavsimp(int nx, double[] v, double[] w)private voidavsvd(int m, int n, double[] x, double[] w)private voiddchkgt(boolean[] dotype, int nn, int[] nval, int nns, int[] nsval, double thresh, double[] a, double[] af, double[] b, double[] x, double[] xact, double[] work, double[] rwork, int[] iwork)voiddchkgt_test()This dchkgt_test routine is a port of a portion of the version 3.4.1 LAPACK test routine DCHKAA by Univ. of Tennessee, Univ.private voiddgetv0(int[] ido, java.lang.String bmat, int itry, boolean initv, int n, int j, double[][] v, int ldv, double[] resid, double[] rnorm, int[] ipntr, double[] workd, int[] ierr)private voiddgtcon(char NORM, int N, double[] DL, double[] D, double[] DU, double[] DU2, int[] IPIV, double ANORM, double[] RCOND, double[] WORK, int[] IWORK, int[] INFO)private voiddgtrfs(char trans, int n, int nrhs, double[] dl, double[] d, double[] du, double[] dlf, double[] df, double[] duf, double[] du2, int[] ipiv, double[][] b, int ldb, double[][] x, int ldx, double[] ferr, double[] berr, double[] work, int[] iwork, int[] info)private voiddgtt01(int n, double[] dl, double[] d, double[] du, double[] dlf, double[] df, double[] duf, double[] du2, int[] ipiv, double[][] work, int ldwork, double[] rwork, double[] resid)private voiddgtt02(char TRANS, int N, int NRHS, double[] DL, double[] D, double[] DU, double[][] X, int LDX, double[][] B, int LDB, double[] RWORK, double[] RESID)private voiddgtt05(char trans, int n, int nrhs, double[] dl, double[] d, double[] du, double[][] b, int ldb, double[][] x, int ldx, double[][] xact, int ldxact, double[] ferr, double[] berr, double[] reslts)private voiddgttrf(int N, double[] DL, double[] D, double[] DU, double[] DU2, int[] IPIV, int[] INFO)private voiddgttrs(char TRANS, int N, int NRHS, double[] DL, double[] D, double[] DU, double[] DU2, int[] IPIV, double[][] B, int LDB, int[] INFO)private voidDGTTS2(int ITRANS, int N, int NRHS, double[] DL, double[] D, double[] DU, double[] DU2, int[] IPIV, double[][] B, int LDB)private voiddlagtm(char trans, int n, int nrhs, double alpha, double[] dl, double[] d, double[] du, double[][] x, int ldx, double beta, double[][] b, int ldb)private doubledlangt(char norm, int n, double[] dl, double[] d, double[] du)private voiddsaitr(int[] ido, java.lang.String bmat, int n, int k, int np, int mode, double[] resid, double[] rnorm, double[][] v, int ldv, double[][] h, int ldh, int[] ipntr, double[] workd, int[] info)private voiddsapps(int n, int kev, int np, double[] shift, double[][] v, int ldv, double[][] h, int ldh, double[] resid, double[][] q, int ldq, double[] workd)private voiddsaup2(int[] ido, java.lang.String bmat, int n, java.lang.String which, int[] nev, int[] np, double[] tol, double[] resid, int mode, int iupd, int ishift, int[] mxiter, double[][] v, int ldv, double[][] h, int ldh, double[] ritz, double[] bounds, double[][] q, int ldq, double[] workl, int[] ipntr, double[] workd, int[] info)voiddsaupd(int[] ido, java.lang.String bmat, int n, java.lang.String which, int nev, double[] tol, double[] resid, int ncv, double[][] v, int ldv, int[] iparam, int[] ipntr, double[] workd, double[] workl, int lworkl, int[] info)private voiddsconv(int n, double[] ritz, double[] bounds, double tol, int[] nconv)voiddsdrv1()voiddsdrv2()voiddsdrv3()voiddsdrv4()voiddsdrv5()voiddsdrv6()private voiddseigt(double rnorm, int n, double[][] h, int ldh, double[] eig, double[] bounds, double[] workl, int[] ierr)private voiddsesrt(java.lang.String which, boolean apply, int n, double[] x, int na, double[][] a, int lda)voiddseupd(boolean rvec, java.lang.String howmny, boolean[] select, double[] d, double[][] z, int ldz, double sigma, java.lang.String bmat, int n, java.lang.String which, int nev, double tol, double[] resid, int ncv, double[][] v, int ldv, int[] iparam, int[] ipntr, double[] workd, double[] workl, int lworkl, int[] info)private voiddsgets(int ishift, java.lang.String which, int kev, int np, double[] ritz, double[] bounds, double[] shifts)private voiddsortr(java.lang.String which, boolean apply, int n, double[] x1, double[] x2)voiddssimp()private voiddstats()private voiddstqrb(int n, double[] d, double[] e, double[] z, double[] work, int[] info)voiddsvd()private voidmatMult(int n, double[][] A, double[] x, double[] y)private voidmv3(int n, double[] v, double[] w)private voidmv4(int n, double[] v, double[] w)private voidmv5(int n, double[] v, double[] w)private voidmv6(int n, double[] v, double[] w)private voidprintHeader()voidsimpleEigenvalue(double[][] A, int nev, java.lang.String which, double[] tol, int ncv, double[] d, double[][] Z)Calculate requested eigenvalues and eigenvectors of a matrixvoidsimpleEigenvalueTest1()private voidtv(int nx, double[] x, double[] y)private voidtvsimp(int nx, double[] x, double[] y)
-
-
-
Field Detail
-
ge
GeneralizedEigenvalue ge
-
le
LinearEquations le
-
UI
private ViewUserInterface UI
-
nf
java.text.DecimalFormat nf
-
dsaupd_bounds
private int dsaupd_bounds
-
dsaupd_ierr
private int dsaupd_ierr
-
dsaupd_ih
private int dsaupd_ih
-
dsaupd_iq
private int dsaupd_iq
-
dsaupd_ishift
private int dsaupd_ishift
-
dsaupd_iupd
private int dsaupd_iupd
-
dsaupd_iw
private int dsaupd_iw
-
dsaupd_ldh
private int dsaupd_ldh
-
dsaupd_ldq
private int dsaupd_ldq
-
dsaupd_msglvl
private int dsaupd_msglvl
-
dsaupd_mxiter
private int[] dsaupd_mxiter
-
dsaupd_mode
private int dsaupd_mode
-
dsaupd_nb
private int dsaupd_nb
-
dsaupd_nev0
private int[] dsaupd_nev0
-
dsaupd_next
private int dsaupd_next
-
dsaupd_np
private int[] dsaupd_np
-
dsaupd_ritz
private int dsaupd_ritz
-
t0
private long t0
-
t1
private long t1
-
t2
private long t2
-
t3
private long t3
-
t4
private long t4
-
t5
private long t5
-
nopx
private int nopx
-
nbx
private int nbx
-
nrorth
private int nrorth
-
nitref
private int nitref
-
nrstrt
private int nrstrt
-
tsaupd
private double tsaupd
-
tsaup2
private double tsaup2
-
tsaitr
private double tsaitr
-
tseigt
private double tseigt
-
tsgets
private double tsgets
-
tsapps
private double tsapps
-
tsconv
private double tsconv
-
titref
private double titref
-
tgetv0
private double tgetv0
-
tmvopx
private double tmvopx
-
tmvbx
private double tmvbx
-
mgetv0
private int mgetv0
-
msaupd
private int msaupd
-
msaup2
private int msaup2
-
msaitr
private int msaitr
-
mseigt
private int mseigt
-
msapps
private int msapps
-
msgets
private int msgets
-
mseupd
private int mseupd
-
dsaup2_cnorm
private boolean dsaup2_cnorm
-
dsaup2_getv0
private boolean dsaup2_getv0
-
dsaup2_initv
private boolean dsaup2_initv
-
dsaup2_update
private boolean dsaup2_update
-
dsaup2_ushift
private boolean dsaup2_ushift
-
dsaup2_iter
private int dsaup2_iter
-
dsaup2_kplusp
private int dsaup2_kplusp
-
dsaup2_msglvl
private int dsaup2_msglvl
-
dsaup2_nconv
private int[] dsaup2_nconv
-
dsaup2_nev0
private int dsaup2_nev0
-
dsaup2_np0
private int dsaup2_np0
-
dsaup2_rnorm
private double[] dsaup2_rnorm
-
dsaup2_eps23
private double dsaup2_eps23
-
dgetv0_first
private boolean dgetv0_first
-
dgetv0_inits
private boolean dgetv0_inits
-
dgetv0_orth
private boolean dgetv0_orth
-
dgetv0_iseed
private int[] dgetv0_iseed
-
dgetv0_iter
private int dgetv0_iter
-
dgetv0_msglvl
private int dgetv0_msglvl
-
dgetv0_rnorm0
private double dgetv0_rnorm0
-
dsaitr_orth1
private boolean dsaitr_orth1
-
dsaitr_orth2
private boolean dsaitr_orth2
-
dsaitr_rstart
private boolean dsaitr_rstart
-
dsaitr_step3
private boolean dsaitr_step3
-
dsaitr_step4
private boolean dsaitr_step4
-
dsaitr_first
private boolean dsaitr_first
-
dsaitr_ierr
private int[] dsaitr_ierr
-
dsaitr_ipj
private int dsaitr_ipj
-
dsaitr_irj
private int dsaitr_irj
-
dsaitr_ivj
private int dsaitr_ivj
-
dsaitr_iter
private int dsaitr_iter
-
dsaitr_itry
private int dsaitr_itry
-
dsaitr_j
private int dsaitr_j
-
dsaitr_msglvl
private int dsaitr_msglvl
-
dsaitr_rnorm1
private double dsaitr_rnorm1
-
dsaitr_safmin
private double dsaitr_safmin
-
dsaitr_wnorm
private double dsaitr_wnorm
-
dsapps_epsmch
private double dsapps_epsmch
-
dsapps_first
private boolean dsapps_first
-
-
Method Detail
-
simpleEigenvalueTest1
public void simpleEigenvalueTest1()
-
simpleEigenvalue
public void simpleEigenvalue(double[][] A, int nev, java.lang.String which, double[] tol, int ncv, double[] d, double[][] Z)Calculate requested eigenvalues and eigenvectors of a matrix- Parameters:
A- Symmetric real matrix for which eigenvalues and eigenvectors will be calculated n = A.length = A[0].lengthnev- Number of eigenvalues and accompanying eigenvectors to be calculatedwhich- WHICH must be one of "LM", "SM", "LA", "SA" or "BE" largest and smallest magnitudes, largest and smallest amplitudes, both ends of the spectrumtol- determines the stopping criterion. Expect | abs(lambdaC - lambdaT) < tol*abs(lambdaC) computed true If tol .le. 0, then tol <- macheps (machine precision) is used.ncv- The largest number of basis vectors that will be used in the Implicitly Restarted Arnoldi Process. Work per major iteration is proportional to n*ncv*ncv. As a rule of thumb, ncv >= 2 * nev is reasonable. ncv must be >= nev+1 and ncv must be <= n.d- User supplied array of size nev will hold the calculated eigenvaluesZ- User supplied array of size [A.length][nev] to hold the calculated eigenvalues
-
matMult
private void matMult(int n, double[][] A, double[] x, double[] y)
-
dssimp
public void dssimp()
-
avsimp
private void avsimp(int nx, double[] v, double[] w)
-
tvsimp
private void tvsimp(int nx, double[] x, double[] y)
-
dsvd
public void dsvd()
-
avsvd
private void avsvd(int m, int n, double[] x, double[] w)
-
atv
private void atv(int m, int n, double[] w, double[] y)
-
dsdrv1
public void dsdrv1()
-
av
private void av(int nx, double[] v, double[] w)
-
tv
private void tv(int nx, double[] x, double[] y)
-
dsdrv2
public void dsdrv2()
-
av2
private void av2(int n, double[] v, double[] w)
-
dsdrv3
public void dsdrv3()
-
mv3
private void mv3(int n, double[] v, double[] w)
-
av3
private void av3(int n, double[] v, double[] w)
-
dsdrv4
public void dsdrv4()
-
mv4
private void mv4(int n, double[] v, double[] w)
-
av4
private void av4(int n, double[] v, double[] w)
-
dsdrv5
public void dsdrv5()
-
mv5
private void mv5(int n, double[] v, double[] w)
-
av5
private void av5(int n, double[] v, double[] w)
-
dsdrv6
public void dsdrv6()
-
mv6
private void mv6(int n, double[] v, double[] w)
-
av6
private void av6(int n, double[] v, double[] w)
-
dchkgt_test
public void dchkgt_test()
This dchkgt_test routine is a port of a portion of the version 3.4.1 LAPACK test routine DCHKAA by Univ. of Tennessee, Univ. Of California Berkeley and NAG Ltd., April, 2012. and some values from the test data file dtest.in. Received message In dchkgt all 2694 tests run passed the threshold.
-
dchkgt
private void dchkgt(boolean[] dotype, int nn, int[] nval, int nns, int[] nsval, double thresh, double[] a, double[] af, double[] b, double[] x, double[] xact, double[] work, double[] rwork, int[] iwork)
-
dgtt05
private void dgtt05(char trans, int n, int nrhs, double[] dl, double[] d, double[] du, double[][] b, int ldb, double[][] x, int ldx, double[][] xact, int ldxact, double[] ferr, double[] berr, double[] reslts)
-
dgtrfs
private void dgtrfs(char trans, int n, int nrhs, double[] dl, double[] d, double[] du, double[] dlf, double[] df, double[] duf, double[] du2, int[] ipiv, double[][] b, int ldb, double[][] x, int ldx, double[] ferr, double[] berr, double[] work, int[] iwork, int[] info)
-
dgtt02
private void dgtt02(char TRANS, int N, int NRHS, double[] DL, double[] D, double[] DU, double[][] X, int LDX, double[][] B, int LDB, double[] RWORK, double[] RESID)
-
printHeader
private void printHeader()
-
dlagtm
private void dlagtm(char trans, int n, int nrhs, double alpha, double[] dl, double[] d, double[] du, double[][] x, int ldx, double beta, double[][] b, int ldb)
-
dgtcon
private void dgtcon(char NORM, int N, double[] DL, double[] D, double[] DU, double[] DU2, int[] IPIV, double ANORM, double[] RCOND, double[] WORK, int[] IWORK, int[] INFO)
-
dgtt01
private void dgtt01(int n, double[] dl, double[] d, double[] du, double[] dlf, double[] df, double[] duf, double[] du2, int[] ipiv, double[][] work, int ldwork, double[] rwork, double[] resid)
-
dlangt
private double dlangt(char norm, int n, double[] dl, double[] d, double[] du)
-
dgttrf
private void dgttrf(int N, double[] DL, double[] D, double[] DU, double[] DU2, int[] IPIV, int[] INFO)
-
dgttrs
private void dgttrs(char TRANS, int N, int NRHS, double[] DL, double[] D, double[] DU, double[] DU2, int[] IPIV, double[][] B, int LDB, int[] INFO)
-
DGTTS2
private void DGTTS2(int ITRANS, int N, int NRHS, double[] DL, double[] D, double[] DU, double[] DU2, int[] IPIV, double[][] B, int LDB)
-
dseupd
public void dseupd(boolean rvec, java.lang.String howmny, boolean[] select, double[] d, double[][] z, int ldz, double sigma, java.lang.String bmat, int n, java.lang.String which, int nev, double tol, double[] resid, int ncv, double[][] v, int ldv, int[] iparam, int[] ipntr, double[] workd, double[] workl, int lworkl, int[] info)
-
dsesrt
private void dsesrt(java.lang.String which, boolean apply, int n, double[] x, int na, double[][] a, int lda)
-
dsaupd
public void dsaupd(int[] ido, java.lang.String bmat, int n, java.lang.String which, int nev, double[] tol, double[] resid, int ncv, double[][] v, int ldv, int[] iparam, int[] ipntr, double[] workd, double[] workl, int lworkl, int[] info)
-
dsaup2
private void dsaup2(int[] ido, java.lang.String bmat, int n, java.lang.String which, int[] nev, int[] np, double[] tol, double[] resid, int mode, int iupd, int ishift, int[] mxiter, double[][] v, int ldv, double[][] h, int ldh, double[] ritz, double[] bounds, double[][] q, int ldq, double[] workl, int[] ipntr, double[] workd, int[] info)
-
dsapps
private void dsapps(int n, int kev, int np, double[] shift, double[][] v, int ldv, double[][] h, int ldh, double[] resid, double[][] q, int ldq, double[] workd)
-
dsconv
private void dsconv(int n, double[] ritz, double[] bounds, double tol, int[] nconv)
-
dsgets
private void dsgets(int ishift, java.lang.String which, int kev, int np, double[] ritz, double[] bounds, double[] shifts)
-
dsortr
private void dsortr(java.lang.String which, boolean apply, int n, double[] x1, double[] x2)
-
dseigt
private void dseigt(double rnorm, int n, double[][] h, int ldh, double[] eig, double[] bounds, double[] workl, int[] ierr)
-
dstqrb
private void dstqrb(int n, double[] d, double[] e, double[] z, double[] work, int[] info)
-
dsaitr
private void dsaitr(int[] ido, java.lang.String bmat, int n, int k, int np, int mode, double[] resid, double[] rnorm, double[][] v, int ldv, double[][] h, int ldh, int[] ipntr, double[] workd, int[] info)
-
dgetv0
private void dgetv0(int[] ido, java.lang.String bmat, int itry, boolean initv, int n, int j, double[][] v, int ldv, double[] resid, double[] rnorm, int[] ipntr, double[] workd, int[] ierr)
-
dstats
private void dstats()
-
-