libDAI
|
00001 /* This file is part of libDAI - http://www.libdai.org/ 00002 * 00003 * Copyright (c) 2006-2011, The libDAI authors. All rights reserved. 00004 * 00005 * Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. 00006 */ 00007 00008 00011 00012 00013 #ifndef __defined_libdai_evidence_h 00014 #define __defined_libdai_evidence_h 00015 00016 00017 #include <istream> 00018 #include <dai/daialg.h> 00019 00020 00021 namespace dai { 00022 00023 00025 00030 class Evidence { 00031 public: 00033 typedef std::map<Var, size_t> Observation; 00034 00035 private: 00037 std::vector<Observation> _samples; 00038 00039 public: 00041 Evidence() : _samples() {} 00042 00044 Evidence( std::vector<Observation> &samples ) : _samples(samples) {} 00045 00047 00052 void addEvidenceTabFile( std::istream& is, FactorGraph& fg ); 00053 00055 size_t nrSamples() const { return _samples.size(); } 00056 00058 00059 00060 typedef std::vector<Observation>::iterator iterator; 00062 typedef std::vector<Observation>::const_iterator const_iterator; 00063 00065 iterator begin() { return _samples.begin(); } 00067 const_iterator begin() const { return _samples.begin(); } 00069 iterator end() { return _samples.end(); } 00071 const_iterator end() const { return _samples.end(); } 00073 00074 private: 00076 void addEvidenceTabFile( std::istream& is, std::map<std::string, Var> &varMap ); 00077 }; 00078 00079 00080 } // end of namespace dai 00081 00082 00083 #endif