Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/math/fitting/Function.java @ 5838:5aa05a7a34b7
Rename modules to more fitting names.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 15:23:37 +0200 |
parents | flys-artifacts/src/main/java/org/dive4elements/river/artifacts/math/fitting/Function.java@bd047b71ab37 |
children | 4897a58c8746 |
line wrap: on
line source
package org.dive4elements.river.artifacts.math.fitting; import org.apache.commons.math.FunctionEvaluationException; import org.apache.commons.math.optimization.fitting.ParametricRealFunction; import org.dive4elements.river.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 org.dive4elements.river.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 org.dive4elements.river.artifacts.math.Function instantiate( final double [] parameters ) { return new org.dive4elements.river.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 :