|
Lines 1043-1053
double NormalVariableImpl::GetValue()
|
Link Here
|
|---|
|
| 1043 |
{ // Got good pair |
1043 |
{ // Got good pair |
| 1044 |
double y = sqrt((-2 * log(w))/w); |
1044 |
double y = sqrt((-2 * log(w))/w); |
| 1045 |
m_next = m_mean + v2 * y * sqrt(m_variance); |
1045 |
m_next = m_mean + v2 * y * sqrt(m_variance); |
| 1046 |
if (fabs(m_next) > m_bound) m_next = m_bound * (m_next)/fabs(m_next); |
1046 |
//if next is in bounds, it is valid |
| 1047 |
m_nextValid = true; |
1047 |
m_nextValid = fabs(m_next-m_mean) <= m_bound; |
| 1048 |
double x1 = m_mean + v1 * y * sqrt(m_variance); |
1048 |
double x1 = m_mean + v1 * y * sqrt(m_variance); |
| 1049 |
if (fabs(x1) > m_bound) x1 = m_bound * (x1)/fabs(x1); |
1049 |
//if x1 is in bounds, return it |
| 1050 |
return x1; |
1050 |
if (fabs(x1-m_mean) <= m_bound) |
|
|
1051 |
{ |
| 1052 |
return x1; |
| 1053 |
} |
| 1054 |
//otherwise try and return m_next if it is valid |
| 1055 |
else if (m_nextValid) |
| 1056 |
{ |
| 1057 |
m_nextValid = false; |
| 1058 |
return m_next; |
| 1059 |
} |
| 1060 |
//otherwise, just run this loop again |
| 1051 |
} |
1061 |
} |
| 1052 |
} |
1062 |
} |
| 1053 |
} |
1063 |
} |
|
Lines 1094-1102
NormalVariable::NormalVariable()
|
Link Here
|
|---|
|
| 1094 |
NormalVariable::NormalVariable() |
1104 |
NormalVariable::NormalVariable() |
| 1095 |
: RandomVariable (NormalVariableImpl ()) |
1105 |
: RandomVariable (NormalVariableImpl ()) |
| 1096 |
{} |
1106 |
{} |
|
|
1107 |
NormalVariable::NormalVariable(double m, double v) |
| 1108 |
: RandomVariable (NormalVariableImpl (m, v)) |
| 1109 |
{} |
| 1097 |
NormalVariable::NormalVariable(double m, double v, double b) |
1110 |
NormalVariable::NormalVariable(double m, double v, double b) |
| 1098 |
: RandomVariable (NormalVariableImpl (m, v, b)) |
1111 |
: RandomVariable (NormalVariableImpl (m, v, b)) |
| 1099 |
{} |
1112 |
{} |
|
|
1113 |
double |
| 1114 |
NormalVariable::GetSingleValue(double m, double v) |
| 1115 |
{ |
| 1116 |
return NormalVariableImpl::GetSingleValue (m, v); |
| 1117 |
} |
| 1100 |
double |
1118 |
double |
| 1101 |
NormalVariable::GetSingleValue(double m, double v, double b) |
1119 |
NormalVariable::GetSingleValue(double m, double v, double b) |
| 1102 |
{ |
1120 |
{ |