File indexing completed on 2025-02-21 10:03:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef __GSL_SIMAN_H__
0021 #define __GSL_SIMAN_H__
0022 #include <stdlib.h>
0023 #include <gsl/gsl_rng.h>
0024
0025 #undef __BEGIN_DECLS
0026 #undef __END_DECLS
0027 #ifdef __cplusplus
0028 # define __BEGIN_DECLS extern "C" {
0029 # define __END_DECLS }
0030 #else
0031 # define __BEGIN_DECLS
0032 # define __END_DECLS
0033 #endif
0034
0035 __BEGIN_DECLS
0036
0037
0038
0039 typedef double (*gsl_siman_Efunc_t) (void *xp);
0040 typedef void (*gsl_siman_step_t) (const gsl_rng *r, void *xp, double step_size);
0041 typedef double (*gsl_siman_metric_t) (void *xp, void *yp);
0042 typedef void (*gsl_siman_print_t) (void *xp);
0043 typedef void (*gsl_siman_copy_t) (void *source, void *dest);
0044 typedef void * (*gsl_siman_copy_construct_t) (void *xp);
0045 typedef void (*gsl_siman_destroy_t) (void *xp);
0046
0047
0048
0049
0050
0051 typedef struct {
0052 int n_tries;
0053 int iters_fixed_T;
0054 double step_size;
0055
0056 double k, t_initial, mu_t, t_min;
0057 } gsl_siman_params_t;
0058
0059
0060
0061 void gsl_siman_solve(const gsl_rng * r,
0062 void *x0_p, gsl_siman_Efunc_t Ef,
0063 gsl_siman_step_t take_step,
0064 gsl_siman_metric_t distance,
0065 gsl_siman_print_t print_position,
0066 gsl_siman_copy_t copyfunc,
0067 gsl_siman_copy_construct_t copy_constructor,
0068 gsl_siman_destroy_t destructor,
0069 size_t element_size,
0070 gsl_siman_params_t params);
0071
0072 void
0073 gsl_siman_solve_many (const gsl_rng * r, void *x0_p, gsl_siman_Efunc_t Ef,
0074 gsl_siman_step_t take_step,
0075 gsl_siman_metric_t distance,
0076 gsl_siman_print_t print_position,
0077 size_t element_size,
0078 gsl_siman_params_t params);
0079
0080 __END_DECLS
0081
0082 #endif