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

public class DoublyConnectedSC extends AlgorithmBase
  • 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

      private Vector<Double>[][] linhx
    • linhy

      private Vector<Double>[][] 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: AlgorithmBase
      Actually runs the algorithm. Implemented by inheriting algorithms.
      Specified by:
      runAlgorithm in class AlgorithmBase
    • 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)