[9e8dc22] | 1 | #if !defined(invertor_h) |
---|
| 2 | #define invertor_h |
---|
| 3 | |
---|
[896abb3] | 4 | /** |
---|
| 5 | * Internal data structure for P(r) inversion |
---|
| 6 | */ |
---|
[9e8dc22] | 7 | typedef struct { |
---|
[896abb3] | 8 | /// Maximum distance between any two points in the system |
---|
[9e8dc22] | 9 | double d_max; |
---|
[896abb3] | 10 | /// q data |
---|
[9e8dc22] | 11 | double *x; |
---|
[896abb3] | 12 | /// I(q) data |
---|
[9e8dc22] | 13 | double *y; |
---|
[896abb3] | 14 | /// dI(q) data |
---|
[9e8dc22] | 15 | double *err; |
---|
[896abb3] | 16 | /// Number of q points |
---|
[9e8dc22] | 17 | int npoints; |
---|
[896abb3] | 18 | /// Number of I(q) points |
---|
[9e8dc22] | 19 | int ny; |
---|
[896abb3] | 20 | /// Number of dI(q) points |
---|
[eca05c8] | 21 | int nerr; |
---|
[896abb3] | 22 | /// Alpha value |
---|
[eca05c8] | 23 | double alpha; |
---|
[896abb3] | 24 | /// Minimum q to include in inversion |
---|
[f71287f4] | 25 | double q_min; |
---|
[896abb3] | 26 | /// Maximum q to include in inversion |
---|
[f71287f4] | 27 | double q_max; |
---|
[eca05c8] | 28 | } Invertor_params; |
---|
[9e8dc22] | 29 | |
---|
| 30 | void invertor_dealloc(Invertor_params *pars); |
---|
| 31 | |
---|
| 32 | void invertor_init(Invertor_params *pars); |
---|
| 33 | |
---|
| 34 | |
---|
| 35 | double pr_sphere(double R, double r); |
---|
| 36 | double ortho(double d_max, int n, double r); |
---|
| 37 | double ortho_transformed(double d_max, int n, double q); |
---|
| 38 | double ortho_derived(double d_max, int n, double r); |
---|
| 39 | double iq(double *c, double d_max, int n_c, double q); |
---|
| 40 | double pr(double *c, double d_max, int n_c, double r); |
---|
[eca05c8] | 41 | double dprdr(double *pars, double d_max, int n_c, double r); |
---|
[abad620] | 42 | double reg_term(double *pars, double d_max, int n_c, int nslice); |
---|
| 43 | double int_p2(double *pars, double d_max, int n_c, int nslice); |
---|
[eca05c8] | 44 | void pr_err(double *pars, double *err, double d_max, int n_c, |
---|
| 45 | double r, double *pr_value, double *pr_value_err); |
---|
[4f63160] | 46 | int npeaks(double *pars, double d_max, int n_c, int nslice); |
---|
[43c0a8e] | 47 | double positive_integral(double *pars, double d_max, int n_c, int nslice); |
---|
| 48 | double positive_errors(double *pars, double *err, double d_max, int n_c, int nslice); |
---|
[4f63160] | 49 | |
---|
[9e8dc22] | 50 | #endif |
---|