source: sans/Analysis/branches/ajj_23APR07/XOPs/SANSAnalysis/Cylinder.h @ 93

Last change on this file since 93 was 93, checked in by ajj, 15 years ago

Add combined XOP code. Currently only contains XCode project file to build Universal binary suitable for Igor 6.

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