public class org.apache.commons.math.analysis.interpolation.LoessInterpolator extends java.lang.Object implements org.apache.commons.math.analysis.interpolation.UnivariateInterpolator, java.io.Serializable
{
public static final double DEFAULT_BANDWIDTH;
public static final int DEFAULT_ROBUSTNESS_ITERS;
public static final double DEFAULT_ACCURACY;
private static final long serialVersionUID;
private final double bandwidth;
private final int robustnessIters;
private final double accuracy;
public void <init>()
{
org.apache.commons.math.analysis.interpolation.LoessInterpolator v;
v := @this: org.apache.commons.math.analysis.interpolation.LoessInterpolator;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double bandwidth> = 0.3;
v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: int robustnessIters> = 2;
v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double accuracy> = 1.0E-12;
return;
}
public void <init>(double, int)
{
int v;
org.apache.commons.math.analysis.interpolation.LoessInterpolator v;
double v;
v := @this: org.apache.commons.math.analysis.interpolation.LoessInterpolator;
v := @parameter: double;
v := @parameter: int;
specialinvoke v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: void <init>(double,int,double)>(v, v, 1.0E-12);
return;
}
public void <init>(double, int, double) throws org.apache.commons.math.exception.OutOfRangeException, org.apache.commons.math.exception.NotPositiveException
{
org.apache.commons.math.exception.util.LocalizedFormats v, v;
java.lang.Double v;
org.apache.commons.math.analysis.interpolation.LoessInterpolator v;
java.lang.Integer v, v, v;
org.apache.commons.math.exception.OutOfRangeException v;
byte v, v;
org.apache.commons.math.exception.NotPositiveException v;
int v;
double v, v;
v := @this: org.apache.commons.math.analysis.interpolation.LoessInterpolator;
v := @parameter: double;
v := @parameter: int;
v := @parameter: double;
specialinvoke v.<java.lang.Object: void <init>()>();
v = v cmpg 0.0;
if v < 0 goto label;
v = v cmpl 1.0;
if v <= 0 goto label;
label:
v = new org.apache.commons.math.exception.OutOfRangeException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats BANDWIDTH>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
specialinvoke v.<org.apache.commons.math.exception.OutOfRangeException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Number,java.lang.Number,java.lang.Number)>(v, v, v, v);
throw v;
label:
v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double bandwidth> = v;
if v >= 0 goto label;
v = new org.apache.commons.math.exception.NotPositiveException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats ROBUSTNESS_ITERATIONS>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<org.apache.commons.math.exception.NotPositiveException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Number)>(v, v);
throw v;
label:
v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: int robustnessIters> = v;
v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double accuracy> = v;
return;
}
public final org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction interpolate(double[], double[]) throws org.apache.commons.math.exception.NonMonotonicSequenceException, org.apache.commons.math.exception.DimensionMismatchException, org.apache.commons.math.exception.NoDataException, org.apache.commons.math.exception.NotFiniteNumberException, org.apache.commons.math.exception.NumberIsTooSmallException
{
org.apache.commons.math.analysis.interpolation.SplineInterpolator v;
org.apache.commons.math.analysis.interpolation.LoessInterpolator v;
org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction v;
double[] v, v, v;
v := @this: org.apache.commons.math.analysis.interpolation.LoessInterpolator;
v := @parameter: double[];
v := @parameter: double[];
v = new org.apache.commons.math.analysis.interpolation.SplineInterpolator;
specialinvoke v.<org.apache.commons.math.analysis.interpolation.SplineInterpolator: void <init>()>();
v = virtualinvoke v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double[] smooth(double[],double[])>(v, v);
v = virtualinvoke v.<org.apache.commons.math.analysis.interpolation.SplineInterpolator: org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction interpolate(double[],double[])>(v, v);
return v;
}
public final double[] smooth(double[], double[], double[]) throws org.apache.commons.math.exception.NonMonotonicSequenceException, org.apache.commons.math.exception.DimensionMismatchException, org.apache.commons.math.exception.NoDataException, org.apache.commons.math.exception.NotFiniteNumberException, org.apache.commons.math.exception.NumberIsTooSmallException
{
java.lang.Integer v, v;
byte v, v, v, v;
org.apache.commons.math.analysis.interpolation.LoessInterpolator v;
double[] v, v, v, v, v, v, v, v, v;
org.apache.commons.math.exception.NumberIsTooSmallException v;
org.apache.commons.math.exception.util.LocalizedFormats v;
org.apache.commons.math.exception.DimensionMismatchException v;
int[] v;
org.apache.commons.math.exception.NoDataException v;
int 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 := @this: org.apache.commons.math.analysis.interpolation.LoessInterpolator;
v := @parameter: double[];
v := @parameter: double[];
v := @parameter: double[];
v = lengthof v;
v = lengthof v;
if v == v goto label;
v = new org.apache.commons.math.exception.DimensionMismatchException;
v = lengthof v;
v = lengthof v;
specialinvoke v.<org.apache.commons.math.exception.DimensionMismatchException: void <init>(int,int)>(v, v);
throw v;
label:
v = lengthof v;
if v != 0 goto label;
v = new org.apache.commons.math.exception.NoDataException;
specialinvoke v.<org.apache.commons.math.exception.NoDataException: void <init>()>();
throw v;
label:
staticinvoke <org.apache.commons.math.analysis.interpolation.LoessInterpolator: void checkAllFiniteReal(double[])>(v);
staticinvoke <org.apache.commons.math.analysis.interpolation.LoessInterpolator: void checkAllFiniteReal(double[])>(v);
staticinvoke <org.apache.commons.math.analysis.interpolation.LoessInterpolator: void checkAllFiniteReal(double[])>(v);
staticinvoke <org.apache.commons.math.util.MathArrays: void checkOrder(double[])>(v);
if v != 1 goto label;
v = newarray (double)[1];
v = v[0];
v[0] = v;
return v;
label:
if v != 2 goto label;
v = newarray (double)[2];
v = v[0];
v[0] = v;
v = v[1];
v[1] = v;
return v;
label:
v = v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double bandwidth>;
v = v * v;
if v >= 2 goto label;
v = new org.apache.commons.math.exception.NumberIsTooSmallException;
v = <org.apache.commons.math.exception.util.LocalizedFormats: org.apache.commons.math.exception.util.LocalizedFormats BANDWIDTH>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(2);
specialinvoke v.<org.apache.commons.math.exception.NumberIsTooSmallException: void <init>(org.apache.commons.math.exception.util.Localizable,java.lang.Number,java.lang.Number,boolean)>(v, v, v, 1);
throw v;
label:
v = newarray (double)[v];
v = newarray (double)[v];
v = newarray (double)[v];
v = newarray (double)[v];
staticinvoke <java.util.Arrays: void fill(double[],double)>(v, 1.0);
v = 0;
label:
v = v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: int robustnessIters>;
if v > v goto label;
v = newarray (int)[2];
v[0] = 0;
v = v - 1;
v[1] = v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v <= 0 goto label;
staticinvoke <org.apache.commons.math.analysis.interpolation.LoessInterpolator: void updateBandwidthInterval(double[],double[],int,int[])>(v, v, v, v);
label:
v = v[0];
v = v[1];
v = v[v];
v = v[v];
v = v - v;
v = v[v];
v = v[v];
v = v - v;
v = v cmpl v;
if v <= 0 goto label;
v = v;
goto label;
label:
v = v;
label:
v = 0.0;
v = 0.0;
v = 0.0;
v = 0.0;
v = 0.0;
v = v[v];
v = v - v;
v = 1.0 / v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = v;
label:
if v > v goto label;
v = v[v];
v = v[v];
if v >= v goto label;
v = v - v;
goto label;
label:
v = v - v;
label:
v = v * v;
v = staticinvoke <org.apache.commons.math.analysis.interpolation.LoessInterpolator: double tricube(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 + 1;
goto label;
label:
v = v / v;
v = v / v;
v = v / v;
v = v / v;
v = v * v;
v = v - v;
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double accuracy>;
v = v cmpg v;
if v >= 0 goto label;
v = 0.0;
goto label;
label:
v = v * v;
v = v - v;
v = v * v;
v = v - v;
v = v / v;
label:
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 = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: int robustnessIters>;
if v == v goto label;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
staticinvoke <java.util.Arrays: void sort(double[])>(v);
v = v / 2;
v = v[v];
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double accuracy>;
v = v cmpg v;
if v < 0 goto label;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = 6.0 * v;
v = v / v;
v = v cmpl 1.0;
if v < 0 goto label;
v[v] = 0.0;
goto label;
label:
v = v * v;
v = 1.0 - v;
v = v * v;
v[v] = v;
label:
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
return v;
}
public final double[] smooth(double[], double[]) throws org.apache.commons.math.exception.NonMonotonicSequenceException, org.apache.commons.math.exception.DimensionMismatchException, org.apache.commons.math.exception.NoDataException, org.apache.commons.math.exception.NotFiniteNumberException, org.apache.commons.math.exception.NumberIsTooSmallException
{
org.apache.commons.math.analysis.interpolation.LoessInterpolator v;
double[] v, v, v, v;
org.apache.commons.math.exception.DimensionMismatchException v;
int v, v, v, v, v;
v := @this: org.apache.commons.math.analysis.interpolation.LoessInterpolator;
v := @parameter: double[];
v := @parameter: double[];
v = lengthof v;
v = lengthof v;
if v == v goto label;
v = new org.apache.commons.math.exception.DimensionMismatchException;
v = lengthof v;
v = lengthof v;
specialinvoke v.<org.apache.commons.math.exception.DimensionMismatchException: void <init>(int,int)>(v, v);
throw v;
label:
v = lengthof v;
v = newarray (double)[v];
staticinvoke <java.util.Arrays: void fill(double[],double)>(v, 1.0);
v = virtualinvoke v.<org.apache.commons.math.analysis.interpolation.LoessInterpolator: double[] smooth(double[],double[],double[])>(v, v, v);
return v;
}
private static void updateBandwidthInterval(double[], double[], int, int[])
{
double[] v, v;
byte v;
int[] v;
int v, v, v, v, v, v, v;
double v, v, v, v, v, v;
v := @parameter: double[];
v := @parameter: double[];
v := @parameter: int;
v := @parameter: int[];
v = v[0];
v = v[1];
v = staticinvoke <org.apache.commons.math.analysis.interpolation.LoessInterpolator: int nextNonzero(double[],int)>(v, v);
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v[v];
v = v - v;
v = v[v];
v = v[v];
v = v - v;
v = v cmpg v;
if v >= 0 goto label;
v = v[0];
v = staticinvoke <org.apache.commons.math.analysis.interpolation.LoessInterpolator: int nextNonzero(double[],int)>(v, v);
v[0] = v;
v[1] = v;
label:
return;
}
private static int nextNonzero(double[], int)
{
byte v;
double[] v;
int v, v, v;
double v;
v := @parameter: double[];
v := @parameter: int;
v = v + 1;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v cmpl 0.0;
if v != 0 goto label;
v = v + 1;
goto label;
label:
return v;
}
private static double tricube(double)
{
byte v;
double v, v, v, v, v, v, v;
v := @parameter: double;
v = staticinvoke <org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = v cmpl 1.0;
if v < 0 goto label;
return 0.0;
label:
v = v * v;
v = v * v;
v = 1.0 - v;
v = v * v;
v = v * v;
return v;
}
private static void checkAllFiniteReal(double[])
{
double[] v;
int v, v;
double v;
v := @parameter: double[];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
staticinvoke <org.apache.commons.math.util.MathUtils: void checkFinite(double)>(v);
v = v + 1;
goto label;
label:
return;
}
}