Implement different numerical integration algorithms (e.g. adaptive Gauss-Kronrod quadrature) and apply in appropriate cases