NEURON
DiscUnif.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
#ifndef _DiscreteUniform_h
19
#ifdef __GNUG__
20
//#pragma interface
21
#endif
22
#define _DiscreteUniform_h 1
23
24
#include <
Random.h
>
25
26
//
27
// The interval [lo..hi)
28
//
29
30
class
DiscreteUniform
:
public
Random
{
31
long
pLow
;
32
long
pHigh
;
33
double
delta
;
34
public
:
35
DiscreteUniform
(
long
low
,
long
high
,
RNG
*gen);
36
37
long
low
();
38
long
low
(
long
x);
39
long
high
();
40
long
high
(
long
x);
41
42
virtual
double
operator()
();
43
};
44
45
46
inline
DiscreteUniform::DiscreteUniform
(
long
low
,
long
high
,
RNG
*gen)
47
:
Random
(gen)
48
{
49
pLow
= (low <
high
) ? low : high;
50
pHigh
= (low <
high
) ? high : low;
51
delta
= (
pHigh
-
pLow
) + 1;
52
}
53
54
inline
long
DiscreteUniform::low
() {
return
pLow
; }
55
56
inline
long
DiscreteUniform::low
(
long
x) {
57
long
tmp =
pLow
;
58
pLow
= x;
59
delta
= (
pHigh
-
pLow
) + 1;
60
return
tmp;
61
}
62
63
inline
long
DiscreteUniform::high
() {
return
pHigh
; }
64
65
inline
long
DiscreteUniform::high
(
long
x) {
66
long
tmp =
pHigh
;
67
pHigh
= x;
68
delta
= (
pHigh
-
pLow
) + 1;
69
return
tmp;
70
}
71
72
#endif
DiscreteUniform
Definition:
DiscUnif.h:30
DiscreteUniform::operator()
virtual double operator()()
Definition:
DiscUnif.cpp:24
DiscreteUniform::low
long low()
Definition:
DiscUnif.h:54
RNG
Definition:
RNG.h:55
Random
Definition:
Random.h:32
DiscreteUniform::DiscreteUniform
DiscreteUniform(long low, long high, RNG *gen)
Definition:
DiscUnif.h:46
DiscreteUniform::high
long high()
Definition:
DiscUnif.h:63
DiscreteUniform::pHigh
long pHigh
Definition:
DiscUnif.h:32
DiscreteUniform::delta
double delta
Definition:
DiscUnif.h:33
DiscreteUniform::pLow
long pLow
Definition:
DiscUnif.h:31
Random.h
src
gnu
DiscUnif.h