25 #include <cpl_macros.h>
26 #include <cpl_matrix.h>
41 typedef enum GiModelType GiModelType;
43 typedef struct GiModel GiModel;
53 typedef struct GiFitSetup GiFitSetup;
56 GiModel* giraffe_model_new(
const cxchar* name);
57 GiModel* giraffe_model_clone(
const GiModel* other);
58 void giraffe_model_delete(GiModel*
self);
60 const cxchar* giraffe_model_get_name(
const GiModel*
self);
61 GiModelType giraffe_model_get_type(
const GiModel*
self);
63 cxsize giraffe_model_count_arguments(
const GiModel*
self);
64 cxsize giraffe_model_count_parameters(
const GiModel*
self);
66 const cxchar* giraffe_model_argument_name(
const GiModel*
self,
68 const cxchar* giraffe_model_parameter_name(
const GiModel*
self,
71 cxint giraffe_model_set_argument(GiModel*
self,
const cxchar* name,
73 cxdouble giraffe_model_get_argument(
const GiModel*
self,
76 cxint giraffe_model_set_parameter(GiModel*
self,
const cxchar* name,
78 cxdouble giraffe_model_get_parameter(
const GiModel*
self,
81 cxint giraffe_model_freeze_parameter(GiModel*
self,
const cxchar* name);
82 cxint giraffe_model_thaw_parameter(GiModel*
self,
const cxchar* name);
84 cxbool giraffe_model_frozen_parameter(
const GiModel*
self,
87 cxint giraffe_model_freeze(GiModel*
self);
88 cxint giraffe_model_thaw(GiModel*
self);
90 cxint giraffe_model_evaluate(
const GiModel*
self, cxdouble* result,
93 cxint giraffe_model_fit(GiModel*
self, cpl_matrix* x, cpl_matrix* y,
95 cxint giraffe_model_fit_sequence(GiModel*
self, cpl_matrix* x,
96 cpl_matrix* y, cpl_matrix* sigma,
97 cxint ndata, cxint start, cxint stride);
99 cxint giraffe_model_set_iterations(GiModel*
self, cxint iterations);
100 cxint giraffe_model_get_iterations(
const GiModel*
self);
102 cxint giraffe_model_set_delta(GiModel*
self, cxdouble delta);
103 cxdouble giraffe_model_get_delta(
const GiModel*
self);
105 cxint giraffe_model_set_tests(GiModel*
self, cxint tests);
106 cxint giraffe_model_get_tests(
const GiModel*
self);
108 cxint giraffe_model_get_position(
const GiModel*
self);
109 cxint giraffe_model_get_df(
const GiModel*
self);
110 cxdouble giraffe_model_get_chisq(
const GiModel*
self);
111 cxdouble giraffe_model_get_rsquare(
const GiModel*
self);
113 cxdouble giraffe_model_get_variance(
const GiModel*
self,
115 cxdouble giraffe_model_get_sigma(
const GiModel*
self,