13 #ifndef __defined_libdai_factorgraph_h
14 #define __defined_libdai_factorgraph_h
90 template<
typename FactorInputIterator,
typename VarInputIterator>
91 FactorGraph(FactorInputIterator facBegin, FactorInputIterator facEnd, VarInputIterator varBegin, VarInputIterator varEnd,
size_t nrFacHint = 0,
size_t nrVarHint = 0 );
147 size_t i = find(
vars().begin(),
vars().end(), n ) -
vars().begin();
149 DAI_THROW(OBJECT_NOT_FOUND);
174 DAI_THROW(OBJECT_NOT_FOUND);
191 return Delta( vs ) / vs;
231 Real logScore(
const std::vector<size_t>& statevec )
const;
245 virtual void setFactors(
const std::map<size_t, Factor>& facs,
bool backup =
false ) {
246 for( std::map<size_t, Factor>::const_iterator fac = facs.begin(); fac != facs.end(); fac++ ) {
297 virtual void clamp(
size_t i,
size_t x,
bool backup =
false );
302 void clampVar(
size_t i,
const std::vector<size_t>& xis,
bool backup =
false );
307 void clampFactor(
size_t I,
const std::vector<size_t>& xIs,
bool backup =
false );
312 virtual void makeCavity(
size_t i,
bool backup =
false );
328 virtual void WriteToFile(
const char *filename,
size_t precision=15 )
const;
342 virtual void printDot( std::ostream& os )
const;
351 template<
typename FactorInputIterator,
typename VarInputIterator>
352 FactorGraph::FactorGraph(FactorInputIterator facBegin, FactorInputIterator facEnd, VarInputIterator varBegin, VarInputIterator varEnd,
size_t nrFacHint,
size_t nrVarHint ) : _G(), _backup() {
356 for( FactorInputIterator p2 = facBegin; p2 != facEnd; ++p2 ) {
358 nrEdges += p2->vars().size();
362 _vars.reserve( nrVarHint );
363 for( VarInputIterator p1 = varBegin; p1 != varEnd; ++p1 )
364 _vars.push_back( *p1 );