@@ -91,10 +91,10 @@ namespace bayesopt
9191 void PosteriorModel::addSample (const vectord &x, double y)
9292 { mData .addSample (x,y); mMean .addNewPoint (x); };
9393
94- void PosteriorModel::getEvaluationMeans (vectord& values, vectori& nvalues )
94+ void PosteriorModel::storeEvaluationMeans ( )
9595 {
96- values = vectord (mData .mY .size (), 0.0 );
97- nvalues = vectori (mData .mY .size (), 0 );
96+ mData . values = vectord (mData .mY .size (), 0.0 );
97+ mData . nvalues = vectori (mData .mY .size (), 0 );
9898 mData .indices .resize (mData .mX .size ());
9999 std::iota (mData .indices .begin (), mData .indices .end (), 0 );
100100 std::sort (mData .indices .begin (), mData .indices .end (), [this ](size_t i, size_t j)
@@ -111,8 +111,8 @@ namespace bayesopt
111111
112112 if ( !mData .indices .empty () )
113113 {
114- values[mData .indices [beginposition]] += mData .mY [mData .indices [beginposition]];
115- ++nvalues[mData .indices [beginposition]];
114+ mData . values [mData .indices [beginposition]] += mData .mY [mData .indices [beginposition]];
115+ ++mData . nvalues [mData .indices [beginposition]];
116116 }
117117
118118 while ( endposition < mData .indices .size () )
@@ -123,23 +123,20 @@ namespace bayesopt
123123 mData .indices [beginposition] = mData .indices [endposition];
124124 }
125125
126- values[mData .indices [beginposition]] += mData .mY [mData .indices [endposition]];
127- ++nvalues[mData .indices [beginposition]];
126+ mData . values [mData .indices [beginposition]] += mData .mY [mData .indices [endposition]];
127+ ++mData . nvalues [mData .indices [beginposition]];
128128 ++endposition;
129129 }
130130
131131 mData .indices .resize (beginposition + 1 );
132132
133133 for ( const auto & index : mData .indices )
134- values[index] /= nvalues[index];
134+ mData . values [index] /= mData . nvalues [index];
135135 }
136136
137137 void PosteriorModel::updateMinMax ()
138138 {
139- vectord values;
140- vectori nvalues;
141-
142- getEvaluationMeans (values, nvalues);
139+ storeEvaluationMeans ();
143140
144141 double minmean = std::numeric_limits<double >::infinity ();
145142 double maxmean = -std::numeric_limits<double >::infinity ();
@@ -151,35 +148,32 @@ namespace bayesopt
151148
152149 for ( const auto & index : mData .indices )
153150 {
154- if ( minmean > values[index] || ( minmean == values[index] && ( minnumb < nvalues[index] || ( minnumb == nvalues[index] && mData .mMinIndex < index ) ) ) )
151+ if ( minmean > mData . values [index] || ( minmean == mData . values [index] && ( minnumb < mData . nvalues [index] || ( minnumb == mData . nvalues [index] && mData .mMinIndex < index ) ) ) )
155152 {
156- minmean = values[index];
157- minnumb = nvalues[index];
153+ minmean = mData . values [index];
154+ minnumb = mData . nvalues [index];
158155 mData .mMinIndex = index;
159156 }
160157
161- if ( maxmean < values[index] || ( maxmean == values[index] && ( maxnumb < nvalues[index] || ( maxnumb == nvalues[index] && mData .mMaxIndex < index ) ) ) )
158+ if ( maxmean < mData . values [index] || ( maxmean == mData . values [index] && ( maxnumb < mData . nvalues [index] || ( maxnumb == mData . nvalues [index] && mData .mMaxIndex < index ) ) ) )
162159 {
163- maxmean = values[index];
164- maxnumb = nvalues[index];
160+ maxmean = mData . values [index];
161+ maxnumb = mData . nvalues [index];
165162 mData .mMaxIndex = index;
166163 }
167164 }
168165 }
169166
170167 vecOfvec PosteriorModel::getPointsAtMinimum ()
171168 {
172- vectord values;
173- vectori nvalues;
174-
175- getEvaluationMeans (values, nvalues);
169+ storeEvaluationMeans ();
176170
177- std::sort (mData .indices .begin (), mData .indices .end (), [&values, &nvalues ](size_t i, size_t j)
171+ std::sort (mData .indices .begin (), mData .indices .end (), [this ](size_t i, size_t j)
178172 {
179- if ( values[i] != values[j] )
180- return values[i] < values[j];
181- if ( nvalues[i] != nvalues[j] )
182- return nvalues[i] > nvalues[j];
173+ if ( this -> mData . values [i] != this -> mData . values [j] )
174+ return this -> mData . values [i] < this -> mData . values [j];
175+ if ( this -> mData . nvalues [i] != this -> mData . nvalues [j] )
176+ return this -> mData . nvalues [i] > this -> mData . nvalues [j];
183177 return i > j;
184178 });
185179 assert (mData .indices .empty () || mData .indices [0 ] == mData .mMinIndex );
0 commit comments