NEURON
Erlang.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 _Erlang_h
19
#ifdef __GNUG__
20
//#pragma interface
21
#endif
22
#define _Erlang_h 1
23
24
#include <
Random.h
>
25
26
class
Erlang
:
public
Random
{
27
protected
:
28
double
pMean
;
29
double
pVariance
;
30
int
k
;
31
double
a
;
32
void
setState
();
33
public
:
34
Erlang
(
double
mean
,
double
variance
,
RNG
*gen);
35
36
double
mean
();
37
double
mean
(
double
x);
38
double
variance
();
39
double
variance
(
double
x);
40
41
virtual
double
operator()
();
42
43
};
44
45
46
inline
void
Erlang::setState
() {
47
k
= int( (
pMean
*
pMean
) /
pVariance
+ 0.5 );
48
k
= (
k
> 0) ?
k
: 1;
49
a
=
k
/
pMean
;
50
}
51
52
inline
Erlang::Erlang
(
double
mean,
double
variance,
RNG
*gen) :
Random
(gen)
53
{
54
pMean
=
mean
;
pVariance
=
variance
;
55
setState
();
56
}
57
58
inline
double
Erlang::mean
() {
return
pMean
; }
59
inline
double
Erlang::mean
(
double
x) {
60
double
tmp =
pMean
;
pMean
= x;
setState
();
return
tmp;
61
};
62
63
inline
double
Erlang::variance
() {
return
pVariance
; }
64
inline
double
Erlang::variance
(
double
x) {
65
double
tmp =
pVariance
;
pVariance
= x;
setState
();
return
tmp;
66
}
67
68
#endif
Random.h
Erlang
Definition:
Erlang.h:26
Erlang::operator()
virtual double operator()()
Definition:
Erlang.cpp:24
Erlang::k
int k
Definition:
Erlang.h:30
Erlang::setState
void setState()
Definition:
Erlang.h:46
Erlang::mean
double mean()
Definition:
Erlang.h:58
Erlang::a
double a
Definition:
Erlang.h:31
Erlang::variance
double variance()
Definition:
Erlang.h:63
Erlang::Erlang
Erlang(double mean, double variance, RNG *gen)
Definition:
Erlang.h:52
Erlang::pMean
double pMean
Definition:
Erlang.h:28
Erlang::pVariance
double pVariance
Definition:
Erlang.h:29
RNG
Definition:
RNG.h:55
Random
Definition:
Random.h:32
src
gnu
Erlang.h