//
// Special Session on Real-Parameter Optimization at CEC-05
// Edinburgh, UK, 2-5 Sept. 2005
//
// Organizers:
// Prof. Kalyanmoy Deb
// deb@iitk.ac.in
// http://www.iitk.ac.in/kangal/deb.htm
// A/Prof. P. N. Suganthan
// epnsugan@ntu.edu.sg
// http://www.ntu.edu.sg/home/EPNSugan
//
// Java version of the org.uma.test functions
//
// Matlab reference code
// http://www.ntu.edu.sg/home/EPNSugan
//
// Java version developer:
// Assistant Prof. Ying-ping Chen
// Department of Computer Science
// National Chiao Tung University
// HsinChu City, Taiwan
// ypchen@csie.nctu.edu.tw
// http://www.csie.nctu.edu.tw/~ypchen/
//
// Typical use of the org.uma.test functions in the Benchmark:
//
// // Create a Benchmark object
// Benchmark theBenchmark = new Benchmark();
// // Use the factory function call to create a org.uma.test function object
// // org.uma.test function 3 with 50 dimension
// // the object class is "TestFunc"
// TestFunc aTestFunc = theBenchmark.testFunctionFactory(3, 50);
// // Invoke the function with x
// double experimentoutput = aTestFunc.f(x);
//
// Version 0.90
// Currently, this version cannot handle any numbers of dimensions.
// It cannot generate the shifted global optima and rotation matrices
// that are not provided with the Matlab reference code.
// It can handle all cases whose data files are provided with
// the Matlab reference code.
// Version 0.91
// Revised according to the Matlab reference code and the PDF document
// dated March 8, 2005.
//
package org.uma.jmetal.problem.singleobjective.cec2005competitioncode;
public abstract class HCJob {
// Number of basic functions
public int numberOfBasicFunctions;
// Number of dimensions
public int numberOfDimensions;
// Predefined constant
public double C;
// Coverage range for each basic function
public double[] sigma;
// Biases for each basic function
public double[] biases;
// Stretch / compress each basic function
public double[] lambda;
// Estimated fmax
public double[] fmax;
// Shift global optimum for each basic function
public double[][] shiftGlobalOptimum;
// Linear transformation matrix for each basic function
public double[][][] linearTransformationMatrix;
// Working areas to avoid memory allocation operations
public double[] w;
public double[][] z;
public double[][] zM;
public HCJob() {
// Nothing
// This class is just a place holder.
}
public abstract double basicFunc(int func_no, double[] x) ;
}