public class org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer extends org.apache.commons.math.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer
{
private static final double TWO_EPS;
private int solvedCols;
private double[] diagR;
private double[] jacNorm;
private double[] beta;
private int[] permutation;
private int rank;
private double lmPar;
private double[] lmDir;
private final double initialStepBoundFactor;
private final double costRelativeTolerance;
private final double parRelativeTolerance;
private final double orthoTolerance;
private final double qrRankingThreshold;
private double[] weightedResidual;
private double[][] weightedJacobian;
public void <init>()
{
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
double v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v = <org.apache.commons.math.util.Precision: double SAFE_MIN>;
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void <init>(double,double,double,double,double)>(100.0, 1.0E-10, 1.0E-10, 1.0E-10, v);
return;
}
public void <init>(org.apache.commons.math.optim.ConvergenceChecker)
{
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
org.apache.commons.math.optim.ConvergenceChecker v;
double v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v := @parameter: org.apache.commons.math.optim.ConvergenceChecker;
v = <org.apache.commons.math.util.Precision: double SAFE_MIN>;
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void <init>(double,org.apache.commons.math.optim.ConvergenceChecker,double,double,double,double)>(100.0, v, 1.0E-10, 1.0E-10, 1.0E-10, v);
return;
}
public void <init>(double, org.apache.commons.math.optim.ConvergenceChecker, double, double, double, double)
{
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
org.apache.commons.math.optim.ConvergenceChecker v;
double v, v, v, v, v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v := @parameter: double;
v := @parameter: org.apache.commons.math.optim.ConvergenceChecker;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double;
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer: void <init>(org.apache.commons.math.optim.ConvergenceChecker)>(v);
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double initialStepBoundFactor> = v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double costRelativeTolerance> = v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double parRelativeTolerance> = v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double orthoTolerance> = v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double qrRankingThreshold> = v;
return;
}
public void <init>(double, double, double)
{
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
double v, v, v, v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double;
v = <org.apache.commons.math.util.Precision: double SAFE_MIN>;
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void <init>(double,double,double,double,double)>(100.0, v, v, v, v);
return;
}
public void <init>(double, double, double, double, double)
{
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
double v, v, v, v, v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double;
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer: void <init>(org.apache.commons.math.optim.ConvergenceChecker)>(null);
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double initialStepBoundFactor> = v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double costRelativeTolerance> = v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double parRelativeTolerance> = v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double orthoTolerance> = v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double qrRankingThreshold> = v;
return;
}
protected org.apache.commons.math.optim.PointVectorValuePair doOptimize()
{
byte v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.commons.math.exception.ConvergenceException v, v, v;
java.lang.Object[] v, v, v;
org.apache.commons.math.optim.ConvergenceChecker v;
int[] v, v, v, v, v, v, v;
org.apache.commons.math.optim.PointVectorValuePair v, v, v, v, v;
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.commons.math.linear.RealMatrix v, v;
double[][] v, v, v;
java.lang.Double v, v, v;
double[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.commons.math.exception.util.LocalizedFormats v, v, v;
boolean v, v;
double v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void checkParameters()>();
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] getTarget()>();
v = lengthof v;
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] getStartPoint()>();
v = lengthof v;
v = staticinvoke <org.apache.commons.math.util.FastMath: int min(int,int)>(v, v);
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols> = v;
v = newarray (double)[v];
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] diagR> = v;
v = newarray (double)[v];
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] jacNorm> = v;
v = newarray (double)[v];
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] beta> = v;
v = newarray (int)[v];
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation> = v;
v = newarray (double)[v];
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir> = v;
v = 0.0;
v = 0.0;
v = newarray (double)[v];
v = newarray (double)[v];
v = newarray (double)[v];
v = newarray (double)[v];
v = newarray (double)[v];
v = newarray (double)[v];
v = newarray (double)[v];
v = newarray (double)[v];
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: org.apache.commons.math.linear.RealMatrix getWeightSquareRoot()>();
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] computeObjectiveValue(double[])>(v);
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] computeResiduals(double[])>(v);
v = new org.apache.commons.math.optim.PointVectorValuePair;
specialinvoke v.<org.apache.commons.math.optim.PointVectorValuePair: void <init>(double[],double[])>(v, v);
v = v;
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double computeCost(double[])>(v);
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar> = 0.0;
v = 1;
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: org.apache.commons.math.optim.ConvergenceChecker getConvergenceChecker()>();
label:
virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void incrementIterationCount()>();
v = v;
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: org.apache.commons.math.linear.RealMatrix computeWeightedJacobian(double[])>(v);
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void qrDecomposition(org.apache.commons.math.linear.RealMatrix)>(v);
v = interfaceinvoke v.<org.apache.commons.math.linear.RealMatrix: double[] operate(double[])>(v);
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] weightedResidual> = v;
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] weightedResidual>;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void qTy(double[])>(v);
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] diagR>;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
if v == 0 goto label;
v = 0.0;
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] jacNorm>;
v = v[v];
v = v cmpl 0.0;
if v != 0 goto label;
v = 1.0;
label:
v = v[v];
v = v * v;
v = v * v;
v = v + v;
v[v] = v;
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = v cmpl 0.0;
if v != 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double initialStepBoundFactor>;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double initialStepBoundFactor>;
v = v * v;
label:
v = v;
label:
v = 0.0;
v = v cmpl 0.0;
if v == 0 goto label;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] jacNorm>;
v = v[v];
v = v cmpl 0.0;
if v == 0 goto label;
v = 0.0;
v = 0;
label:
if v > v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = v * v;
v = v / v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double max(double,double)>(v, v);
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double orthoTolerance>;
v = v cmpg v;
if v > 0 goto label;
virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void setCost(double)>(v);
return v;
label:
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] jacNorm>;
v = v[v];
v = staticinvoke <org.apache.commons.math.util.FastMath: double max(double,double)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
v = 0.0;
label:
v = v cmpg 1.0E-4;
if v >= 0 goto label;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] weightedResidual>;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] weightedResidual> = v;
v = v;
v = v;
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void determineLMParameter(double[],double,double[],double[],double[],double[])>(v, v, v, v, v, v);
v = 0.0;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v[v];
v = neg v;
v[v] = v;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v[v];
v = v + v;
v[v] = v;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v[v];
v = v * v;
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.commons.math.util.FastMath: double min(double,double)>(v, v);
label:
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] computeObjectiveValue(double[])>(v);
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] computeResiduals(double[])>(v);
v = new org.apache.commons.math.optim.PointVectorValuePair;
specialinvoke v.<org.apache.commons.math.optim.PointVectorValuePair: void <init>(double[],double[])>(v, v);
v = v;
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double computeCost(double[])>(v);
v = -1.0;
v = 0.1 * v;
v = v cmpg v;
if v >= 0 goto label;
v = v / v;
v = v * v;
v = 1.0 - v;
label:
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v[v];
v[v] = 0.0;
v = 0;
label:
if v > v goto label;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v[v] = v;
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = 0.0;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v * v;
v = v / v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = v * v;
v = v * v;
v = v / v;
v = 2.0 * v;
v = v + v;
v = v + v;
v = neg v;
v = v cmpl 0.0;
if v != 0 goto label;
v = 0.0;
goto label;
label:
v = v / v;
label:
v = v;
v = v cmpg 0.25;
if v > 0 goto label;
v = v cmpg 0.0;
if v >= 0 goto label;
v = 0.5 * v;
v = 0.5 * v;
v = v + v;
v = v / v;
goto label;
label:
v = 0.5;
label:
v = v;
v = 0.1 * v;
v = v cmpl v;
if v >= 0 goto label;
v = v cmpg 0.1;
if v >= 0 goto label;
label:
v = 0.1;
label:
v = 10.0 * v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double min(double,double)>(v, v);
v = v * v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = v / v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar> = v;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = v cmpl 0.0;
if v == 0 goto label;
v = v cmpl 0.75;
if v < 0 goto label;
label:
v = 2.0 * v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = v * 0.5;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar> = v;
label:
v = v cmpl 1.0E-4;
if v < 0 goto label;
v = 0;
v = 0.0;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v[v];
v = v * v;
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int getIterations()>();
v = interfaceinvoke v.<org.apache.commons.math.optim.ConvergenceChecker: boolean converged(int,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void setCost(double)>(v);
return v;
label:
v = v;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] weightedResidual>;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] weightedResidual> = v;
v = v;
v = v;
v = new org.apache.commons.math.optim.PointVectorValuePair;
specialinvoke v.<org.apache.commons.math.optim.PointVectorValuePair: void <init>(double[],double[])>(v, v);
v = v;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double costRelativeTolerance>;
v = v cmpg v;
if v > 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double costRelativeTolerance>;
v = v cmpg v;
if v > 0 goto label;
v = v cmpg 2.0;
if v <= 0 goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double parRelativeTolerance>;
v = v * v;
v = v cmpg v;
if v > 0 goto label;
label:
virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void setCost(double)>(v);
return v;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = <org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double TWO_EPS>;
v = v cmpg v;
if v > 0 goto label;
v = <org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double TWO_EPS>;
v = v cmpg v;
if v > 0 goto label;
v = v cmpg 2.0;
if v > 0 goto label;
v = new org.apache.commons.math.exception.ConvergenceException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats TOO_SMALL_COST_RELATIVE_TOLERANCE>;
v = newarray (java.lang.Object)[1];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double costRelativeTolerance>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v[0] = v;
specialinvoke v.<org.apache.commons.math.exception.ConvergenceException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Object[])>(v, v);
throw v;
label:
v = <org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double TWO_EPS>;
v = v * v;
v = v cmpg v;
if v > 0 goto label;
v = new org.apache.commons.math.exception.ConvergenceException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats TOO_SMALL_PARAMETERS_RELATIVE_TOLERANCE>;
v = newarray (java.lang.Object)[1];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double parRelativeTolerance>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v[0] = v;
specialinvoke v.<org.apache.commons.math.exception.ConvergenceException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Object[])>(v, v);
throw v;
label:
v = <org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double TWO_EPS>;
v = v cmpg v;
if v > 0 goto label;
v = new org.apache.commons.math.exception.ConvergenceException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats TOO_SMALL_ORTHOGONALITY_TOLERANCE>;
v = newarray (java.lang.Object)[1];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double orthoTolerance>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v[0] = v;
specialinvoke v.<org.apache.commons.math.exception.ConvergenceException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Object[])>(v, v);
throw v;
}
private void determineLMParameter(double[], double, double[], double[], double[], double[])
{
byte v, v, v, v, v, v, v, v, v, v;
int[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
double[][] v, v, v, v, v;
double[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
double v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v := @parameter: double[];
v := @parameter: double;
v := @parameter: double[];
v := @parameter: double[];
v := @parameter: double[];
v := @parameter: double[];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[0];
v = lengthof v;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int rank>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int rank>;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v[v] = 0.0;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int rank>;
v = v - 1;
label:
if v < 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] diagR>;
v = v[v];
v = v / v;
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v * v;
v = v - v;
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v[v] = v;
v = v - 1;
goto label;
label:
v = 0.0;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v[v];
v = v * v;
v[v] = v;
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = v - v;
v = 0.1 * v;
v = v cmpg v;
if v > 0 goto label;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar> = 0.0;
return;
label:
v = 0.0;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int rank>;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v != v goto label;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v[v];
v = v / v;
v = v * v;
v[v] = v;
v = v + 1;
goto label;
label:
v = 0.0;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = 0.0;
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v[v];
v = v - v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] diagR>;
v = v[v];
v = v / v;
v[v] = v;
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v * v;
v = v / v;
label:
v = 0.0;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = 0.0;
v = 0;
label:
if v > v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v[v];
v = v / v;
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = v / v;
v = v cmpl 0.0;
if v != 0 goto label;
v = <org.apache.commons.math.util.Precision: double SAFE_MIN>;
v = staticinvoke <org.apache.commons.math.util.FastMath: double min(double,double)>(v, 0.1);
v = v / v;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = staticinvoke <org.apache.commons.math.util.FastMath: double max(double,double)>(v, v);
v = staticinvoke <org.apache.commons.math.util.FastMath: double min(double,double)>(v, v);
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar> = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = v cmpl 0.0;
if v != 0 goto label;
v = v / v;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar> = v;
label:
v = 10;
label:
if v < 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = v cmpl 0.0;
if v != 0 goto label;
v = <org.apache.commons.math.util.Precision: double SAFE_MIN>;
v = 0.001 * v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double max(double,double)>(v, v);
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar> = v;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v * v;
v[v] = v;
v = v + 1;
goto label;
label:
specialinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: void determineLMDirection(double[],double[],double[],double[])>(v, v, v, v);
v = 0.0;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v[v];
v = v * v;
v[v] = v;
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = v;
v = v - v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = 0.1 * v;
v = v cmpg v;
if v <= 0 goto label;
v = v cmpl 0.0;
if v != 0 goto label;
v = v cmpg v;
if v > 0 goto label;
v = v cmpg 0.0;
if v >= 0 goto label;
label:
return;
label:
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v[v];
v = v * v;
v = v / v;
v[v] = v;
v = v + 1;
goto label;
label:
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v[v];
v = v / v;
v[v] = v;
v = v[v];
v = v + 1;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v * v;
v = v - v;
v[v] = v;
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = 0.0;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v * v;
v = v / v;
v = v cmpl 0.0;
if v <= 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = staticinvoke <org.apache.commons.math.util.FastMath: double max(double,double)>(v, v);
goto label;
label:
v = v cmpg 0.0;
if v >= 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = staticinvoke <org.apache.commons.math.util.FastMath: double min(double,double)>(v, v);
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar>;
v = v + v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double max(double,double)>(v, v);
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double lmPar> = v;
v = v - 1;
goto label;
label:
return;
}
private void determineLMDirection(double[], double[], double[], double[])
{
byte v, v, v, v;
double[][] v, v, v, v, v, v, v, v, v;
double[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int[] v, v, v, v, v, v, v, v;
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
double v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v := @parameter: double[];
v := @parameter: double[];
v := @parameter: double[];
v := @parameter: double[];
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v + 1;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] diagR>;
v = v[v];
v[v] = v;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v cmpl 0.0;
if v == 0 goto label;
v = v + 1;
v = lengthof v;
staticinvoke <java.util.Arrays: void fill(double[],int,int,double)>(v, v, v, 0.0);
label:
v[v] = v;
v = 0.0;
v = v;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v cmpl 0.0;
if v == 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = v[v];
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = v cmpg v;
if v >= 0 goto label;
v = v[v];
v = v / v;
v = v * v;
v = 1.0 + v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = 1.0 / v;
v = v * v;
goto label;
label:
v = v[v];
v = v / v;
v = v * v;
v = 1.0 + v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = 1.0 / v;
v = v * v;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v * v;
v = v[v];
v = v * v;
v = v + v;
v[v] = v;
v = v[v];
v = v * v;
v = v * v;
v = v + v;
v = neg v;
v = v[v];
v = v * v;
v = v * v;
v = v + v;
v[v] = v;
v = v + 1;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v * v;
v = v[v];
v = v * v;
v = v + v;
v = neg v;
v = v * v;
v = v[v];
v = v * v;
v = v + v;
v[v] = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v[v] = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v = v[v];
v = v cmpl 0.0;
if v != 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v != v goto label;
v = v;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
if v >= v goto label;
v[v] = 0.0;
label:
v = v + 1;
goto label;
label:
if v <= 0 goto label;
v = v - 1;
label:
if v < 0 goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = 0.0;
v = v + 1;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v[v];
v = v - v;
v = v[v];
v = v / v;
v[v] = v;
v = v - 1;
goto label;
label:
v = 0;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] lmDir>;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
return;
}
private void qrDecomposition(org.apache.commons.math.linear.RealMatrix) throws org.apache.commons.math.exception.ConvergenceException
{
java.lang.Integer v, v;
byte v, v, v;
org.apache.commons.math.exception.ConvergenceException v;
org.apache.commons.math.linear.RealMatrix v, v;
double[][] v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object[] v;
double[] v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.commons.math.exception.util.LocalizedFormats v;
int[] v, v, v, v, v, v, v, v;
boolean v, v;
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
double v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v := @parameter: org.apache.commons.math.linear.RealMatrix;
v = interfaceinvoke v.<org.apache.commons.math.linear.RealMatrix: org.apache.commons.math.linear.RealMatrix scalarMultiply(double)>(-1.0);
v = interfaceinvoke v.<org.apache.commons.math.linear.RealMatrix: double[][] getData()>();
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian> = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = lengthof v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[0];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v[v] = v;
v = 0.0;
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] jacNorm>;
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
v = 0;
label:
if v >= v goto label;
v = (int) -1;
v = v;
v = #-Infinity;
v = v;
label:
if v >= v goto label;
v = 0.0;
v = v;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.Double: boolean isInfinite(double)>(v);
if v != 0 goto label;
v = staticinvoke <java.lang.Double: boolean isNaN(double)>(v);
if v == 0 goto label;
label:
v = new org.apache.commons.math.exception.ConvergenceException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats UNABLE_TO_PERFORM_QR_DECOMPOSITION_ON_JACOBIAN>;
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
specialinvoke v.<org.apache.commons.math.exception.ConvergenceException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Object[])>(v, v);
throw v;
label:
v = v cmpl v;
if v <= 0 goto label;
v = v;
v = v;
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double qrRankingThreshold>;
v = v cmpg v;
if v > 0 goto label;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int rank> = v;
return;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v[v] = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v[v] = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v cmpl 0.0;
if v <= 0 goto label;
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = neg v;
goto label;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
label:
v = v * v;
v = v - v;
v = 1.0 / v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] beta>;
v[v] = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] diagR>;
v[v] = v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v - v;
v[v] = v;
v = v - 1;
v = v - v;
label:
if v <= 0 goto label;
v = 0.0;
v = v;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v + v;
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v * v;
v = v;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v + v;
v = v[v];
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v * v;
v = v - v;
v[v] = v;
v = v + 1;
goto label;
label:
v = v - 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int solvedCols>;
v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int rank> = v;
return;
}
private void qTy(double[])
{
double[] v, v, v, v, v;
int[] v;
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
int v, v, v, v, v, v;
double v, v, v, v, v, v, v, v, v, v;
double[][] v, v, v, v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v := @parameter: double[];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = lengthof v;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[0];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: int[] permutation>;
v = v[v];
v = 0.0;
v = v;
label:
if v >= v goto label;
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v[v];
v = v * v;
v = v + v;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] beta>;
v = v[v];
v = v * v;
v = v;
label:
if v >= v goto label;
v = v[v];
v = v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[][] weightedJacobian>;
v = v[v];
v = v[v];
v = v * v;
v = v - v;
v[v] = v;
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
return;
}
private void checkParameters()
{
java.lang.Object[] v;
org.apache.commons.math.exception.util.LocalizedFormats v;
org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer v;
double[] v, v;
org.apache.commons.math.exception.MathUnsupportedOperationException v;
v := @this: org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer;
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] getLowerBound()>();
if v != null goto label;
v = virtualinvoke v.<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double[] getUpperBound()>();
if v == null goto label;
label:
v = new org.apache.commons.math.exception.MathUnsupportedOperationException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats CONSTRAINT>;
v = newarray (java.lang.Object)[0];
specialinvoke v.<org.apache.commons.math.exception.MathUnsupportedOperationException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Object[])>(v, v);
throw v;
label:
return;
}
static void <clinit>()
{
double v, v;
v = <org.apache.commons.math.util.Precision: double EPSILON>;
v = 2.0 * v;
<org.apache.commons.math.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer: double TWO_EPS> = v;
return;
}
}