Package gov.nih.mipav.model.algorithms
Class NLConstrainedEngineEP
- java.lang.Object
-
- gov.nih.mipav.model.algorithms.NLConstrainedEngineEP
-
- Direct Known Subclasses:
AlgorithmSM2.FitAllEP
,SchwarzChristoffelMapping2.stpfunEP
public abstract class NLConstrainedEngineEP extends java.lang.Object
Display results of displaying exponential fitting parameters.
-
-
Field Summary
Fields Modifier and Type Field Description protected DoubleDouble[]
a
On completion if exitStatus >= 0 a[] contains the latest (best) estimate of the solution point.private DoubleDouble
a1div3
DOCUMENT ME!protected DoubleDouble
absoluteConvergence
absolute convergence constant Used to test for convergence by the sum of squares being less than the absoluteConvergence squared.private DoubleDouble
aDiff
DOCUMENT ME!private DoubleDouble
alfkm1
DOCUMENT ME!private DoubleDouble
alfkm2
DOCUMENT ME!private DoubleDouble
alfnoi
DOCUMENT ME!private DoubleDouble
alpha
DOCUMENT ME!private DoubleDouble
alphup
DOCUMENT ME!protected boolean
analyticalJacobian
private int[]
aset
1D integer array of length param containing a code which indicates whether an unknown is active or not aset[i] = 0 when a[i] is free = +1 when a[i] == bl[i] = -1 when a[i] == bu[i].private DoubleDouble
aupkm1
DOCUMENT ME!private int
BARD
private DoubleDouble
bestpg
DOCUMENT ME!private DoubleDouble
beta
scalar containing the norm of the orthogonal projection of residuals onto the space spanned by the columns of the Jacobian.private DoubleDouble
betkm1
DOCUMENT ME!private DoubleDouble
betkm2
DOCUMENT ME!private static double
big
DOCUMENT ME!protected DoubleDouble[]
bl
DOCUMENT ME!private DoubleDouble
bl0
DOCUMENT ME!private DoubleDouble
bn
DOCUMENT ME!protected int
bounds
integer scalar code for assessing the bounds bounds = 0 means an unconstrained problem bounds = 1 means the same lower bounds for all unknowns and the same upper bounds for all unknowns.protected DoubleDouble[]
bu
DOCUMENT ME!private DoubleDouble
bu0
DOCUMENT ME!private DoubleDouble
cnorm
DOCUMENT ME!private int
constraintAct
Number of active constraints.protected DoubleDouble[][]
covarMat
2D array of doubles of dimension nPts by max(4,param) containing the main part of the covariance matrix (Jtranspose * J)inverse, where J is the Jacobian matrix computed at a.private int
ctrl
ctrl can have 3 different values on entry.protected int[]
ctrlMat
Wrapper for ctrl or lctrl communication with driver.private DoubleDouble
d1km1
DOCUMENT ME!private DoubleDouble
d1sqs
scalar containing the predicted reduction in the objective function if gn-direction is used.private DoubleDouble
deltaMinrm
DOCUMENT ME!private DoubleDouble[]
diag
1D double array of length param conatiaing the diagonal elements of the diagonal matrix D if internalScaling is true.private int
DRAPER24D
private DoubleDouble[]
dx
double working areas 1D array of length param containing the solution of J * dx = -residuals.private DoubleDouble
dxnkm1
DOCUMENT ME!private DoubleDouble
dxnorm
DOCUMENT ME!protected DoubleDouble[]
dyda
DOCUMENT ME!private DoubleDouble
eps
DOCUMENT ME!private DoubleDouble
epsl
DOCUMENT ME!private int
errorStatus
DOCUMENT ME!private int
eval
DOCUMENT ME!private int
exitStatus
integer scalar that indicates why the return was taken.private DoubleDouble
fsqkm1
DOCUMENT ME!private DoubleDouble
fsum
DOCUMENT ME!private int
funcEval
integer scalar containing the total number of function evaluations done inside this routine.private DoubleDouble[]
g
1D array of length param containing the gradient of the objective at the current point.private DoubleDouble[][]
gmat
param by param array If secondAllowed if false, gmat can be used as a singly subscripted array of dimension param by setting all second indices to 0.private boolean
gndok
DOCUMENT ME!private DoubleDouble
gnorm
scalar containing norm of the gradient divided by norm of Jacobian.protected DoubleDouble[]
gues
DOCUMENT ME!private int
HOCK25
private int
icount
Variables used for restart information.private int
iev
DOCUMENT ME!private int
ifree
DOCUMENT ME!private int
imax
Variables used for restart information.private int
indic
DOCUMENT ME!private int
info
Consistently use 1 base indexing rather than 0 based indexingprotected boolean
internalScaling
If true, the columns of the Jacobian are scaled to have unit length.private int
irank
Variables used for restart information.protected int
iters
integer scalar containing the number of iterations until termination.private int
itotal
Variables used for restart information.private int
ival
Variables used for restart information.private int
jacobianEval
integer scalar containing the number of function evaluations caused by computing Jacobians with difference methods.private int
JENNRICH_AND_SAMPSON
private int
kod
DOCUMENT ME!private int
kodkm1
The suffices km2 and km1 in the names of the variables represent time step k-2 and k-1 respectively.private int
kodkm2
The suffices km2 and km1 in the names of the variables represent time step k-2 and k-1 respectively.private int
KOWALIK_AND_OSBORNE
private int
lattry
Variables used for restart information.private int
lineEval
integer scalar containing the number of function evaluations caused by the linesearch algorithm.protected int
maxIterations
DOCUMENT ME!private int
mdg
Leading dimension of array gmat mdg must be >= param if secondAllowed is true.private int
MEYER
private DoubleDouble
noise
DOCUMENT ME!protected int
nPts
integer scalar containing the number of data points.private int
OSBORNE1
private int
OSBORNE2
protected boolean
outputMes
protected int
param
variables integer scalar containing the number of unknowns.protected DoubleDouble
parameterConvergence
parameter convergence constant Used to test for convergence by the relative change in a[] being less than the parameterConvergence.private DoubleDouble
pgb1
DOCUMENT ME!private DoubleDouble
pgb2
DOCUMENT ME!private DoubleDouble
phi
double scalar containging the value of the objective function = (0.5 * chisquare) at the termination point a.private DoubleDouble
phikp1
DOCUMENT ME!private DoubleDouble
philat
DOCUMENT ME!private int[]
pivit
array of integers of dimension param containing the permutation matrix E in the decomposition QTranspose * J * D E = (R) (0) pivit[i] contains the index of the column that was moved into column i.private DoubleDouble
pMinrm
DOCUMENT ME!private DoubleDouble
predb
DOCUMENT ME!private DoubleDouble
prekm1
scalar containing the predicted reduction in the objective if pseudoRank from previous step is used.private DoubleDouble
qMinrm
DOCUMENT ME!private DoubleDouble
rabs
DOCUMENT ME!protected DoubleDouble
relativeConvergence
relative convergence constant Used to test for convergence by reduction in objective function being less than relativeConvergence squared.protected DoubleDouble[]
residuals
1D array of doubles of dimension nPts containing the value of the residuals at the termination point a;.private boolean
restart
DOCUMENT ME!private DoubleDouble
rlenb
DOCUMENT ME!private DoubleDouble
rmin
DOCUMENT ME!private int
rngkm1
The suffices km2 and km1 in the names of the variables represent time step k-2 and k-1 respectively.private DoubleDouble
rootsp
DOCUMENT ME!private DoubleDouble
scv0v1
DOCUMENT ME!private DoubleDouble
scv0v2
DOCUMENT ME!private DoubleDouble
scv1v2
DOCUMENT ME!private int
secind
DOCUMENT ME!protected boolean
secondAllowed
The method of Newton is allowed at the end of the iteration in some situations (large residuals).private int
secondEval
integer scalar containing the number of function evaluations caused by using second derivatives in the method of Newton.private DoubleDouble
smax
DOCUMENT ME!private DoubleDouble
sn
DOCUMENT ME!private DoubleDouble
speed
double scalar containing an estimate of the linear convergence factor.private DoubleDouble
srelpr
single relative precision.protected DoubleDouble
stdv
DOCUMENT ME!private DoubleDouble
stepb
DOCUMENT ME!private int
testCase
private boolean
testMode
protected DoubleDouble
tolerance
pseudo rank tolerance constant used to determine the pseudo rank of the Jacobian J.private DoubleDouble[]
v
1D array of length nPts containing the orthogonal projection of residuals onto space spanned by the first pseudoRank linear independent columns of the Jacobian.private DoubleDouble
v0norm
DOCUMENT ME!private DoubleDouble
v1norm
DOCUMENT ME!private DoubleDouble
v2norm
DOCUMENT ME!private DoubleDouble[]
w0
DOCUMENT ME!private DoubleDouble[]
w1
DOCUMENT ME!private DoubleDouble[]
w2
DOCUMENT ME!private DoubleDouble[]
w3
DOCUMENT ME!private int
WATSON
private DoubleDouble
x1Minrm
DOCUMENT ME!private DoubleDouble
x2Minrm
DOCUMENT ME!private DoubleDouble
x3Minrm
DOCUMENT ME!private DoubleDouble[]
xSeries
DOCUMENT ME!private DoubleDouble[]
ySeries
DOCUMENT ME!
-
Constructor Summary
Constructors Constructor Description NLConstrainedEngineEP()
NLConstrainedEngineEP(int nPts, int param)
NLConstrainedEngine - non-linear fit to a function.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private void
analuc(int[] prank)
DOCUMENT ME!private void
btrunc(int[] prank, boolean internalScaling, DoubleDouble[] work)
DOCUMENT ME!private void
chder(DoubleDouble dphize, int[] k, DoubleDouble[] alfk, DoubleDouble[] phik)
DOCUMENT ME!private void
choose(DoubleDouble xmin, DoubleDouble[] v2, DoubleDouble[] root1, DoubleDouble[] root2, DoubleDouble[] proot2)
DOCUMENT ME!private void
covar()
DOCUMENT ME!private void
dimsub(int[] prank, int[] rank)
DOCUMENT ME!private DoubleDouble
dnrm2(int n, DoubleDouble[] x, int incx)
DOCUMENT ME!void
driver()
driver.private void
driverCalls()
private void
dumpTestResults()
private void
evreuc(int[] prank)
DOCUMENT ME!private void
fitTestModel()
Creates a new Fit24DModel object.abstract void
fitToFunction(DoubleDouble[] a, DoubleDouble[] residuals, DoubleDouble[][] covarMat)
fitToFunction communicates with 3 protected variables param, nPts, and ctrlMat ctrlMat is used as a wrapper for ctrl or lctrl.void
fitToTestFunction(DoubleDouble[] a, DoubleDouble[] residuals, DoubleDouble[][] covarMat)
private void
fsumsq(DoubleDouble alfk, DoubleDouble[] xnew, DoubleDouble[] fnew, DoubleDouble[] fn_val, int[] ctrl)
DOCUMENT ME!private void
gauc(int[] k, DoubleDouble alfmin, DoubleDouble[] gmod, DoubleDouble dphize, DoubleDouble[] u, DoubleDouble[] phiu, DoubleDouble tau, DoubleDouble pmax)
DOCUMENT ME!double
getChiSquared()
getChiSquared - accessor to chi-squared value (goodness-of-fit measure).int
getExitStatus()
double[]
getParameters()
getParameters accessor to function parameters.double[]
getResiduals()
DOCUMENT ME!private void
gnavuc()
DOCUMENT ME!private DoubleDouble
gndunc(boolean internalScaling, int[] prank, DoubleDouble[] work)
DOCUMENT ME!private void
hess()
DOCUMENT ME!private void
jacdif(int[] ctrl)
DOCUMENT ME!private void
jtrj(int nn)
DOCUMENT ME!private void
lineuc(DoubleDouble[] gmod, DoubleDouble dphize, DoubleDouble alplow)
DOCUMENT ME!private void
linuc2(DoubleDouble[] fnew, DoubleDouble alfk, DoubleDouble[] v2)
DOCUMENT ME!private void
lsunc()
DOCUMENT ME!private void
minrm(DoubleDouble[] v2, DoubleDouble alfmin, DoubleDouble alfmax, DoubleDouble xmin, DoubleDouble[] x, DoubleDouble[] px, DoubleDouble[] y, DoubleDouble[] py)
DOCUMENT ME!private void
minrm1(DoubleDouble[] v2)
DOCUMENT ME!private void
minrm2()
DOCUMENT ME!private void
minrn(DoubleDouble x, DoubleDouble fx, DoubleDouble w, DoubleDouble fw, DoubleDouble v, DoubleDouble fv, DoubleDouble alfmin, DoubleDouble alfmax, DoubleDouble pmax, DoubleDouble[] u, DoubleDouble[] pu)
DOCUMENT ME!private void
newunc()
DOCUMENT ME!private void
oner(DoubleDouble[] x)
DOCUMENT ME!private void
outuc()
DOCUMENT ME!private void
pivec(DoubleDouble[] work)
DOCUMENT ME!private DoubleDouble
pol3(DoubleDouble x)
DOCUMENT ME!private DoubleDouble
pol4(DoubleDouble[] v2, DoubleDouble x)
DOCUMENT ME!private void
pregn(DoubleDouble[] work, int mindim, int[] prank, int[] dim)
DOCUMENT ME!private void
presub(DoubleDouble[] work, int[] prank, int[] rank)
DOCUMENT ME!private void
quamin(DoubleDouble x, DoubleDouble fx, DoubleDouble w, DoubleDouble fw, DoubleDouble v, DoubleDouble fv, DoubleDouble[] u)
DOCUMENT ME!private void
reavuc()
DOCUMENT ME!private void
reduc(DoubleDouble[] alf, DoubleDouble[] phialf, DoubleDouble alfk, DoubleDouble pk, DoubleDouble diff, DoubleDouble eta, DoubleDouble[] gmod, DoubleDouble[] fnew, int[] k, DoubleDouble[] phik, boolean[] reduce)
DOCUMENT ME!private void
releps()
DOCUMENT ME!private void
rtrw1(int nn)
DOCUMENT ME!private void
scalv(DoubleDouble[] v, DoubleDouble factor, int n)
DOCUMENT ME!private void
scaunc()
DOCUMENT ME!private void
schdc(int nn, int[] jpvt, int job)
DOCUMENT ME!private void
secuc()
DOCUMENT ME!private void
soliuc(DoubleDouble tau, int[] prank)
DOCUMENT ME!private void
sposl(int nn)
DOCUMENT ME!private void
sqrdc(DoubleDouble[][] x, int n, int p, DoubleDouble[] qraux, int[] jpvt, int job)
DOCUMENT ME!private void
sqrsl(DoubleDouble[][] x, int n, int k, DoubleDouble[] qraux, DoubleDouble[] y, DoubleDouble[] qy, DoubleDouble[] qty, DoubleDouble[] b, DoubleDouble[] rsd, DoubleDouble[] xb, int job)
DOCUMENT ME!private void
stepuc(int[] prank)
DOCUMENT ME!private void
strsl(int[] prank, DoubleDouble[] b)
DOCUMENT ME!private void
subuc(int[] prank, int[] rank)
DOCUMENT ME!private void
termuc(int[] prank, DoubleDouble aNorm)
DOCUMENT ME!private void
triunc(DoubleDouble tol, int constraintAct, int[] prank)
DOCUMENT ME!private void
twor()
DOCUMENT ME!
-
-
-
Field Detail
-
big
private static final double big
DOCUMENT ME!- See Also:
- Constant Field Values
-
a
protected DoubleDouble[] a
On completion if exitStatus >= 0 a[] contains the latest (best) estimate of the solution point.
-
absoluteConvergence
protected DoubleDouble absoluteConvergence
absolute convergence constant Used to test for convergence by the sum of squares being less than the absoluteConvergence squared.
-
bl
protected DoubleDouble[] bl
DOCUMENT ME!
-
bounds
protected int bounds
integer scalar code for assessing the bounds bounds = 0 means an unconstrained problem bounds = 1 means the same lower bounds for all unknowns and the same upper bounds for all unknowns. The lower and upper bound must be stored in bl[0] and bu[0] respectively. bounds = 2 means that the bounds must be supplied by the user in bl[i] and bu[i] for i = 0,1, param - 1.
-
bu
protected DoubleDouble[] bu
DOCUMENT ME!
-
covarMat
protected DoubleDouble[][] covarMat
2D array of doubles of dimension nPts by max(4,param) containing the main part of the covariance matrix (Jtranspose * J)inverse, where J is the Jacobian matrix computed at a.
-
ctrlMat
protected int[] ctrlMat
Wrapper for ctrl or lctrl communication with driver.
-
dyda
protected DoubleDouble[] dyda
DOCUMENT ME!
-
stdv
protected DoubleDouble stdv
DOCUMENT ME!
-
gues
protected DoubleDouble[] gues
DOCUMENT ME!
-
internalScaling
protected boolean internalScaling
If true, the columns of the Jacobian are scaled to have unit length. If false, internal scaling is not used to compute the Gauss-Newton search direction.
-
iters
protected int iters
integer scalar containing the number of iterations until termination.
-
maxIterations
protected int maxIterations
DOCUMENT ME!
-
nPts
protected int nPts
integer scalar containing the number of data points.
-
param
protected int param
variables integer scalar containing the number of unknowns.
-
parameterConvergence
protected DoubleDouble parameterConvergence
parameter convergence constant Used to test for convergence by the relative change in a[] being less than the parameterConvergence.
-
relativeConvergence
protected DoubleDouble relativeConvergence
relative convergence constant Used to test for convergence by reduction in objective function being less than relativeConvergence squared.
-
residuals
protected DoubleDouble[] residuals
1D array of doubles of dimension nPts containing the value of the residuals at the termination point a;.
-
secondAllowed
protected boolean secondAllowed
The method of Newton is allowed at the end of the iteration in some situations (large residuals). If true, the use of second derivatives is permitted
-
tolerance
protected DoubleDouble tolerance
pseudo rank tolerance constant used to determine the pseudo rank of the Jacobian J.
-
xSeries
private DoubleDouble[] xSeries
DOCUMENT ME!
-
ySeries
private DoubleDouble[] ySeries
DOCUMENT ME!
-
aDiff
private DoubleDouble aDiff
DOCUMENT ME!
-
alfnoi
private DoubleDouble alfnoi
DOCUMENT ME!
-
alpha
private DoubleDouble alpha
DOCUMENT ME!
-
alphup
private DoubleDouble alphup
DOCUMENT ME!
-
aset
private int[] aset
1D integer array of length param containing a code which indicates whether an unknown is active or not aset[i] = 0 when a[i] is free = +1 when a[i] == bl[i] = -1 when a[i] == bu[i].
-
beta
private DoubleDouble beta
scalar containing the norm of the orthogonal projection of residuals onto the space spanned by the columns of the Jacobian.
-
betkm2
private DoubleDouble betkm2
DOCUMENT ME!
-
alfkm2
private DoubleDouble alfkm2
DOCUMENT ME!
-
betkm1
private DoubleDouble betkm1
DOCUMENT ME!
-
d1km1
private DoubleDouble d1km1
DOCUMENT ME!
-
fsqkm1
private DoubleDouble fsqkm1
DOCUMENT ME!
-
dxnkm1
private DoubleDouble dxnkm1
DOCUMENT ME!
-
alfkm1
private DoubleDouble alfkm1
DOCUMENT ME!
-
aupkm1
private DoubleDouble aupkm1
DOCUMENT ME!
-
bn
private DoubleDouble bn
DOCUMENT ME!
-
cnorm
private DoubleDouble cnorm
DOCUMENT ME!
-
ctrl
private int ctrl
ctrl can have 3 different values on entry. If ctrl = 1 or ctrl = -1, compute the residuals for all nPts at a certain point a and return the residuals = yfit - yseries in the array residuals if the functions are computable. If not successful and ctrl was set to 1, set ctrl = -1. If not successful and ctrl was set to -1, set ctrl < -10. If ctrl = 2 and the Jacobian is supplied analytically, calculate the Jacobian = Jij = dymodi/daj. The Jacobian is placed in matrix covarMat. If the Jacobian cannot be calculated, set ctrl < -10. If you wish to compute the Jacobian numerically on return, set ctrl = 0.
-
d1sqs
private DoubleDouble d1sqs
scalar containing the predicted reduction in the objective function if gn-direction is used.
-
diag
private DoubleDouble[] diag
1D double array of length param conatiaing the diagonal elements of the diagonal matrix D if internalScaling is true. Otherwise, undefined.
-
dx
private DoubleDouble[] dx
double working areas 1D array of length param containing the solution of J * dx = -residuals.
-
dxnorm
private DoubleDouble dxnorm
DOCUMENT ME!
-
eps
private DoubleDouble eps
DOCUMENT ME!
-
epsl
private DoubleDouble epsl
DOCUMENT ME!
-
errorStatus
private int errorStatus
DOCUMENT ME!
-
eval
private int eval
DOCUMENT ME!
-
exitStatus
private int exitStatus
integer scalar that indicates why the return was taken. If exitStatus != -1 and exitStatus >= -10, then a[] contains the latest (best) estimate of the solution point. = 1000X convergence because relative predicted reduction in the objective function = (0.5 * chisquare) is less than (relativeConvergence)**2 = 200X convergence because sum of squares is less than (absoluteConvergence)**2 = 30X convergence because the relative change in a is less than parameterConvergence = 4X convergence because we are computing at noise level X, the last digit in the convergence code, indicates how the last steps were computed X = 0 no trouble (Gauss-Newton the last 3 steps) = 1 pseudoRank <> param at termination point = 2 The method of Newton was used (at least) in the last step = 3 The (last - 2) step was subspace minimization, but the last 2 steps were Gauss-Newton steps = 4 The steplength was not unit in both the last 2 steps < 0 indicates that no convergence criterion is fulfilled, but some abnormal termination criterion is satisfied = -1 Invalid starting condition: nPts < param or param <= 0 or nPts <= 0 or maxIterations <= 0 or relativeConvergence < 0 or relativeConvergence < 0 or absoluteConvergence < 0 or tolerance <= 0 or parameterConvergence < 0 or invalid starting point on entry = -2 Number of iterations has exceeded maximum allowed iterations = -3 The Hessian emanating from the second order method is not positive definite = -4 The algorithm would like to use second derivatives but is not allowed to do that = -5 An undamped step with Newton's method is a failure = -6 The latest search direction computed using subspace minimization was not a descent direction (probably caused by wrongly computed Jacobian) = -7 There is only one feasible point, name a[i] = bl[i] = bu[i]; i = 0,1,...,param-1 < -10 Termination due to user stop indicator
-
fsum
private DoubleDouble fsum
DOCUMENT ME!
-
funcEval
private int funcEval
integer scalar containing the total number of function evaluations done inside this routine.
-
g
private DoubleDouble[] g
1D array of length param containing the gradient of the objective at the current point.
-
gmat
private DoubleDouble[][] gmat
param by param array If secondAllowed if false, gmat can be used as a singly subscripted array of dimension param by setting all second indices to 0.
-
gndok
private boolean gndok
DOCUMENT ME!
-
gnorm
private DoubleDouble gnorm
scalar containing norm of the gradient divided by norm of Jacobian.
-
icount
private int icount
Variables used for restart information.
-
lattry
private int lattry
Variables used for restart information.
-
itotal
private int itotal
Variables used for restart information.
-
irank
private int irank
Variables used for restart information.
-
imax
private int imax
Variables used for restart information.
-
ival
private int ival
Variables used for restart information.
-
iev
private int iev
DOCUMENT ME!
-
ifree
private int ifree
DOCUMENT ME!
-
indic
private int indic
DOCUMENT ME!
-
info
private int info
Consistently use 1 base indexing rather than 0 based indexing
-
jacobianEval
private int jacobianEval
integer scalar containing the number of function evaluations caused by computing Jacobians with difference methods.
-
kod
private int kod
DOCUMENT ME!
-
lineEval
private int lineEval
integer scalar containing the number of function evaluations caused by the linesearch algorithm.
-
mdg
private int mdg
Leading dimension of array gmat mdg must be >= param if secondAllowed is true.
-
noise
private DoubleDouble noise
DOCUMENT ME!
-
constraintAct
private int constraintAct
Number of active constraints.
-
pgb1
private DoubleDouble pgb1
DOCUMENT ME!
-
pgb2
private DoubleDouble pgb2
DOCUMENT ME!
-
phi
private DoubleDouble phi
double scalar containging the value of the objective function = (0.5 * chisquare) at the termination point a.
-
phikp1
private DoubleDouble phikp1
DOCUMENT ME!
-
philat
private DoubleDouble philat
DOCUMENT ME!
-
bestpg
private DoubleDouble bestpg
DOCUMENT ME!
-
pivit
private int[] pivit
array of integers of dimension param containing the permutation matrix E in the decomposition QTranspose * J * D E = (R) (0) pivit[i] contains the index of the column that was moved into column i.
-
pMinrm
private DoubleDouble pMinrm
DOCUMENT ME!
-
qMinrm
private DoubleDouble qMinrm
DOCUMENT ME!
-
deltaMinrm
private DoubleDouble deltaMinrm
DOCUMENT ME!
-
a1div3
private DoubleDouble a1div3
DOCUMENT ME!
-
predb
private DoubleDouble predb
DOCUMENT ME!
-
prekm1
private DoubleDouble prekm1
scalar containing the predicted reduction in the objective if pseudoRank from previous step is used.
-
rabs
private DoubleDouble rabs
DOCUMENT ME!
-
restart
private boolean restart
DOCUMENT ME!
-
rlenb
private DoubleDouble rlenb
DOCUMENT ME!
-
rmin
private DoubleDouble rmin
DOCUMENT ME!
-
kodkm2
private int kodkm2
The suffices km2 and km1 in the names of the variables represent time step k-2 and k-1 respectively. These variables are updated only inside the routine evreuc.
-
rngkm1
private int rngkm1
The suffices km2 and km1 in the names of the variables represent time step k-2 and k-1 respectively. These variables are updated only inside the routine evreuc.
-
kodkm1
private int kodkm1
The suffices km2 and km1 in the names of the variables represent time step k-2 and k-1 respectively. These variables are updated only inside the routine evreuc.
-
rootsp
private DoubleDouble rootsp
DOCUMENT ME!
-
bl0
private DoubleDouble bl0
DOCUMENT ME!
-
bu0
private DoubleDouble bu0
DOCUMENT ME!
-
secind
private int secind
DOCUMENT ME!
-
secondEval
private int secondEval
integer scalar containing the number of function evaluations caused by using second derivatives in the method of Newton.
-
smax
private DoubleDouble smax
DOCUMENT ME!
-
sn
private DoubleDouble sn
DOCUMENT ME!
-
speed
private DoubleDouble speed
double scalar containing an estimate of the linear convergence factor.
-
srelpr
private DoubleDouble srelpr
single relative precision.
-
stepb
private DoubleDouble stepb
DOCUMENT ME!
-
v
private DoubleDouble[] v
1D array of length nPts containing the orthogonal projection of residuals onto space spanned by the first pseudoRank linear independent columns of the Jacobian.
-
v0norm
private DoubleDouble v0norm
DOCUMENT ME!
-
v1norm
private DoubleDouble v1norm
DOCUMENT ME!
-
v2norm
private DoubleDouble v2norm
DOCUMENT ME!
-
scv0v1
private DoubleDouble scv0v1
DOCUMENT ME!
-
scv0v2
private DoubleDouble scv0v2
DOCUMENT ME!
-
scv1v2
private DoubleDouble scv1v2
DOCUMENT ME!
-
w0
private DoubleDouble[] w0
DOCUMENT ME!
-
w1
private DoubleDouble[] w1
DOCUMENT ME!
-
w2
private DoubleDouble[] w2
DOCUMENT ME!
-
w3
private DoubleDouble[] w3
DOCUMENT ME!
-
x1Minrm
private DoubleDouble x1Minrm
DOCUMENT ME!
-
x2Minrm
private DoubleDouble x2Minrm
DOCUMENT ME!
-
x3Minrm
private DoubleDouble x3Minrm
DOCUMENT ME!
-
outputMes
protected boolean outputMes
-
testMode
private boolean testMode
-
analyticalJacobian
protected boolean analyticalJacobian
-
testCase
private int testCase
-
DRAPER24D
private final int DRAPER24D
- See Also:
- Constant Field Values
-
JENNRICH_AND_SAMPSON
private final int JENNRICH_AND_SAMPSON
- See Also:
- Constant Field Values
-
BARD
private final int BARD
- See Also:
- Constant Field Values
-
MEYER
private final int MEYER
- See Also:
- Constant Field Values
-
KOWALIK_AND_OSBORNE
private final int KOWALIK_AND_OSBORNE
- See Also:
- Constant Field Values
-
OSBORNE1
private final int OSBORNE1
- See Also:
- Constant Field Values
-
OSBORNE2
private final int OSBORNE2
- See Also:
- Constant Field Values
-
WATSON
private final int WATSON
- See Also:
- Constant Field Values
-
HOCK25
private final int HOCK25
- See Also:
- Constant Field Values
-
-
Method Detail
-
fitTestModel
private void fitTestModel()
Creates a new Fit24DModel object.- Parameters:
nPoints
- DOCUMENT ME!xData
- DOCUMENT ME!yData
- DOCUMENT ME!initial
- DOCUMENT ME!
-
fitToTestFunction
public void fitToTestFunction(DoubleDouble[] a, DoubleDouble[] residuals, DoubleDouble[][] covarMat)
-
dumpTestResults
private void dumpTestResults()
-
driverCalls
private void driverCalls()
-
fitToFunction
public abstract void fitToFunction(DoubleDouble[] a, DoubleDouble[] residuals, DoubleDouble[][] covarMat)
fitToFunction communicates with 3 protected variables param, nPts, and ctrlMat ctrlMat is used as a wrapper for ctrl or lctrl. Evaluates the residuals or the Jacobian at a certain a[]- Parameters:
a
- DOCUMENT ME!residuals
- DOCUMENT ME!covarMat
- DOCUMENT ME!
-
driver
public void driver()
driver.
-
getChiSquared
public double getChiSquared()
getChiSquared - accessor to chi-squared value (goodness-of-fit measure).- Returns:
- the value of chi squared
-
getParameters
public double[] getParameters()
getParameters accessor to function parameters.- Returns:
- the function parameters determined by the algorithm
-
getResiduals
public double[] getResiduals()
DOCUMENT ME!- Returns:
- double[] residuals
-
getExitStatus
public int getExitStatus()
-
analuc
private void analuc(int[] prank)
DOCUMENT ME!
-
btrunc
private void btrunc(int[] prank, boolean internalScaling, DoubleDouble[] work)
DOCUMENT ME!- Parameters:
internalScaling
- DOCUMENT ME!work
- DOCUMENT ME!
-
chder
private void chder(DoubleDouble dphize, int[] k, DoubleDouble[] alfk, DoubleDouble[] phik)
DOCUMENT ME!- Parameters:
dphize
- DOCUMENT ME!
-
choose
private void choose(DoubleDouble xmin, DoubleDouble[] v2, DoubleDouble[] root1, DoubleDouble[] root2, DoubleDouble[] proot2)
DOCUMENT ME!- Parameters:
xmin
- DOCUMENT ME!v2
- DOCUMENT ME!
-
covar
private void covar()
DOCUMENT ME!
-
dimsub
private void dimsub(int[] prank, int[] rank)
DOCUMENT ME!
-
dnrm2
private DoubleDouble dnrm2(int n, DoubleDouble[] x, int incx)
DOCUMENT ME!- Parameters:
n
- DOCUMENT ME!x
- DOCUMENT ME!incx
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
evreuc
private void evreuc(int[] prank)
DOCUMENT ME!
-
fsumsq
private void fsumsq(DoubleDouble alfk, DoubleDouble[] xnew, DoubleDouble[] fnew, DoubleDouble[] fn_val, int[] ctrl)
DOCUMENT ME!- Parameters:
alfk
- DOCUMENT ME!xnew
- DOCUMENT ME!fnew
- DOCUMENT ME!phiMat
- DOCUMENT ME!
-
gauc
private void gauc(int[] k, DoubleDouble alfmin, DoubleDouble[] gmod, DoubleDouble dphize, DoubleDouble[] u, DoubleDouble[] phiu, DoubleDouble tau, DoubleDouble pmax)
DOCUMENT ME!- Parameters:
gmod
- DOCUMENT ME!dphize
- DOCUMENT ME!tau
- DOCUMENT ME!pmax
- DOCUMENT ME!
-
gnavuc
private void gnavuc()
DOCUMENT ME!
-
gndunc
private DoubleDouble gndunc(boolean internalScaling, int[] prank, DoubleDouble[] work)
DOCUMENT ME!- Parameters:
internalScaling
- DOCUMENT ME!pseudoRankMat
- DOCUMENT ME!work
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
hess
private void hess()
DOCUMENT ME!
-
jacdif
private void jacdif(int[] ctrl)
DOCUMENT ME!
-
jtrj
private void jtrj(int nn)
DOCUMENT ME!- Parameters:
nn
- DOCUMENT ME!
-
lineuc
private void lineuc(DoubleDouble[] gmod, DoubleDouble dphize, DoubleDouble alplow)
DOCUMENT ME!- Parameters:
gmod
- DOCUMENT ME!dphize
- DOCUMENT ME!alplow
- DOCUMENT ME!
-
linuc2
private void linuc2(DoubleDouble[] fnew, DoubleDouble alfk, DoubleDouble[] v2)
DOCUMENT ME!- Parameters:
fnew
- DOCUMENT ME!v2
- DOCUMENT ME!
-
lsunc
private void lsunc()
DOCUMENT ME!
-
minrm
private void minrm(DoubleDouble[] v2, DoubleDouble alfmin, DoubleDouble alfmax, DoubleDouble xmin, DoubleDouble[] x, DoubleDouble[] px, DoubleDouble[] y, DoubleDouble[] py)
DOCUMENT ME!- Parameters:
v2
- DOCUMENT ME!xmin
- DOCUMENT ME!
-
minrm1
private void minrm1(DoubleDouble[] v2)
DOCUMENT ME!- Parameters:
v2
- DOCUMENT ME!
-
minrm2
private void minrm2()
DOCUMENT ME!
-
minrn
private void minrn(DoubleDouble x, DoubleDouble fx, DoubleDouble w, DoubleDouble fw, DoubleDouble v, DoubleDouble fv, DoubleDouble alfmin, DoubleDouble alfmax, DoubleDouble pmax, DoubleDouble[] u, DoubleDouble[] pu)
DOCUMENT ME!- Parameters:
phikm2
- DOCUMENT ME!pmax
- DOCUMENT ME!
-
newunc
private void newunc()
DOCUMENT ME!
-
oner
private void oner(DoubleDouble[] x)
DOCUMENT ME!
-
outuc
private void outuc()
DOCUMENT ME!
-
pivec
private void pivec(DoubleDouble[] work)
DOCUMENT ME!- Parameters:
work
- DOCUMENT ME!
-
pol3
private DoubleDouble pol3(DoubleDouble x)
DOCUMENT ME!- Parameters:
x
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
pol4
private DoubleDouble pol4(DoubleDouble[] v2, DoubleDouble x)
DOCUMENT ME!- Parameters:
v2
- DOCUMENT ME!x
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
pregn
private void pregn(DoubleDouble[] work, int mindim, int[] prank, int[] dim)
DOCUMENT ME!- Parameters:
work
- DOCUMENT ME!mindim
- DOCUMENT ME!
-
presub
private void presub(DoubleDouble[] work, int[] prank, int[] rank)
DOCUMENT ME!- Parameters:
work
- DOCUMENT ME!
-
quamin
private void quamin(DoubleDouble x, DoubleDouble fx, DoubleDouble w, DoubleDouble fw, DoubleDouble v, DoubleDouble fv, DoubleDouble[] u)
DOCUMENT ME!- Parameters:
phikm2
- DOCUMENT ME!
-
reavuc
private void reavuc()
DOCUMENT ME!
-
reduc
private void reduc(DoubleDouble[] alf, DoubleDouble[] phialf, DoubleDouble alfk, DoubleDouble pk, DoubleDouble diff, DoubleDouble eta, DoubleDouble[] gmod, DoubleDouble[] fnew, int[] k, DoubleDouble[] phik, boolean[] reduce)
DOCUMENT ME!- Parameters:
pk
- DOCUMENT ME!eta
- DOCUMENT ME!gmod
- DOCUMENT ME!fnew
- DOCUMENT ME!
-
releps
private void releps()
DOCUMENT ME!
-
rtrw1
private void rtrw1(int nn)
DOCUMENT ME!- Parameters:
nn
- DOCUMENT ME!
-
scalv
private void scalv(DoubleDouble[] v, DoubleDouble factor, int n)
DOCUMENT ME!- Parameters:
v
- DOCUMENT ME!factor
- DOCUMENT ME!n
- DOCUMENT ME!
-
scaunc
private void scaunc()
DOCUMENT ME!
-
schdc
private void schdc(int nn, int[] jpvt, int job)
DOCUMENT ME!- Parameters:
nn
- DOCUMENT ME!jpvt
- DOCUMENT ME!job
- DOCUMENT ME!
-
secuc
private void secuc()
DOCUMENT ME!
-
soliuc
private void soliuc(DoubleDouble tau, int[] prank)
DOCUMENT ME!- Parameters:
tau
- DOCUMENT ME!
-
sposl
private void sposl(int nn)
DOCUMENT ME!- Parameters:
nn
- DOCUMENT ME!
-
sqrdc
private void sqrdc(DoubleDouble[][] x, int n, int p, DoubleDouble[] qraux, int[] jpvt, int job)
DOCUMENT ME!- Parameters:
x
- DOCUMENT ME!n
- DOCUMENT ME!p
- DOCUMENT ME!qraux
- DOCUMENT ME!jpvt
- DOCUMENT ME!job
- DOCUMENT ME!
-
sqrsl
private void sqrsl(DoubleDouble[][] x, int n, int k, DoubleDouble[] qraux, DoubleDouble[] y, DoubleDouble[] qy, DoubleDouble[] qty, DoubleDouble[] b, DoubleDouble[] rsd, DoubleDouble[] xb, int job)
DOCUMENT ME!- Parameters:
x
- DOCUMENT ME!n
- DOCUMENT ME!k
- DOCUMENT ME!qraux
- DOCUMENT ME!y
- DOCUMENT ME!qy
- DOCUMENT ME!qty
- DOCUMENT ME!b
- DOCUMENT ME!rsd
- DOCUMENT ME!xb
- DOCUMENT ME!job
- DOCUMENT ME!
-
stepuc
private void stepuc(int[] prank)
DOCUMENT ME!
-
strsl
private void strsl(int[] prank, DoubleDouble[] b)
DOCUMENT ME!- Parameters:
b
- DOCUMENT ME!
-
subuc
private void subuc(int[] prank, int[] rank)
DOCUMENT ME!
-
termuc
private void termuc(int[] prank, DoubleDouble aNorm)
DOCUMENT ME!- Parameters:
aNorm
- DOCUMENT ME!
-
triunc
private void triunc(DoubleDouble tol, int constraintAct, int[] prank)
DOCUMENT ME!- Parameters:
tol
- DOCUMENT ME!constraintAct
- DOCUMENT ME!
-
twor
private void twor()
DOCUMENT ME!
-
-