diff --git a/Sample/HardParticle/HemiEllipsoid.cpp b/Sample/HardParticle/HemiEllipsoid.cpp index 1714be15a79c8221e29657a761948eaa0b336288..abbbf47ea6d44511c812c5f2f5496d6b212b0cce 100644 --- a/Sample/HardParticle/HemiEllipsoid.cpp +++ b/Sample/HardParticle/HemiEllipsoid.cpp @@ -46,6 +46,7 @@ complex_t HemiEllipsoid::formfactor_at_bottom(C3 q) const const double R = m_radius_x; const double W = m_radius_y; const double H = m_height; + const complex_t G = std::sqrt((q.x() * R)*(q.x() * R) + (q.y() * W) * (q.y() * W)); if (std::abs(q.mag()) <= std::numeric_limits<double>::epsilon()) return M_TWOPI * R * W * H / 3.; @@ -59,8 +60,7 @@ complex_t HemiEllipsoid::formfactor_at_bottom(C3 q) const complex_t qxRz = q.x() * Rz; complex_t qyWz = q.y() * Wz; - complex_t gamma = std::sqrt((q.x() * R)*(q.x() * R) - + (q.y() * W) * (q.y() * W)) * std::sqrt(1.0 - z * z); + complex_t gamma = G * std::sqrt(1.0 - z * z); complex_t J1_gamma_div_gamma = Math::Bessel::J1c(gamma); return Rz * Wz * J1_gamma_div_gamma * exp_I(q.z() * H * z);