Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/Function.java @ 4209:7d0fb0109c01
Let AnnotationFacets come to life inactively in FixAnalysis LS settings.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Mon, 22 Oct 2012 09:10:29 +0200 |
parents | 585c0b49e696 |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.math.fitting; import org.apache.commons.math.FunctionEvaluationException; import org.apache.commons.math.optimization.fitting.ParametricRealFunction; import de.intevation.flys.utils.DoubleUtil; public abstract class Function implements ParametricRealFunction { protected String name; protected String description; protected String [] parameterNames; protected double [] initialGuess; public static abstract class Derivative { protected String description; public Derivative() { } public Derivative(String description) { this.description = description; } public String getDescription() { return description; } public abstract de.intevation.flys.artifacts.math.Function instantiate(double [] parameters); } // interface Derivative public Function() { } public Function( String name, String description, String [] parameterNames ) { this(name, description, parameterNames, DoubleUtil.fill(parameterNames.length, 1d)); } public Function( String name, String description, String [] parameterNames, double [] initialGuess ) { this.name = name; this.description = description; this.parameterNames = parameterNames; this.initialGuess = initialGuess; } public String getName() { return name; } public String getDescription() { return description; } public String [] getParameterNames() { return parameterNames; } public double [] getInitialGuess() { return initialGuess; } public de.intevation.flys.artifacts.math.Function instantiate( final double [] parameters ) { return new de.intevation.flys.artifacts.math.Function() { @Override public double value(double x) { try { return Function.this.value(x, parameters); } catch (FunctionEvaluationException fee) { return Double.NaN; } } }; } public abstract Derivative getDerivative(); public abstract Function getInverse(); } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :