- Main Page
- Namespaces
- Classes
- Files
- Related Pages

# /Users/fpy/titan-1-5-MBARI/Mers/Estimation/Discrete/ProbabilityRules/ObsProbRule.h

    00001 //=============================================================================
    00002 // ObsProbRule.h: interface for the ObsProbRule class.
    00003 //
    00004 // Copyright (c) 2005           Model-based Embedded and Robotic Systems Group
    00005 // All Rights Reserved          Massachusetts Institute of Technology
    00006 //
    00007 // This software is provided as is. Model-based Embedded and Robotic Systems
    00008 // (MERS) group does not assume any responsibility.
    00009 //
    00010 // Author:                      Oliver B. Martin
    00011 // Organization:                Model-based Embedded and Robotic Systems Group
    00012 //                              Massachusetts Institute of Technology
    00013 //
    00014 // A probability rule identifies is a set of variable assignments that, when
    00015 // enabled, should be used in order to adjust the estimate probabilities.
    00016 //
    00017 // This class inherits from the probability rule class. In addition to
    00018 // having an array of base model assignments, the observation probability
    00019 // rule also has an observation probability that is used during BFIG
    00020 // expansion when all the mode assignments are assigned.
    00021 //
    00022 //=============================================================================
    00023
    00024 #if !defined(_OBSPROBRULE_H_)
    00025 #define _OBSPROBRULE_H_
    00026
    00027 #if _MSC_VER > 1000
    00028 #pragma once
    00029 #endif // _MSC_VER > 1000
    00030
    00031 #include <Mers/Estimation/Discrete/ProbabilityRules/Rule.h>
    00032
    00033 #include <vector>
    00034 #include <iostream>
    00035
    00036 namespace Mers {
    00037         namespace Models {
    00038                 namespace Base {
    00039                         class BaseModelAssignmentArray;
    00040                 }
    00041         }
    00042         namespace Estimation {
    00043                 namespace Discrete {
    00044                         namespace ProbabilityRules {
    00045
    00052                         class ObsProbRule : public Mers::Estimation::Discrete::ProbabilityRules::Rule
    00053                         {
    00054
    00055                                 friend std::ostream &  operator<<(std::ostream &, ObsProbRule const &);
    00056
    00057                         public:
    00058                                 //-----------------------------------------
    00059                                 // Constructors
    00060                                 //-----------------------------------------
    00061
    00071                                 ObsProbRule(const Mers::Models::Base::BaseModelAssignmentArray * myAssigmentArray,
    00072                                                 const double prob,
    00073                                                 unsigned short db = 0);
    00074
    00075
    00076                                 //-----------------------------------------
    00077                                 // Destructors
    00078                                 //-----------------------------------------
    00079
    00085                                 virtual ~ObsProbRule();
    00086
    00087
    00088                                 //-----------------------------------------
    00089                                 // Functions
    00090                                 //-----------------------------------------
    00091
    00096                                 double          getProbability(void) const;
    00097
    00098                         private:
    00100                                 const double            probability;
    00101                                 };
    00102                         }
    00103                 }
    00104         }
    00105 }
    00106
    00107 #endif // !defined(_OBSPROBRULE_H_)
    00108