Blame c++/vector/random.h

Ivan Mahonin a7e4c0
#ifndef RANDOM_H
Ivan Mahonin a7e4c0
#define RANDOM_H
Ivan Mahonin 145120
Ivan Mahonin 145120
Ivan Mahonin 145120
#include <cstdlib>
Ivan Mahonin 145120
Ivan Mahonin 145120
#include "real.h"
Ivan Mahonin 145120
#include "vector.h"
Ivan Mahonin 145120
Ivan Mahonin 145120
Ivan Mahonin 145120
namespace rnd {
Ivan Mahonin a7e4c0
	inline Real real()
Ivan Mahonin 145120
		{ return Real(rand())/Real(RAND_MAX); }
Ivan Mahonin a7e4c0
	inline Real real(const Real &max)
Ivan Mahonin 145120
		{ return real()*max; }
Ivan Mahonin a7e4c0
	inline Real real(const Real &min, const Real &max)
Ivan Mahonin 145120
		{ return min + real(max - min); }
Ivan Mahonin 145120
Ivan Mahonin a7e4c0
	inline Vector vector()
Ivan Mahonin 145120
		{ return Vector(real(), real()); }
Ivan Mahonin a7e4c0
	inline Vector vector(const Real &maxx, const Real &maxy)
Ivan Mahonin 145120
		{ return Vector(real(maxx), real(maxy)); }
Ivan Mahonin a7e4c0
	inline Vector vector(const Real &minx, const Real &miny, const Real &maxx, const Real &maxy)
Ivan Mahonin 145120
		{ return Vector(real(minx, maxx), real(miny, maxy)); }
Ivan Mahonin a7e4c0
	inline Vector vector(const Vector &max)
Ivan Mahonin 145120
		{ return vector(max.x, max.y); }
Ivan Mahonin a7e4c0
	inline Vector vector(const Vector &min, const Vector &max)
Ivan Mahonin 145120
		{ return vector(min.x, min.y, max.x, max.y); }
Ivan Mahonin 145120
}
Ivan Mahonin a7e4c0
Ivan Mahonin a7e4c0
Ivan Mahonin a7e4c0
#endif