Package gov.nih.mipav.model.algorithms
Class DoublyConnectedSC
java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.DoublyConnectedSC
- All Implemented Interfaces:
ActionListener,WindowListener,Runnable,EventListener
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate double[]private double[]private double[]private doubleprivate final intprivate double[][]private intprivate intprivate int[]private double[][]private intprivate intprivate intprivate intprivate intprivate intprivate intprivate intprivate int[]private intprivate doubleprivate int[]private intprivate intprivate intprivate intprivate double[]private double[]private double[]private SchwarzChristoffelMappingprivate booleanprivate doubleprivate double[]private double[]private double[]private double[][]private double[][]private double[][]private double[][]private double[][]private double[][]Fields inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
destFlag, destImage, image25D, mask, maxProgressValue, minProgressValue, multiThreadingEnabled, nthreads, progress, progressModulus, progressStep, runningInSeparateThread, separable, srcImage, threadStoppedFields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
ConstructorsConstructorDescriptionDoublyConnectedSC(int IPOLY, int NPTQ, int ISOLV, int ISPRT) DoublyConnectedSC(ModelImage destImg, ModelImage srcImg, double[][] Z0, double[][] Z1, int NPTQ, int ISPRT, int IGUESS, int LINEARC, double TOL) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidANGLES(int MN, double[][] Z01, double[] ALFA01, int I01) private doubleARGUM(double U1, double[] W01K) private voidCHECK(double[] ALFA0, double[] ALFA1, int M, int N, int ISHAPE) private voidCLASS(int N, double ALPHA, double BETA, double[] B, double[] A, double[] MUZERO) private doubleDGAMMA(double X) private doubleDIST(int M, int N, double[][] W0, double[][] W1, double[] W, int KWA, int IC) private voidDOGLEG(int N, double[] R, int LR, double[] DIAG, double[] QTB, double DELTA, double[] X, double[] WA1, double[] WA2) private voidDSCDATA(int IPOLY, int[] M, int[] N, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1) private voidDSCFUN(int NDIM, double[] X, double[] FVAL, int[] IFLAG) private voidDSCPRINT(int M, int N, double[] C, double U, double[][] W0, double[][] W1, double[] PHI0, double[] PHI1, double TOL, int NPTQ) private voidDSCSOLV(double TOL, int IGUESS, int M, int N, double[] U, double[] C, double[][] W0, double[][] W1, double[] PHI0, double[] PHI1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK, int ISHAPE, int LINEARC) private voidDSCTEST(int M, int N, double U, double[] C, double[][] W0, double[][] W1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK) private doubleENORM(int N, double[] X) private voidFDJAC1(int FCN, int N, double[] X, double[] FVEC, double[][] FJAC, int LDFJAC, int[] IFLAG, int ML, int MU, double EPSFCN, double[] WA1, double[] WA2) private doubleFMAX(int MN, double[] FVAL) private voidGAUSSJ(int N, double ALPHA, double BETA, double[] B, double[] T, double[] W) private voidHYBRD(int FCN, int N, double[] X, double[] FVEC, double XTOL, int MAXFEV, int ML, int MU, double EPSFCN, double[] DIAG, int MODE, double FACTOR, int NPRINT, int[] INFO, int[] NFEV, double[][] FJAC, int LDFJAC, double[] R, int LR, double[] QTF, double[] WA1, double[] WA2, double[] WA3, double[] WA4) private voidIMTQL2(int N, double[] D, double[] E, double[] Z, int[] IERR) private voidNEARW(int M, int N, double[][] W0, double[][] W1, double[] ALFA0, double[] W, int[] KNEAR, int[] INEAR) private voidNEARZ(int M, int N, double[][] Z0, double[][] Z1, double[] ALFA0, double[] Z, int[] KNZ, int[] INZ) private voidplot(double U, double[] R, double[] theta, int num1draw, int num2draw, int yInvert, double[][] W0, double[][] W1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, double[] QWORK, double[] C) private voidQFORM(int M, int N, double[][] Q, int LDQ, double[] WA) private voidQINIT(int M, int N, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK) private voidQRFAC(int M, int N, double[][] A, int LDA, boolean PIVOT, int[] IPVT, int LIPVT, double[] RDIAG, double[] ACNORM, double[] WA) private voidR1MPYQ(int M, int N, double[][] A, int LDA, double[] V, double[] W) private voidR1UPDT(int M, int N, double[] S, int LS, double[] U, double[] V, double[] W, boolean[] SING) voidActually runs the algorithm.private voidTHDATA(double[] U) private double[]WDSC(double[] ZZ, int M, int N, double U, double[] C, double[][] W0, double[][] W1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, double[] PHI0, double[] PHI1, int NPTQ, double[] QWORK, double EPS, int IOPT) private double[]WPROD(double[] W, int M, int N, double U, double[][] W0, double[][] W1, double[] ALFA0, double[] ALFA1) private double[]WQSUM(double[] WA, double PHIA, int KWA, int IC, double[] WB, double PHIB, double RADIUS, int M, int N, double U, double[][] W0, double[][] W1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK, int LINEARC) private double[]WQUAD(double[] WA, double PHIA, int KWA, int ICA, double[] WB, double PHIB, int KWB, int ICB, double RADIUS, int M, int N, double U, double[][] W0, double[][] W1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK, int LINEARC, int IEVL) private double[]WQUAD1(double[] WA, double PHIA, int KWA, int IC, double[] WB, double PHIB, double RADIUS, int M, int N, double U, double[][] W0, double[][] W1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK, int LINEARC) private double[]WTHETA(double U, double[] W) private voidXWTRAN(int M, int N, double[] X, double[] U, double[] C, double[][] W0, double[][] W1, double[] PHI0, double[] PHI1) private double[]ZDSC(double[] WW, int KWW, int IC, int M, int N, double U, double[] C, double[][] W0, double[][] W1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, double[] PHI0, double[] PHI1, int NPTQ, double[] QWORK, int IOPT) Methods inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
actionPerformed, addListener, addProgressChangeListener, calculateImageSize, calculatePrincipleAxis, computeElapsedTime, computeElapsedTime, convertIntoFloat, delinkProgressToAlgorithm, delinkProgressToAlgorithmMulti, displayError, errorCleanUp, finalize, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, generateProgressValues, getDestImage, getElapsedTime, getMask, getMaxProgressValue, getMinProgressValue, getNumberOfThreads, getProgress, getProgressChangeListener, getProgressChangeListeners, getProgressModulus, getProgressStep, getProgressValues, getSrcImage, isCompleted, isImage25D, isMultiThreadingEnabled, isRunningInSeparateThread, isThreadStopped, linkProgressToAlgorithm, linkProgressToAlgorithm, makeProgress, notifyListeners, removeListener, removeProgressChangeListener, run, setCompleted, setImage25D, setMask, setMaxProgressValue, setMinProgressValue, setMultiThreadingEnabled, setNumberOfThreads, setProgress, setProgressModulus, setProgressStep, setProgressValues, setProgressValues, setRunningInSeparateThread, setSrcImage, setStartTime, setThreadStopped, startMethod, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpenedMethods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Field Details
-
dscfun
private final int dscfun- See Also:
-
W02
private double[][] W02 -
W12
private double[][] W12 -
Z02
private double[][] Z02 -
Z12
private double[][] Z12 -
C2
private double[] C2 -
U2
private double[] U2 -
PHI02
private double[] PHI02 -
PHI12
private double[] PHI12 -
ALFA02
private double[] ALFA02 -
ALFA12
private double[] ALFA12 -
QWORK2
private double[] QWORK2 -
M2
private int M2 -
N2
private int N2 -
NPTQ2
private int NPTQ2 -
ISHAPE2
private int ISHAPE2 -
LINEARC2
private int LINEARC2 -
NSHAPE
private int NSHAPE -
IND
private int[] IND -
UARY
private double[] UARY -
VARY
private double[] VARY -
DLAM
private double DLAM -
IU
private int IU -
ISPRT
private int ISPRT -
ICOUNT
private int ICOUNT -
scm
-
Z0
private double[][] Z0 -
Z1
private double[][] Z1 -
IPOLY
private int IPOLY -
NPTQ
private int NPTQ -
ISOLV
private int ISOLV -
IGUESS
private int IGUESS -
LINEARC
private int LINEARC -
TOL
private double TOL -
INVERSE_POINTS
private double[][] INVERSE_POINTS -
FORWARD_POINTS
private double[][] FORWARD_POINTS -
testRoutine
private boolean testRoutine -
MACHEP
private double MACHEP -
M
private int[] M -
N
private int[] N -
ISHAPE
private int ISHAPE -
linhx
-
linhy
-
-
Constructor Details
-
DoublyConnectedSC
public DoublyConnectedSC() -
DoublyConnectedSC
public DoublyConnectedSC(int IPOLY, int NPTQ, int ISOLV, int ISPRT) -
DoublyConnectedSC
public DoublyConnectedSC(ModelImage destImg, ModelImage srcImg, double[][] Z0, double[][] Z1, int NPTQ, int ISPRT, int IGUESS, int LINEARC, double TOL)
-
-
Method Details
-
runAlgorithm
public void runAlgorithm()Description copied from class:AlgorithmBaseActually runs the algorithm. Implemented by inheriting algorithms.- Specified by:
runAlgorithmin classAlgorithmBase
-
plot
private void plot(double U, double[] R, double[] theta, int num1draw, int num2draw, int yInvert, double[][] W0, double[][] W1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, double[] QWORK, double[] C) -
DSCDATA
private void DSCDATA(int IPOLY, int[] M, int[] N, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1) -
THDATA
private void THDATA(double[] U) -
WTHETA
private double[] WTHETA(double U, double[] W) -
WPROD
private double[] WPROD(double[] W, int M, int N, double U, double[][] W0, double[][] W1, double[] ALFA0, double[] ALFA1) -
WQSUM
private double[] WQSUM(double[] WA, double PHIA, int KWA, int IC, double[] WB, double PHIB, double RADIUS, int M, int N, double U, double[][] W0, double[][] W1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK, int LINEARC) -
WQUAD1
private double[] WQUAD1(double[] WA, double PHIA, int KWA, int IC, double[] WB, double PHIB, double RADIUS, int M, int N, double U, double[][] W0, double[][] W1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK, int LINEARC) -
WQUAD
private double[] WQUAD(double[] WA, double PHIA, int KWA, int ICA, double[] WB, double PHIB, int KWB, int ICB, double RADIUS, int M, int N, double U, double[][] W0, double[][] W1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK, int LINEARC, int IEVL) -
XWTRAN
private void XWTRAN(int M, int N, double[] X, double[] U, double[] C, double[][] W0, double[][] W1, double[] PHI0, double[] PHI1) -
FMAX
private double FMAX(int MN, double[] FVAL) -
DSCFUN
private void DSCFUN(int NDIM, double[] X, double[] FVAL, int[] IFLAG) -
DSCSOLV
private void DSCSOLV(double TOL, int IGUESS, int M, int N, double[] U, double[] C, double[][] W0, double[][] W1, double[] PHI0, double[] PHI1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK, int ISHAPE, int LINEARC) -
ZDSC
private double[] ZDSC(double[] WW, int KWW, int IC, int M, int N, double U, double[] C, double[][] W0, double[][] W1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, double[] PHI0, double[] PHI1, int NPTQ, double[] QWORK, int IOPT) -
WDSC
private double[] WDSC(double[] ZZ, int M, int N, double U, double[] C, double[][] W0, double[][] W1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, double[] PHI0, double[] PHI1, int NPTQ, double[] QWORK, double EPS, int IOPT) -
ANGLES
private void ANGLES(int MN, double[][] Z01, double[] ALFA01, int I01) -
ARGUM
private double ARGUM(double U1, double[] W01K) -
NEARW
private void NEARW(int M, int N, double[][] W0, double[][] W1, double[] ALFA0, double[] W, int[] KNEAR, int[] INEAR) -
NEARZ
private void NEARZ(int M, int N, double[][] Z0, double[][] Z1, double[] ALFA0, double[] Z, int[] KNZ, int[] INZ) -
DIST
private double DIST(int M, int N, double[][] W0, double[][] W1, double[] W, int KWA, int IC) -
CHECK
private void CHECK(double[] ALFA0, double[] ALFA1, int M, int N, int ISHAPE) -
DSCPRINT
private void DSCPRINT(int M, int N, double[] C, double U, double[][] W0, double[][] W1, double[] PHI0, double[] PHI1, double TOL, int NPTQ) -
DSCTEST
private void DSCTEST(int M, int N, double U, double[] C, double[][] W0, double[][] W1, double[][] Z0, double[][] Z1, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK) -
HYBRD
private void HYBRD(int FCN, int N, double[] X, double[] FVEC, double XTOL, int MAXFEV, int ML, int MU, double EPSFCN, double[] DIAG, int MODE, double FACTOR, int NPRINT, int[] INFO, int[] NFEV, double[][] FJAC, int LDFJAC, double[] R, int LR, double[] QTF, double[] WA1, double[] WA2, double[] WA3, double[] WA4) -
DOGLEG
private void DOGLEG(int N, double[] R, int LR, double[] DIAG, double[] QTB, double DELTA, double[] X, double[] WA1, double[] WA2) -
QINIT
private void QINIT(int M, int N, double[] ALFA0, double[] ALFA1, int NPTQ, double[] QWORK) -
R1MPYQ
private void R1MPYQ(int M, int N, double[][] A, int LDA, double[] V, double[] W) -
R1UPDT
private void R1UPDT(int M, int N, double[] S, int LS, double[] U, double[] V, double[] W, boolean[] SING) -
GAUSSJ
private void GAUSSJ(int N, double ALPHA, double BETA, double[] B, double[] T, double[] W) -
CLASS
private void CLASS(int N, double ALPHA, double BETA, double[] B, double[] A, double[] MUZERO) -
IMTQL2
private void IMTQL2(int N, double[] D, double[] E, double[] Z, int[] IERR) -
DGAMMA
private double DGAMMA(double X) -
ENORM
private double ENORM(int N, double[] X) -
FDJAC1
private void FDJAC1(int FCN, int N, double[] X, double[] FVEC, double[][] FJAC, int LDFJAC, int[] IFLAG, int ML, int MU, double EPSFCN, double[] WA1, double[] WA2) -
QFORM
private void QFORM(int M, int N, double[][] Q, int LDQ, double[] WA) -
QRFAC
private void QRFAC(int M, int N, double[][] A, int LDA, boolean PIVOT, int[] IPVT, int LIPVT, double[] RDIAG, double[] ACNORM, double[] WA)
-