1: // sample -- Make a random permutation of the contents of an array.

  3: #ifndef __permuted_sample__H__
  4: #define __permuted_sample__H__


  7: #include "prng.H"
  8: #include "random_sample.H"


 11: void permute(prng rand, long* slot, long n);             // permute the contents of an array


 14: class permuted_sample {

 16: private:

 18:   long* slot;

 20: public:

 22:   permuted_sample(prng rand, long n, long N);    // construct a permuted sample

 24:   ~permuted_sample();                            // destroy a permuted sample

 26:   long operator()(long i);                       // fetch permuted_sample[i]

 28: };

 30: #endif //  __permuted_sample__H__