provide class for suspension of RNG synchronization #862
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.
This PR provides a class,
SuspendRNGSynchronizationScope
, which can be used to signal that throughout the lifetime of that object Rcpp should not attempt to synchronize the R and C RNG states.This tool effectively allows users to opt-in to the 'old' Rcpp RNG behavior by creating an instance of this class where desired. This could be used to fix, for example, eddelbuettel/rcppde#14 (comment).
The intention would be for
RcppDE
to construct an instance ofSuspendRNGSynchronizationScope
pretty early in theDEOptim_impl
implementation.FWIW, I tested this fix with a locally built copy of
RcppDE
and it does fix the issue -- I can send a PR if we find that this change looks good.