source: sasview/src/sas/sascalc/pr/c_extensions/invertor.h @ 0765c00

Last change on this file since 0765c00 was b699768, checked in by Piotr Rozyczko <piotr.rozyczko@…>, 9 years ago

Initial commit of the refactored SasCalc? module.

  • Property mode set to 100644
File size: 2.1 KB
Line 
1#if !defined(invertor_h)
2#define invertor_h
3
4/**
5 * Internal data structure for P(r) inversion
6 */
7typedef struct {
8        /// Maximum distance between any two points in the system
9    double d_max;
10    /// q data
11    double *x;
12    /// I(q) data
13    double *y;
14    /// dI(q) data
15    double *err;
16    /// Number of q points
17    int npoints;
18    /// Number of I(q) points
19    int ny;
20    /// Number of dI(q) points
21    int nerr;
22    /// Alpha value
23    double alpha;
24    /// Minimum q to include in inversion
25    double q_min;
26    /// Maximum q to include in inversion
27    double q_max;
28    /// Flag for whether or not to evalute a constant background while inverting
29    int has_bck;
30    /// Slit height in units of q [A-1]
31    double slit_height;
32    /// Slit width in units of q [A-1]
33    double slit_width;
34} Invertor_params;
35
36void invertor_dealloc(Invertor_params *pars);
37
38void invertor_init(Invertor_params *pars);
39
40double pr_sphere(double R, double r);
41double ortho(double d_max, int n, double r);
42double ortho_transformed(double d_max, int n, double q);
43double ortho_derived(double d_max, int n, double r);
44double iq(double *c, double d_max, int n_c, double q);
45double pr(double *c, double d_max, int n_c, double r);
46double dprdr(double *pars, double d_max, int n_c, double r);
47double reg_term(double *pars, double d_max, int n_c, int nslice);
48double int_p2(double *pars, double d_max, int n_c, int nslice);
49void pr_err(double *pars, double *err, double d_max, int n_c,
50                double r, double *pr_value, double *pr_value_err);
51int npeaks(double *pars, double d_max, int n_c, int nslice);
52double positive_integral(double *pars, double d_max, int n_c, int nslice);
53double positive_errors(double *pars, double *err, double d_max, int n_c, int nslice);
54double rg(double *pars, double d_max, int n_c, int nslice);
55double int_pr(double *pars, double d_max, int n_c, int nslice);
56double ortho_transformed_smeared(double d_max, int n, double heigth, double width, double q, int npts);
57double iq_smeared(double *pars, double d_max, int n_c, double height, double width, double q, int npts);
58
59#endif
Note: See TracBrowser for help on using the repository browser.