/usr/include/JAGS/rng/RNGFactory.h is in jags 4.2.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #ifndef RNG_FACTORY_H_
#define RNG_FACTORY_H_
#include <string>
#include <vector>
namespace jags {
struct RNG;
/**
* @short Factory for RNG objects
*/
class RNGFactory
{
public:
/**
* Destructor. An RNGFactory retains ownership of the RNG objects
* it generates, and should delete them when the destructor is called.
*/
virtual ~RNGFactory() {};
/**
* Sets the random seed of the RNG factory so that a reproducible
* sequence of RNGs can be produced.
*
* @param seed Seed that uniquely determines the sequence of RNGs
* produced by subsequent calls to makeRNGs.
*/
virtual void setSeed(unsigned int seed) = 0;
/**
* Returns a vector of newly allocated RNG objects.
*
* @param n Number of RNGs requested. Note that an RNG factory have the
* capacity to make only m < n independent samplers (where m may be zero).
* In this case it should return a vector of length m.
*/
virtual std::vector<RNG *> makeRNGs(unsigned int n) = 0;
/**
* Returns a newly allocated RNG object.
*
* This function can be repeatedly called with the same name
* argument. There is no guarantee that RNG objects created in this
* way will generate independent streams.
*/
virtual RNG * makeRNG(std::string const &name) = 0;
/**
* Returns the name of the RNG factory
*/
virtual std::string name() const = 0;
};
} /* namespace jags */
#endif /* RNG_FACTORY_H_ */
|