libDAI
include/dai/evidence.h
Go to the documentation of this file.
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