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
}
Random.h
RNG
Definition:
RNG.h:5
Random
Definition:
Random.h:24
Uniform
Definition:
Uniform.h:26
Uniform::low
double low()
Definition:
Uniform.h:49
Uniform::Uniform
Uniform(double low, double high, RNG *gen)
Definition:
Uniform.h:42
Uniform::delta
double delta
Definition:
Uniform.h:29
Uniform::operator()
virtual double operator()()
Definition:
Uniform.cpp:23
Uniform::pLow
double pLow
Definition:
Uniform.h:27
Uniform::high
double high()
Definition:
Uniform.h:58
Uniform::pHigh
double pHigh
Definition:
Uniform.h:28
src
gnu
Uniform.h