summaryrefslogtreecommitdiffstats
path: root/helper/LMfunc.java
blob: dc163812bee88e956d21db7e99334cdfc64e5196 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// LMfunc.java

package helper;

/**
 * Caller implement this interface to specify the function to be minimized and
 * its gradient.
 * 
 * Optionally return an initial guess and some test data, though the LM.java
 * only uses this in its optional main() test program. Return null if these are
 * not needed.
 */
public interface LMfunc {

	/**
	 * x is a single point, but domain may be mulidimensional
	 */
	double val(double[] x, double[] a);

	/**
	 * return the kth component of the gradient df(x,a)/da_k
	 */
	double grad(double[] x, double[] a, int ak);

	/**
	 * return initial guess at a[]
	 */
	double[] initial();

	/**
	 * return an array[4] of x,a,y,s for a test case; a is the desired final
	 * answer.
	 */
	Object[] testdata();

} // LMfunc