const ħc = 197.33 # MeVfm const r_reg = 1E-8 # fm # regulator for R "Integrate a uniformly discretized function f using Simpson's rule where h is the step size and coefficient is an optional scaling factor." function simpsons_integrate(f::AbstractVector{Float64}, h::Float64; coefficient::Float64 = 1.0) @assert length(f) % 2 == 1 "Number of mesh divisions must be even for Simpson's rule" s = sum(enumerate(f)) do (i, fi) if i == 1 || i == length(f) return fi elseif i % 2 == 0 return 4fi else return 2fi end end return (h/3) * coefficient * s end