Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using the Quadratic Exponential scheme of Leif Andersen to avoid "explosions" in the short-rate when the square root process gets close to zero.
I have made a small program to showcase the issue. I have attached a plot of the terminal distribution of the discretized processes compared to the true distribution in the Cox-Ingersoll-Ross model. The plot on the left is of the approach that is in QuantLib today and the plot on the right is of my suggested code.
Run-time is given below:
Simulate Square Root: Run time = 592.542 ms
Quadratic Exponential: Run time = 713.863 ms
Code