### 17.5 QAGP adaptive integration with known singular points

Function: int gsl_integration_qagp (const gsl_function * f, double * pts, size_t npts, double epsabs, double epsrel, size_t limit, gsl_integration_workspace * workspace, double * result, double * abserr)

  This function applies the adaptive integration algorithm QAGS taking account of the user-supplied locations of singular points. The array pts of length npts should contain the endpoints of the integration ranges defined by the integration region and locations of the singularities. For example, to integrate over the region (a,b) with break-points at x_1, x_2, x_3 (where a < x_1 < x_2 < x_3 < b) the following pts array should be used

      pts[0] = a
      pts[1] = x_1
      pts[2] = x_2
      pts[3] = x_3
      pts[4] = b

  with npts = 5.

  If you know the locations of the singular points in the integration region then this routine will be faster than `QAGS`.