random.h
Go to the documentation of this file.00001 #ifndef VVELIB_UTIL_RANDOM_H
00002 #define VVELIB_UTIL_RANDOM_H
00003
00009 #include <config.h>
00010 #include <util/vector.h>
00011
00012 namespace util
00013 {
00020 unsigned int sran_time();
00021
00025 void sran(unsigned int seed);
00026
00030 double ran(double M);
00031
00035 template <size_t dim>
00036 Vector<dim,double> ran(const Vector<dim,double>& V)
00037 {
00038 Vector<dim,double> result;
00039 for(size_t i = 0 ; i < dim ; ++i)
00040 result[i] = ran(V[i]);
00041 return result;
00042 }
00043
00050 double gaussRan(double mean, double sigma);
00051
00060 template <size_t dim>
00061 Vector<dim,double> gaussRan(const Vector<dim,double>& mean, const Vector<dim,double>& sigma)
00062 {
00063 Vector<dim,double> result;
00064 for(size_t i = 0 ; i < dim ; ++i)
00065 result[i] = gaussRan(mean[i], sigma[i]);
00066 return result;
00067 }
00068
00072 long int random();
00073
00077 template <size_t dim>
00078 Vector<dim,long int> random()
00079 {
00080 Vector<dim,double> result;
00081 for(size_t i = 0 ; i < dim ; ++i)
00082 result[i] = random();
00083 return result;
00084 }
00085
00089 long int random(long int n);
00090
00095 template <size_t dim>
00096 Vector<dim,long int> random(const Vector<dim,long int>& n)
00097 {
00098 Vector<dim,double> result;
00099 for(size_t i = 0 ; i < dim ; ++i)
00100 result[i] = random(n[i]);
00101 return result;
00102 }
00103 };
00104
00105
00106 #endif // VVELIB_UTIL_RANDOM_H
00107