Is there the facility to perform Sobol scrambling in the Intel MKL (or other libraries) in C? The following answer shows how to generate Sobol sequences:
Gennady F. (Intel) wrote:
the similar topic was already discussed into this thread - https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/309144
Thanks for highlighting this, although it's not clear what the outcome was and if Scrambling was ever implemented. If so then I am still struggling to find the interface.
What type of the scrambling technique do you keep in mind? While no scrambling techniques are supported in Intel MKL version of Sobol QRNG, its API supports user-defined direction numbers. I wonder, if you can scramble the table of the direction numbers on your side and register this table in the library prior generation of the Sobol sequence? Please, clarify.
Digital scrambling is the first that comes to mind, but I think there is also permutation methods, and a few others, although I am less familiar with those. I expect digital scrambling should be very fast with a reasonable implementation.
Support of the scrambled Sobol sequences such as one presented in https://rd.springer.com/chapter/10.1007/3-540-36487-0_8 can logically be decomposed into two steps:
- modification of the table of the direction numbers according to the algorithm. It can be done on the side of the application. Modified table can be provided into the Intel MKL version of Sobol via dedicated API
- modification of the initial vector of the generator according to the algorithm. It can be done on the side of the application as well. However, the present version of the library does not have capability to provide this vector into Sobol.
Please let us know, if it answers your question. Also, clarify, if support if this feature in Intel MKL is important for your applications