The current set of Gauss-Legendre rules for adaptive integration uses npoints in [20, 76, 500, 5000].
This is okay for a single integration loop, but that step between 500 and 5000 makes the model run 100x slower when you have nested integrals.
However, more steps means more tuning of the cutoff values for qr_max. There is also a concern about the amount of memory used for GPU processes. Adding something around npoints=1000 will use another 16kB of constant memory.
The algorithm is too slow to generate points on the fly, so they need to be cached.
See also #717
The current set of Gauss-Legendre rules for adaptive integration uses npoints in [20, 76, 500, 5000].
This is okay for a single integration loop, but that step between 500 and 5000 makes the model run 100x slower when you have nested integrals.
However, more steps means more tuning of the cutoff values for qr_max. There is also a concern about the amount of memory used for GPU processes. Adding something around npoints=1000 will use another 16kB of constant memory.
The algorithm is too slow to generate points on the fly, so they need to be cached.
See also #717