From e5ffbd266ff58a418453f928cee59fed3edb6406 Mon Sep 17 00:00:00 2001 From: Daniel Lisunkin Date: Fri, 24 May 2019 19:32:17 +0200 Subject: [PATCH] Started implementing cubic spline interpolation for ORC Performance Curve. --- .../orc/impl/ORCPerformanceCurveImpl.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveImpl.java index 556856298c7..c965e361f04 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveImpl.java @@ -10,7 +10,9 @@ import java.util.Map; import java.util.Map.Entry; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.math.FunctionEvaluationException; +import org.apache.commons.math.analysis.interpolation.SplineInterpolator; import org.apache.commons.math.analysis.polynomials.PolynomialFunctionLagrangeForm; +import org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.orc.ORCPerformanceCurve; @@ -163,6 +165,22 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv return result; } + private void intializePerformanceCurve() throws FunctionEvaluationException { + Map allowances = createAllowancesPerCourse(); + SplineInterpolator interpolator = new SplineInterpolator(); + double[] xs = new double[ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS.length]; + double[] ys = new double[ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS.length]; + int i = 0; + + for(Entry entry : allowances.entrySet()) { + xs[i] = entry.getKey().getKnots(); + ys[i] = entry.getValue().asSeconds(); + i += 1; + } + + PolynomialSplineFunction function = interpolator.interpolate(xs, ys); + } + @Override public Speed getImpliedWind() { // TODO Auto-generated method stub