// Copyright (C) 2010, Guy Barrand. All rights reserved.
// See the file tools.license for terms.

#ifndef tools_random
#define tools_random

// for backward compatibility.

#include "randd"

namespace tools {
namespace random {

class gauss : public rgaussd {
  typedef rgaussd parent;
public:
  gauss(double a_mean = 0,double a_std_dev = 1):parent(a_mean,a_std_dev){}
  virtual ~gauss(){}
public:
  gauss(const gauss& a_from):parent(a_from){}
  gauss& operator=(const gauss& a_from) {parent::operator=(a_from);return *this;}
};

class bw : public rbwd {
  typedef rbwd parent;
public:
  bw(double a_mean = 0,double a_gamma = 1):parent(a_mean,a_gamma){}
  virtual ~bw(){}
public:
  bw(const bw& a_from):parent(a_from){}
  bw& operator=(const bw& a_from) {parent::operator=(a_from);return *this;}
};

class exp : public rexpd {
  typedef rexpd parent;
public:
  exp(double a_rate = 1):parent(a_rate){}
  virtual ~exp(){}
public:
  exp(const exp& a_from):parent(a_from){}
  exp& operator=(const exp& a_from) {parent::operator=(a_from);return *this;}
};

class flat : public rtausmed {
  typedef rtausmed parent;
public:
  flat():parent(){}
  virtual ~flat(){}
public:
  flat(const flat& a_from):parent(a_from){}
  flat& operator=(const flat& a_from) {parent::operator=(a_from);return *this;}
};

}}

#endif
