public abstract class oadd.org.apache.commons.math.ode.MultistepIntegrator extends oadd.org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator
{
protected double[] scaled;
protected oadd.org.apache.commons.math.linear.Array2DRowRealMatrix nordsieck;
private oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter;
private final int nSteps;
private double exp;
private double safety;
private double minReduction;
private double maxGrowth;
protected void <init>(java.lang.String, int, int, double, double, double, double) throws oadd.org.apache.commons.math.exception.NumberIsTooSmallException
{
java.lang.Integer v, v;
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
int v, v;
oadd.org.apache.commons.math.ode.nonstiff.DormandPrince853Integrator v;
java.lang.String v;
double v, v, v, v, v, v, v, v;
oadd.org.apache.commons.math.exception.NumberIsTooSmallException v;
oadd.org.apache.commons.math.exception.util.LocalizedFormats v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double;
specialinvoke v.<oadd.org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator: void <init>(java.lang.String,double,double,double,double)>(v, v, v, v, v);
if v >= 2 goto label;
v = new oadd.org.apache.commons.math.exception.NumberIsTooSmallException;
v = <oadd.org.apache.commons.math.exception.util.LocalizedFormats: oadd.org.apache.commons.math.exception.util.LocalizedFormats INTEGRATION_METHOD_NEEDS_AT_LEAST_TWO_PREVIOUS_POINTS>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(2);
specialinvoke v.<oadd.org.apache.commons.math.exception.NumberIsTooSmallException: void <init>(oadd.org.apache.commons.math.exception.util.Localizable,java.lang.Number,java.lang.Number,boolean)>(v, v, v, 1);
throw v;
label:
v = new oadd.org.apache.commons.math.ode.nonstiff.DormandPrince853Integrator;
specialinvoke v.<oadd.org.apache.commons.math.ode.nonstiff.DormandPrince853Integrator: void <init>(double,double,double,double)>(v, v, v, v);
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter> = v;
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: int nSteps> = v;
v = -1.0 / v;
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double exp> = v;
virtualinvoke v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: void setSafety(double)>(0.9);
virtualinvoke v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: void setMinReduction(double)>(0.2);
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double exp>;
v = neg v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double pow(double,double)>(2.0, v);
virtualinvoke v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: void setMaxGrowth(double)>(v);
return;
}
protected void <init>(java.lang.String, int, int, double, double, double[], double[])
{
double[] v, v;
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
int v, v;
oadd.org.apache.commons.math.ode.nonstiff.DormandPrince853Integrator v;
java.lang.String v;
double v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v := @parameter: double;
v := @parameter: double;
v := @parameter: double[];
v := @parameter: double[];
specialinvoke v.<oadd.org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator: void <init>(java.lang.String,double,double,double[],double[])>(v, v, v, v, v);
v = new oadd.org.apache.commons.math.ode.nonstiff.DormandPrince853Integrator;
specialinvoke v.<oadd.org.apache.commons.math.ode.nonstiff.DormandPrince853Integrator: void <init>(double,double,double[],double[])>(v, v, v, v);
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter> = v;
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: int nSteps> = v;
v = -1.0 / v;
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double exp> = v;
virtualinvoke v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: void setSafety(double)>(0.9);
virtualinvoke v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: void setMinReduction(double)>(0.2);
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double exp>;
v = neg v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double pow(double,double)>(2.0, v);
virtualinvoke v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: void setMaxGrowth(double)>(v);
return;
}
public oadd.org.apache.commons.math.ode.ODEIntegrator getStarterIntegrator()
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
oadd.org.apache.commons.math.ode.FirstOrderIntegrator v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter>;
return v;
}
public void setStarterIntegrator(oadd.org.apache.commons.math.ode.FirstOrderIntegrator)
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
oadd.org.apache.commons.math.ode.FirstOrderIntegrator v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v := @parameter: oadd.org.apache.commons.math.ode.FirstOrderIntegrator;
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter> = v;
return;
}
protected void start(double, double[], double) throws oadd.org.apache.commons.math.exception.DimensionMismatchException, oadd.org.apache.commons.math.exception.NumberIsTooSmallException, oadd.org.apache.commons.math.exception.MaxCountExceededException, oadd.org.apache.commons.math.exception.NoBracketingException
{
oadd.org.apache.commons.math.ode.MultistepIntegrator$CountingDifferentialEquations v;
double[] v, v;
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
int v, v, v, v;
double v, v;
oadd.org.apache.commons.math.ode.FirstOrderIntegrator v, v, v, v, v;
oadd.org.apache.commons.math.ode.MultistepIntegrator$InitializationCompletedMarkerException v;
oadd.org.apache.commons.math.ode.MultistepIntegrator$NordsieckInitializer v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v := @parameter: double;
v := @parameter: double[];
v := @parameter: double;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter>;
interfaceinvoke v.<oadd.org.apache.commons.math.ode.FirstOrderIntegrator: void clearEventHandlers()>();
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter>;
interfaceinvoke v.<oadd.org.apache.commons.math.ode.FirstOrderIntegrator: void clearStepHandlers()>();
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter>;
v = new oadd.org.apache.commons.math.ode.MultistepIntegrator$NordsieckInitializer;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: int nSteps>;
v = lengthof v;
specialinvoke v.<oadd.org.apache.commons.math.ode.MultistepIntegrator$NordsieckInitializer: void <init>(oadd.org.apache.commons.math.ode.MultistepIntegrator,int,int)>(v, v, v);
interfaceinvoke v.<oadd.org.apache.commons.math.ode.FirstOrderIntegrator: void addStepHandler(oadd.org.apache.commons.math.ode.sampling.StepHandler)>(v);
label:
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter>;
v = new oadd.org.apache.commons.math.ode.MultistepIntegrator$CountingDifferentialEquations;
v = lengthof v;
specialinvoke v.<oadd.org.apache.commons.math.ode.MultistepIntegrator$CountingDifferentialEquations: void <init>(oadd.org.apache.commons.math.ode.MultistepIntegrator,int)>(v, v);
v = lengthof v;
v = newarray (double)[v];
interfaceinvoke v.<oadd.org.apache.commons.math.ode.FirstOrderIntegrator: double integrate(oadd.org.apache.commons.math.ode.FirstOrderDifferentialEquations,double,double[],double,double[])>(v, v, v, v, v);
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: oadd.org.apache.commons.math.ode.FirstOrderIntegrator starter>;
interfaceinvoke v.<oadd.org.apache.commons.math.ode.FirstOrderIntegrator: void clearStepHandlers()>();
return;
catch oadd.org.apache.commons.math.ode.MultistepIntegrator$InitializationCompletedMarkerException from label to label with label;
}
protected abstract oadd.org.apache.commons.math.linear.Array2DRowRealMatrix initializeHighOrderDerivatives(double, double[], double[][], double[][]);
public double getMinReduction()
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
double v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double minReduction>;
return v;
}
public void setMinReduction(double)
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
double v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v := @parameter: double;
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double minReduction> = v;
return;
}
public double getMaxGrowth()
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
double v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double maxGrowth>;
return v;
}
public void setMaxGrowth(double)
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
double v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v := @parameter: double;
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double maxGrowth> = v;
return;
}
public double getSafety()
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
double v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double safety>;
return v;
}
public void setSafety(double)
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
double v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v := @parameter: double;
v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double safety> = v;
return;
}
protected double computeStepGrowShrinkFactor(double)
{
oadd.org.apache.commons.math.ode.MultistepIntegrator v;
double v, v, v, v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.ode.MultistepIntegrator;
v := @parameter: double;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double maxGrowth>;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double minReduction>;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double safety>;
v = v.<oadd.org.apache.commons.math.ode.MultistepIntegrator: double exp>;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double pow(double,double)>(v, v);
v = v * v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double max(double,double)>(v, v);
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double min(double,double)>(v, v);
return v;
}
}