which looks to me to be by a simple Euler-Cromer algorithm. However, I would propose that we should use something a little more sophisticated such as Gaussian Quadrature. This would allow for much more accurate integration and a good measure of numerical errors introduced by the choice of algorithm. Scipy has some great built-in functions for Gaussian Quadrature that should be considered.
Also, we should divide up the integral into smaller pieces as the interpolations that are done will create a somewhat discontinuous curve:
This is linked also to #3 -- we need a proper basis to work on for an improved integration algorithm. Probably, it suffices already only to have a logarithmic interpolation to do it somewhat better.
In the normalization.py file the evaluation of the integral is: https://github.com/oslocyclotronlab/rhosig.py/blob/acc5d42aa2867db35fb521e2d84af4d8dc757bb8/normalization.py#L217-L223
which looks to me to be by a simple Euler-Cromer algorithm. However, I would propose that we should use something a little more sophisticated such as Gaussian Quadrature. This would allow for much more accurate integration and a good measure of numerical errors introduced by the choice of algorithm. Scipy has some great built-in functions for Gaussian Quadrature that should be considered.
Also, we should divide up the integral into smaller pieces as the interpolations that are done will create a somewhat discontinuous curve: