00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef BZ_RANDOM_H
00027 #define BZ_RANDOM_H
00028
00029 #ifndef BZ_BLITZ_H
00030 #include <blitz/blitz.h>
00031 #endif
00032
00033 BZ_NAMESPACE(blitz)
00034
00035 template<typename P_distribution>
00036 class Random {
00037
00038 public:
00039 typedef P_distribution T_distribution;
00040 typedef _bz_typename T_distribution::T_numtype T_numtype;
00041
00042 Random(double parm1=0.0, double parm2=1.0, double parm3=0.0)
00043 : generator_(parm1, parm2, parm3)
00044 { }
00045
00046 void randomize()
00047 { generator_.randomize(); }
00048
00049 T_numtype random()
00050 { return generator_.random(); }
00051
00052 operator T_numtype()
00053 { return generator_.random(); }
00054
00055 protected:
00056 T_distribution generator_;
00057 };
00058
00059 BZ_NAMESPACE_END
00060
00061 #include <blitz/randref.h>
00062
00063 #endif // BZ_RANDOM_H
00064