52 int nrB=Beliefs.size();
54 vector<double> values(nrB,-DBL_MAX);
57 for(
int b=0;b!=nrB;b++)
58 for(
int i=0;i!=nrInV;i++)
61 x=Beliefs[b]->InnerProduct(V[i].
GetValues());
74 vector<double> values(Beliefs.size()),
75 maxValues(Beliefs.size(),-DBL_MAX);
76 for(
QFDcit i=Q.begin();i!=Q.end();++i)
79 for(
unsigned int j=0;j!=values.size();++j)
80 if(values[j]>maxValues[j])
81 maxValues[j]=values[j];
96 double x,maxVal=-DBL_MAX;
98 for(
QFDcit i=Q.begin();i!=Q.end();++i)
113 double x,maxVal=-DBL_MAX;
115 for(
QFDNScit i=Q.begin();i!=Q.end();++i)
130 double x,maxVal=-DBL_MAX;
132 for(
unsigned int i=0;i!=V.size();i++)
147 const vector<bool> mask)
149 double x,maxVal=-DBL_MAX;
150 bool maskValid=
false;
152 if(mask.size()!=V.size())
154 throw(
E(
"BeliefValue::GetValue: mask has incorrect size"));
157 for(
unsigned int i=0;i!=V.size();i++)
176 const vector<bool> mask)
178 double x,maxVal=-DBL_MAX;
179 bool maskValid=
false;
180 vector<double> values(v.size2());
182 if(mask.size()!=v.size1())
184 throw(
E(
"BeliefValue::GetValue: mask has incorrect size"));
187 for(
unsigned int i=0;i!=v.size1();i++)
192 for(
unsigned int k=0;k!=v.size2();++k)
212 int maximizingVectorI=0;
220 for(
int k=0;k!=nrInV;k++)
229 return(maximizingVectorI);
238 int maximizingVectorI=0;
242 vector<double> Vb(nrInV,0);
243 for(
int k=0;k!=nrInV;k++)
248 for(
int k=0;k!=nrInV;k++)
257 return(maximizingVectorI);
265 const vector<bool> &mask)
268 int maximizingVectorI=INT_MAX;
270 bool maskValid=
false;
272 if(static_cast<int>(mask.size())!=nrInV)
274 throw(
E(
"BeliefValue::GetMaximizingVectorIndex: mask has incorrect size"));
277 for(
int k=0;k!=nrInV;k++)
294 for(
int k=0;k!=nrInV;k++)
296 if(mask[k] && Vb[k]>maxVal)
305 throw(
E(
"BeliefValue::GetMaximizingVectorIndex: no maximizing vector found"));
307 return(maximizingVectorI);
313 const vector<bool> &mask,
319 int maximizingVectorI=INT_MAX;
320 bool maskValid=
false;
322 if(static_cast<int>(mask.size())!=nrInV)
324 throw(
E(
"BeliefValue::GetMaximizingVectorIndex: mask has incorrect size"));
327 for(
int k=0;k!=nrInV;k++)
344 for(
int k=0;k!=nrInV;k++)
346 if(mask[k] && Vb[k]>value)
355 throw(
E(
"BeliefValue::GetMaximizingVectorIndex: no maximizing vector found"));
357 return(maximizingVectorI);
370 for(
int i=0;i!=nrInV;i++)