You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Change VRDirectCB to the default when demonstrated as more efficient.
Make sure everything is type stable with regards to the VRJs and rate/affect evaluation in the no FunctionWrapper case.
Reuse last cur_rates evaluation from the condition in the affect if it is at the correct time (i.e. if the quadrature uses the endpoints).
See if additional @inbounds decorators improves performance
use preallocated u_tau instead of out-of-place evaluation.
Think about what order / type of quad rule to use. Why are we using the 4-point Gauss-Legendre quadrature currently? (For example, we could use a rule that includes endpoints to avoid recalculating the cumulative rate sum at the final point.)
A secondary optimization that may be important to actually get better performance than the old approach we used is to play with the quadrature order. The higher it is the more times we need to evaluate all the rates each call to the condition vs. the less accurate the integral evaluation is for lower orders, so there may be a sweet spot that optimizes performance.
VRDirectCB needs some code optimizations. Clear things to do:
cur_ratesevaluation from the condition in the affect if it is at the correct time (i.e. if the quadrature uses the endpoints).@inboundsdecorators improves performanceu_tauinstead of out-of-place evaluation.