Common usage of minimizing subroutine
returns the minimum value of func(x)  
INPUT  dim   : dimention of the function
INPUT  func  : pointer to the function
INPUT  init[]: the initial solution
INPUT  lower[], upper[]: range to search
               lower[i] <= init[i] <= upper[i] for all 0 <= i < dim
OUTPUT init[]: the minimized solution
/* steepest descent algorithm */
double  mconv_minimize(int dim, double func(int dim, int x[]),
                       int init[], int lower[], int upper[]);
double mgconv_minimize(int dim, double func(int dim, int x[]),
                       int init[], int lower[], int upper[]);
/* greedy algorithm (improved steepest descent method) */
double  mconv_minimize2(int dim, double func(int dim, int x[]), int init[]);
double mgconv_minimize2(int dim, double func(int dim, int x[]), int init[]);
/* greedy algorithm (improved steepest descent method) */
double  mconv_minimize3(int dim, double func(int dim, int x[]),
                        int init[], int lower[], int upper[]);
double mgconv_minimize3(int dim, double func(int dim, int x[]),
                        int init[], int lower[], int upper[]);
/* scaling algorithm (with greedy) */
double  mconv_minimize_scaling(int dim, double func(int dim, int x[]),
                               int init[], int lower[], int upper[]);
double mgconv_minimize_scaling(int dim, double func(int dim, int x[]),
                               int init[], int lower[], int upper[]);
/* continues relaxation algorithm */
double  mconv_minimize_relax(int dim, double func(int dim, double x[]),
                             int init[]);
double mgconv_minimize_relax(int dim, double func(int dim, double x[]),
			     int init[]);
/* steepest descent algorithm */
double  lconv_minimize(int dim, double func(int dim, int x[]), int init[],
		       const int fix_index);
double lgconv_minimize(int dim, double func(int dim, int x[]), int init[]);
/* steepest descent scaling algorithm */
double  lconv_minimize_scaling(int dim, double func(int dim, int x[]),
                               int init[], const int fix_index);
double lgconv_minimize_scaling(int dim, double func(int dim, int x[]),
                               int init[]);
/* steepest descent algorithm (with IFF) */
double  lconv_minimize_IFF(int dim, double func(int,int*), int init[],
                           const int fix_index);
double lgconv_minimize_IFF(int dim, double func(int,int*), int init[]);
/* steepest descent scaling algorithm (with IFF) */
double  lconv_minimize_scaling_IFF(int dim, double func(int,int*), int init[],
                           const int fix_index);
double lgconv_minimize_scaling_IFF(int dim, double func(int,int*), int init[]);
/* steepest descent algorithm (with FW) */
double  lconv_minimize_FW(int dim, double func(int,int*), int init[],
                           const int fix_index);
double lgconv_minimize_FW(int dim, double func(int,int*), int init[]);
/* steepest descent scaling algorithm (with FW) */
double  lconv_minimize_scaling_FW(int dim, double func(int,int*),int init[],
                           const int fix_index);
double lgconv_minimize_scaling_FW(int dim, double func(int,int*),int init[]);
/* continues relaxation algorithm (with IFF) */
double  lconv_minimize_relax(int dim, double func(int dim, double x[]),
                             int init[], const int fix_index);
double lgconv_minimize_relax(int dim, double func(int dim, double x[]),
			     int init[]);
double sf_minimize(int dim, double func(int,int*), int x[], int direction,
                   int set[], const int fix_index);
int is_lgconv_gene(int dim, double func(int,int*), int lower[], int upper[]);
int  is_lconv_gene(int dim, double func(int,int*), int lower[], int upper[]);
int is_mgconv_gene(int dim, double func(int,int*), int lower[], int upper[]);
int  is_mconv_gene(int dim, double func(int,int*), int lower[], int upper[],
                   int sum);