package edu.stanford.rsl.jpop;

public abstract class FunctionController {
	
	protected FunctionAssembler assembler;
	
	/**
	 * @return the assembler
	 */
	public FunctionAssembler getAssembler() {
		return assembler;
	}

	/**
	 * @param assembler the assembler to set
	 */
	public void setAssembler(FunctionAssembler assembler) {
		this.assembler = assembler;
	}

	/**
	 * Evaluates the given Function and returns the result.
	 * @param function
	 * @return
	 */
	public abstract double evaluate(OptimizableFunction function, double [] x);
	
	/**
	 * Evaluates the given Function's Gradient and returns the result.
	 * @param function
	 * @return
	 */
	public abstract double [] gradient (GradientOptimizableFunction function, double [] x);
	
	/**
	 * Evaluates the given Function's Hessian and returns the result.
	 * @param function
	 * @return
	 */
	public abstract double [] [] hessian (HessianOptimizableFunction function, double [] x);
}

 

Ads help maintain this website.