source: sasview/sansmodels/src/sans/models/libigor/libSphere.h @ 2c63e80e

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 2c63e80e was 6a2c931, checked in by Mathieu Doucet <doucetm@…>, 13 years ago

Re #5 fixing samsmodels compilation on MSVC

  • Property mode set to 100644
File size: 3.3 KB
Line 
1// header for SphereFit.c
2#if defined(_MSC_VER)
3#include "winFuncs.h"
4#endif
5
6/* IGOR Fit Functions */
7double MultiShell(double dp[], double q);
8double PolyMultiShell(double dp[], double q);
9double SphereForm(double dp[], double q);
10double CoreShellForm(double dp[], double q);
11double PolyCoreForm(double dp[], double q);
12double PolyCoreShellRatio(double dp[], double q);
13double VesicleForm(double dp[], double q);
14double SchulzSpheres(double dp[], double q);
15double PolyRectSpheres(double dp[], double q);
16double PolyHardSphereIntensity(double dp[], double q);
17double BimodalSchulzSpheres(double dp[], double q);
18double GaussPolySphere(double dp[], double q);
19double LogNormalPolySphere(double dp[], double q);
20double BinaryHS(double dp[], double q);
21double BinaryHS_PSF11(double dp[], double q);
22double BinaryHS_PSF12(double dp[], double q);
23double BinaryHS_PSF22(double dp[], double q);
24double OneShell(double dp[], double q);
25double TwoShell(double dp[], double q);
26double ThreeShell(double dp[], double q);
27double FourShell(double dp[], double q);
28double PolyOneShell(double dp[], double q);
29double PolyTwoShell(double dp[], double q);
30double PolyThreeShell(double dp[], double q);
31double PolyFourShell(double dp[], double q);
32double BCC_ParaCrystal(double dp[], double q);
33double FCC_ParaCrystal(double dp[], double q);
34double SC_ParaCrystal(double dp[], double q);
35double FuzzySpheres(double dp[], double q);
36
37//function prototypes
38double F_func(double qr);
39double MultiShellGuts(double q,double rcore,double ts,double tw,double rhocore,double rhoshel,int num);
40double fnt2(double yy, double zz);
41double fnt3(double yy, double pp, double zz);
42double SchulzSphere_Fn(double scale, double ravg, double pd, double rho, double rhos, double x);
43int ashcroft(double qval, double r2, double nf2, double aa, double phi, double *s11, double *s22, double *s12);
44double BCC_Integrand(double w[], double qq, double xx, double yy);
45double BCCeval(double Theta, double Phi, double temp1, double temp3);
46double SphereForm_Paracrystal(double radius, double delrho, double x);
47double FCC_Integrand(double w[], double qq, double xx, double yy);
48double FCCeval(double Theta, double Phi, double temp1, double temp3);
49double SC_Integrand(double w[], double qq, double xx, double yy);
50double SCeval(double Theta, double Phi, double temp3, double temp4, double temp5);
51
52
53
54static double
55gammln(double xx) {
56    double x,y,tmp,ser;
57    static double cof[6]={76.18009172947146,-86.50532032941677,
58                24.01409824083091,-1.231739572450155,
59                0.1208650973866179e-2,-0.5395239384953e-5};
60    int j;
61
62    y=x=xx;
63    tmp=x+5.5;
64    tmp -= (x+0.5)*log(tmp);
65    ser=1.000000000190015;
66    for (j=0;j<=5;j++) ser += cof[j]/++y;
67    return -tmp+log(2.5066282746310005*ser/x);
68}
69
70static double
71LogNormal_distr(double sig, double mu, double pt)
72{
73        double retval,pi;
74
75        pi = 4.0*atan(1.0);
76        retval = (1.0/ (sig*pt*sqrt(2.0*pi)) )*exp( -0.5*(log(pt) - mu)*(log(pt) - mu)/sig/sig );
77        return(retval);
78}
79
80static double
81Gauss_distr(double sig, double avg, double pt)
82{
83        double retval,Pi;
84
85        Pi = 4.0*atan(1.0);
86        retval = (1.0/ (sig*sqrt(2.0*Pi)) )*exp(-(avg-pt)*(avg-pt)/sig/sig/2.0);
87        return(retval);
88}
89
90static double SchulzPoint(double x, double avg, double zz) {
91    double dr;
92    dr = zz*log(x) - gammln(zz+1.0)+(zz+1.0)*log((zz+1.0)/avg)-(x/avg*(zz+1.0));
93    return (exp(dr));
94};
95
Note: See TracBrowser for help on using the repository browser.