Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/Function.java @ 4656:442fbb290fa8
Introduce river mapfile generation (WARNING: Changes in config xml files required!).
On startup the RiverMapfileGeneratorStarter is called by the server app.
The starter invokes a call to RiverMapfileGenerator.generate() which
reads all available rivers from the database and generates
layers for each river (in theory...uncompleted) in a
river.map file.
The old MapfileGenerator which generates layers that have
artifact dependencies is now in ArtifactMapfileGenerator.
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Tue, 11 Dec 2012 15:24:24 +0100 |
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 :