double (*gsl_siman_Efunc_t) (void *xp);
void (*gsl_siman_step_t) (void *xp, double step_size);
double (*gsl_siman_metric_t) (void *xp, void *yp);
void (*gsl_siman_print_t) (void *xp);
gsl_siman_solve.
/* this structure contains all the information 
   needed to structure the search, beyond the 
   energy function, the step function and the 
   initial guess. */
struct s_siman_params {
  /* how many points to try for each step */
  int n_tries;          
  /* how many iterations at each temperature? */
  int iters_fixed_T;    
  /* max step size in the random walk */
  double step_size;     
  /* the following parameters are for the 
     Boltzmann distribution */
  double k, t_initial, mu_t, t_min;
};
typedef struct s_siman_params gsl_siman_params_t;
The params structure (described above) controls the run by
providing the temperature schedule and other tunable parameters to the
algorithm (see section Simulated Annealing algorithm).
p
The result (optimal point in the space) is placed in *x0_p.
If print_position is not null, a log will be printed to the screen with the following columns:
number_of_iterations temperature x x-(*x0_p) Ef(x)
If print_position is null, no information is printed to the screen.