package edu.stanford.rsl.jpop;

/**
 * This interface provides methods to assemble the information after the block-wise processing of the evaluate, gradient, and hessian.
 * @author akmaier
 *
 */
public interface FunctionAssembler {
	
	/**
	 * This method is provided with an array of block results and assembles them into a single function evaluation result.
	 * @param blockResults the results of the processing blocks.
	 * @return the evaluation result
	 */
	public double assembleEvaluationBlocks (double [] blockResults);
	
	/**
	 * This method is provided with an array of gradients which were obtained by the different processing blocks. The methods assembles the data into a single gradient vector. The first index of the gradient array is supposed to refer to the block number. 
	 * @param blockResults the block results
	 * @return the assembled gradient vector
	 */
	public double [] assembleGradientBlocks (double [] [] blockResults);
	
	
	/**
	 * This method is provided with an array of hessians as computed fron the parallel procesing blocks. The first index of the array should refer to the block index.
	 * @param blockResults the block results.
	 * @return the assembled Hessian.
	 */
	public double [] [] assembleHessianBlocks (double [] [] [] blockResults);
	
}

 

Ads help maintain this website.