revert back to boost ellint_1, since on many compilers the c++17 std::comp_ellint_1 is not yet implemented.

This commit is contained in:
suter_a 2024-03-05 18:29:34 +01:00
parent 1b882c20b3
commit 445d48cfbf

View File

@ -23,6 +23,8 @@
#include "LineProfile.h" #include "LineProfile.h"
#include <iostream> //for testing purposes #include <iostream> //for testing purposes
#include <boost/math/special_functions/ellint_1.hpp>
//Implement helperfunctions //Implement helperfunctions
Double_t GaussianShape(Double_t x, Double_t position, Double_t width) { Double_t GaussianShape(Double_t x, Double_t position, Double_t width) {
@ -80,11 +82,11 @@ Double_t IAsym(Double_t x, Double_t omega_center, Double_t omega_min,Double_t om
Double_t IAsym_low(Double_t omega, Double_t omega_center, Double_t omega_min,Double_t omega_max){ Double_t IAsym_low(Double_t omega, Double_t omega_center, Double_t omega_min,Double_t omega_max){
Double_t m =(omega-omega_min)*(omega_max-omega_center)/((omega_max-omega)*(omega_center-omega_min)); Double_t m =(omega-omega_min)*(omega_max-omega_center)/((omega_max-omega)*(omega_center-omega_min));
return 1./PI/pow(omega_max-omega,0.5)/pow(omega_center-omega_min,0.5)*std::comp_ellint_1( m ); return 1./PI/pow(omega_max-omega,0.5)/pow(omega_center-omega_min,0.5)*boost::math::ellint_1( m );
} }
Double_t IAsym_high(Double_t omega, Double_t omega_center, Double_t omega_min,Double_t omega_max){ Double_t IAsym_high(Double_t omega, Double_t omega_center, Double_t omega_min,Double_t omega_max){
Double_t m =(omega_center-omega_min)*(omega_max-omega)/((omega_max-omega_center)*(omega-omega_min)); Double_t m =(omega_center-omega_min)*(omega_max-omega)/((omega_max-omega_center)*(omega-omega_min));
return 1./PI/pow(omega-omega_min,0.5)/pow(omega_max-omega_center,0.5)*std::comp_ellint_1( m ); return 1./PI/pow(omega-omega_min,0.5)/pow(omega_max-omega_center,0.5)*boost::math::ellint_1( m );
} }