SMM: create preprocessor interface, make it compatible with Octave
In particular, the current code is not compatible with Octave since it uses RandStream at several places.
In particular, the current code is not compatible with Octave since it uses RandStream at several places.