NEURON
Uniform.h
Go to the documentation of this file.
1 // This may look like C code, but it is really -*- C++ -*-
2 /*
3 Copyright (C) 1988 Free Software Foundation
4  written by Dirk Grunwald (grunwald@cs.uiuc.edu)
5 
6 This file is part of the GNU C++ Library. This library is free
7 software; you can redistribute it and/or modify it under the terms of
8 the GNU Library General Public License as published by the Free
9 Software Foundation; either version 2 of the License, or (at your
10 option) any later version. This library is distributed in the hope
11 that it will be useful, but WITHOUT ANY WARRANTY; without even the
12 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 PURPOSE. See the GNU Library General Public License for more details.
14 You should have received a copy of the GNU Library General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
17 */
18 #pragma once
19 
20 #include "Random.h"
21 
22 //
23 // The interval [lo..hi]
24 //
25 
26 class Uniform: public Random {
27  double pLow;
28  double pHigh;
29  double delta;
30 public:
31  Uniform(double low, double high, RNG *gen);
32 
33  double low();
34  double low(double x);
35  double high();
36  double high(double x);
37 
38  virtual double operator()();
39 };
40 
41 
42 inline Uniform::Uniform(double low, double high, RNG *gen) : Random(gen)
43 {
44  pLow = (low < high) ? low : high;
45  pHigh = (low < high) ? high : low;
46  delta = pHigh - pLow;
47 }
48 
49 inline double Uniform::low() { return pLow; }
50 
51 inline double Uniform::low(double x) {
52  double tmp = pLow;
53  pLow = x;
54  delta = pHigh - pLow;
55  return tmp;
56 }
57 
58 inline double Uniform::high() { return pHigh; }
59 
60 inline double Uniform::high(double x) {
61  double tmp = pHigh;
62  pHigh = x;
63  delta = pHigh - pLow;
64  return tmp;
65 }
Definition: RNG.h:5
Definition: Random.h:24
double low()
Definition: Uniform.h:49
Uniform(double low, double high, RNG *gen)
Definition: Uniform.h:42
double delta
Definition: Uniform.h:29
virtual double operator()()
Definition: Uniform.cpp:23
double pLow
Definition: Uniform.h:27
double high()
Definition: Uniform.h:58
double pHigh
Definition: Uniform.h:28