source: sans/XOP_Dev/SANSAnalysis/lib/libCylinder.h @ 453

Last change on this file since 453 was 453, checked in by srkline, 14 years ago

Additions to the library of the 2008 model functions. Direct proting of the Igor code, duplicated by these XOPs

  • Property svn:executable set to *
File size: 4.6 KB
Line 
1/*
2        libCylinderFit.h -- equates for CylinderFit XOP
3*/
4
5
6/* Prototypes */
7/* IGOR Fit Functions */
8double CylinderForm(double dp[], double q);
9double EllipCyl76(double dp[], double q);
10double EllipCyl20(double dp[], double q);
11double TriaxialEllipsoid(double dp[], double q);
12double Parallelepiped(double dp[], double q);
13double HollowCylinder(double dp[], double q);
14double EllipsoidForm(double dp[], double q);
15double Cyl_PolyRadius(double dp[], double q);
16double Cyl_PolyLength(double dp[], double q);
17double CoreShellCylinder(double dp[], double q);
18double OblateForm(double dp[], double q);
19double ProlateForm(double dp[], double q);
20double FlexExclVolCyl(double dp[], double q);
21double FlexCyl_PolyLen(double dp[], double q);
22double FlexCyl_PolyRad(double dp[], double q);
23double FlexCyl_Ellip(double dp[], double q);
24double PolyCoShCylinder(double dp[], double q);
25double StackedDiscs(double dp[], double q);
26double LamellarFF(double dp[], double q);
27double LamellarFF_HG(double dp[], double q);
28double LamellarPS(double dp[], double q);
29double LamellarPS_HG(double dp[], double q);
30double Lamellar_ParaCrystal(double dp[], double q);
31double Spherocylinder(double dp[], double q);
32double ConvexLens(double dp[], double q);
33double Dumbbell(double dp[], double q);
34double CappedCylinder(double dp[], double q);
35double Barbell(double dp[], double q);
36
37
38/* internal functions */
39double CylKernel(double qq, double rr,double h, double theta);
40double NR_BessJ1(double x);
41double EllipCylKernel(double qq, double ra,double nu, double theta);
42double TriaxialKernel(double q, double aa, double bb, double cc, double dx, double dy);
43double PPKernel(double aa, double mu, double uu);
44double HolCylKernel(double qq, double rcore, double rshell, double length, double dum);
45double EllipsoidKernel(double qq, double a, double va, double dum);
46double Cyl_PolyRadKernel(double q, double radius, double length, double zz, double delrho, double dumRad);
47double SchulzPoint_cpr(double dumRad, double radius, double zz);
48double Cyl_PolyLenKernel(double q, double radius, double len_avg, double zz, double delrho, double dumLen);
49double CoreShellCylKernel(double qq, double rcore, double thick, double rhoc, double rhos, double rhosolv, double length, double dum);
50double gfn4(double xx, double crmaj, double crmin, double trmaj, double trmin, double delpc, double delps, double qq);
51double gfn2(double xx, double crmaj, double crmin, double trmaj, double trmin, double delpc, double delps, double qq);
52double FlePolyLen_kernel(double q, double radius, double length, double lb, double zz, double delrho, double zi);
53double FlePolyRad_kernel(double q, double ravg, double Lc, double Lb, double zz, double delrho, double zi);
54double EllipticalCross_fn(double qq, double a, double b);
55double CScyl(double qq, double rad, double radthick, double facthick, double rhoc, double rhos, double rhosolv, double length, double dum);
56double CSCylIntegration(double qq, double rad, double radthick, double facthick, double rhoc, double rhos, double rhosolv, double length);
57double Stackdisc_kern(double qq, double rcore, double rhoc, double rhol, double rhosolv, double length, double thick, double dum, double gsd, double d, double N);
58double paraCryst_sn(double ww, double qval, double davg, long nl, double an);
59double paraCryst_an(double ww, double qval, double davg, long nl);
60double SphCyl_kernel(double w[], double x, double tt, double Theta);
61double ConvLens_kernel(double w[], double x, double tt, double theta);
62double Dumb_kernel(double w[], double x, double tt, double theta);
63
64
65/////////functions for WRC implementation of flexible cylinders
66static double Sk_WR(double q, double L, double b);
67static double w_WR(double x);
68static double u1(double q, double L, double b);
69static double u_WR(double q, double L, double b);
70static double Rgsquarezero(double q, double L, double b);
71static double Rgsquareshort(double q, double L, double b);
72static double Rgsquare(double q, double L, double b);
73static double AlphaSquare(double x);
74static double miu(double x);
75static double Sdebye(double q, double L, double b);
76static double Sdebye1(double q, double L, double b);
77static double Sexv(double q, double L, double b);
78static double Sexvnew(double q, double L, double b);
79static double a2short(double q, double L, double b, double p1short, double p2short, double q0);
80static double a1short(double q, double L, double b, double p1short, double p2short, double q0);
81static double a2long(double q, double L, double b, double p1, double p2, double q0);
82static double sech_WR(double x);
83static double a1long(double q, double L, double b, double p1, double p2, double q0);
84static double gammaln(double xx);
Note: See TracBrowser for help on using the repository browser.