double form_volume(double radius_equat_core, double radius_polar_core, double radius_equat_shell, double radius_polar_shell); double Iq(double q, double radius_equat_core, double radius_polar_core, double radius_equat_shell, double radius_polar_shell, double sld_core, double sld_shell, double sld_solvent); double Iqxy(double qx, double qy, double radius_equat_core, double radius_polar_core, double radius_equat_shell, double radius_polar_shell, double sld_core, double sld_shell, double sld_solvent, double theta, double phi); double form_volume(double radius_equat_core, double radius_polar_core, double radius_equat_shell, double radius_polar_shell) { double vol = 4.0*M_PI/3.0*radius_equat_shell*radius_equat_shell*radius_polar_shell; return vol; } static double core_shell_ellipsoid_kernel(double q, double radius_equat_core, double radius_polar_core, double radius_equat_shell, double radius_polar_shell, double sld_core, double sld_shell, double sld_solvent) { //upper and lower integration limits const double lolim = 0.0; const double uplim = 1.0; double summ = 0.0; //initialize intergral const double delpc = sld_core - sld_shell; //core - shell const double delps = sld_shell - sld_solvent; //shell - solvent for(int i=0;i