00001 /** 00002 class obj_funct 00003 00004 File: obj_funct.h 00005 00006 Description: General definition for all objective functions 00007 that can appear in SIFEL project. 00008 00009 Author: Anna Kucerova, anicka@cml.fsv.cvut.cz 00010 Matej Leps, leps@cml.fsv.cvut.cz 00011 00012 $Id: obj_funct.h,v 1.6 2003/12/05 20:31:07 leps Exp $ 00013 */ 00014 00015 # ifndef __obj_funct_h__ 00016 # define __obj_funct_h__ 00017 00018 #if !defined ( __general_h_ ) 00019 #include "general.h" 00020 #endif 00021 00022 00023 class obj_funct 00024 { 00025 public: 00026 obj_funct ( long oDim ); ///< constructor 00027 ~obj_funct ( void ); ///< destructor 00028 00029 void user_allocate ( void ); ///< user's allocation 00030 double value ( double *oCH ); ///< general objective value 00031 double user_value ( double *oCH ); ///< user's objective value 00032 void sifel_value ( double *oCH ); ///< SIFEL preparation 00033 void user_deallocate ( void ); ///< user's deallocation 00034 void user_evaluate ( double *oBSF ); ///< final evaluation 00035 00036 long Dim; ///< number of optimization variables 00037 p_double *Domain; ///< definition of searched domain 00038 double *optimum; ///< if known, here is optimum 00039 double precision; ///< if optimum, this is distance to it 00040 char *outfile; ///< name of output file 00041 char name[256]; ///< name of function 00042 long Return_to_domain; ///< solutions can be outside domain 00043 private: 00044 00045 }; 00046 00047 # endif // __obj_funct_h__