1 | /* |
---|
2 | CylinderFit.h -- equates for CylinderFit XOP |
---|
3 | */ |
---|
4 | |
---|
5 | |
---|
6 | /* Prototypes */ |
---|
7 | /* IGOR Fit Functions */ |
---|
8 | int CylinderFormX(FitParamsPtr p); |
---|
9 | int EllipCyl76X(FitParamsPtr p); |
---|
10 | int EllipCyl20X(FitParamsPtr p); |
---|
11 | int TriaxialEllipsoidX(FitParamsPtr p); |
---|
12 | int ParallelepipedX(FitParamsPtr p); |
---|
13 | int HollowCylinderX(FitParamsPtr p); |
---|
14 | int EllipsoidFormX(FitParamsPtr p); |
---|
15 | int Cyl_PolyRadiusX(FitParamsPtr p); |
---|
16 | int Cyl_PolyLengthX(FitParamsPtr p); |
---|
17 | int CoreShellCylinderX(FitParamsPtr p); |
---|
18 | int OblateFormX(FitParamsPtr p); |
---|
19 | int ProlateFormX(FitParamsPtr p); |
---|
20 | int FlexExclVolCylX(FitParamsPtr p); |
---|
21 | int FlexCyl_PolyLenX(FitParamsPtr p); |
---|
22 | int FlexCyl_PolyRadX(FitParamsPtr p); |
---|
23 | int FlexCyl_EllipX(FitParamsPtr p); |
---|
24 | int PolyCoShCylinderX(FitParamsPtr p); |
---|
25 | int StackedDiscsX(FitParamsPtr p); |
---|
26 | int LamellarFFX(FitParamsPtr p); |
---|
27 | int LamellarFF_HGX(FitParamsPtr p); |
---|
28 | int LamellarPSX(FitParamsPtr p); |
---|
29 | int LamellarPS_HGX(FitParamsPtr p); |
---|
30 | |
---|
31 | /* internal functions */ |
---|
32 | DOUBLE CylKernel(DOUBLE qq, DOUBLE rr,DOUBLE h, DOUBLE theta); |
---|
33 | DOUBLE NR_BessJ1(DOUBLE x); |
---|
34 | DOUBLE EllipCylKernel(DOUBLE qq, DOUBLE ra,DOUBLE nu, DOUBLE theta); |
---|
35 | DOUBLE TriaxialKernel(DOUBLE q, DOUBLE aa, DOUBLE bb, DOUBLE cc, DOUBLE dx, DOUBLE dy); |
---|
36 | DOUBLE PPKernel(DOUBLE aa, DOUBLE mu, DOUBLE uu); |
---|
37 | DOUBLE HolCylKernel(DOUBLE qq, DOUBLE rcore, DOUBLE rshell, DOUBLE length, DOUBLE dum); |
---|
38 | DOUBLE EllipsoidKernel(DOUBLE qq, DOUBLE a, DOUBLE va, DOUBLE dum); |
---|
39 | DOUBLE Cyl_PolyRadKernel(DOUBLE q, DOUBLE radius, DOUBLE length, DOUBLE zz, DOUBLE delrho, DOUBLE dumRad); |
---|
40 | DOUBLE SchulzPoint_cpr(DOUBLE dumRad, DOUBLE radius, DOUBLE zz); |
---|
41 | DOUBLE gammaln_X(DOUBLE xx); |
---|
42 | DOUBLE Cyl_PolyLenKernel(DOUBLE q, DOUBLE radius, DOUBLE len_avg, DOUBLE zz, DOUBLE delrho, DOUBLE dumLen); |
---|
43 | DOUBLE CoreShellCylKernel(DOUBLE qq, DOUBLE rcore, DOUBLE thick, DOUBLE rhoc, DOUBLE rhos, DOUBLE rhosolv, DOUBLE length, DOUBLE dum); |
---|
44 | DOUBLE gfn4(DOUBLE xx, DOUBLE crmaj, DOUBLE crmin, DOUBLE trmaj, DOUBLE trmin, DOUBLE delpc, DOUBLE delps, DOUBLE qq); |
---|
45 | DOUBLE gfn2(DOUBLE xx, DOUBLE crmaj, DOUBLE crmin, DOUBLE trmaj, DOUBLE trmin, DOUBLE delpc, DOUBLE delps, DOUBLE qq); |
---|
46 | DOUBLE FlePolyLen_kernel(DOUBLE q, DOUBLE radius, DOUBLE length, DOUBLE lb, DOUBLE zz, DOUBLE delrho, DOUBLE zi); |
---|
47 | DOUBLE FlePolyRad_kernel(DOUBLE q, DOUBLE ravg, DOUBLE Lc, DOUBLE Lb, DOUBLE zz, DOUBLE delrho, DOUBLE zi); |
---|
48 | DOUBLE EllipticalCross_fn(DOUBLE qq, DOUBLE a, DOUBLE b); |
---|
49 | DOUBLE CScyl(DOUBLE qq, DOUBLE rad, DOUBLE radthick, DOUBLE facthick, DOUBLE rhoc, DOUBLE rhos, DOUBLE rhosolv, DOUBLE length, DOUBLE dum); |
---|
50 | DOUBLE CSCylIntegration(DOUBLE qq, DOUBLE rad, DOUBLE radthick, DOUBLE facthick, DOUBLE rhoc, DOUBLE rhos, DOUBLE rhosolv, DOUBLE length); |
---|
51 | DOUBLE Stackdisc_kern(DOUBLE qq, DOUBLE rcore, DOUBLE rhoc, DOUBLE rhol, DOUBLE rhosolv, DOUBLE length, DOUBLE thick, DOUBLE dum, DOUBLE gsd, DOUBLE d, DOUBLE N); |
---|
52 | |
---|
53 | /////////functions for WRC implementation of flexible cylinders |
---|
54 | static DOUBLE Sk_WR(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
55 | static DOUBLE w_WR(DOUBLE x); |
---|
56 | static DOUBLE u1(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
57 | static DOUBLE u_WR(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
58 | static DOUBLE Rgsquarezero(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
59 | static DOUBLE Rgsquareshort(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
60 | static DOUBLE Rgsquare(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
61 | static DOUBLE AlphaSquare(DOUBLE x); |
---|
62 | static DOUBLE miu(DOUBLE x); |
---|
63 | static DOUBLE Sdebye(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
64 | static DOUBLE Sdebye1(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
65 | static DOUBLE Sexv(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
66 | static DOUBLE Sexvnew(DOUBLE q, DOUBLE L, DOUBLE b); |
---|
67 | static DOUBLE a2short(DOUBLE q, DOUBLE L, DOUBLE b, DOUBLE p1short, DOUBLE p2short, DOUBLE q0); |
---|
68 | static DOUBLE a1short(DOUBLE q, DOUBLE L, DOUBLE b, DOUBLE p1short, DOUBLE p2short, DOUBLE q0); |
---|
69 | static DOUBLE a2long(DOUBLE q, DOUBLE L, DOUBLE b, DOUBLE p1, DOUBLE p2, DOUBLE q0); |
---|
70 | static DOUBLE sech_WR(DOUBLE x); |
---|
71 | static DOUBLE a1long(DOUBLE q, DOUBLE L, DOUBLE b, DOUBLE p1, DOUBLE p2, DOUBLE q0); |
---|