BooleanVariable.cpp
Go to the documentation of this file.
00001 #include "BooleanVariable.h"
00002 #include "VariableValue.h"
00003 #include <exception>
00004 
00005 
00006 BooleanVariable::BooleanVariable(string name, double initProbTrue, double initProbFalse)
00007 {
00008         this->variableName = name;
00009         addValue("true", initProbTrue);
00010         addValue("false", initProbFalse);
00011 }
00012 
00013 BooleanVariable::~BooleanVariable(void)
00014 {
00015 }
00016 vector<SharedPointer<IVariableValue> > BooleanVariable::getValues()
00017 {
00018         vector<SharedPointer<IVariableValue> > result;
00019         for(int i = 0; i < values.size(); i++)
00020         {
00021                 result.push_back(values[i]);
00022         }
00023         return result;
00024 }
00025 
00026 void  BooleanVariable::addValue(SharedPointer<VariableValue> value)
00027 {
00028         values.push_back(value);
00029 }
00030 void  BooleanVariable::addValue(string value, double initialProb)
00031 {
00032         SharedPointer<VariableValue> newValue (new VariableValue(this->getVariableName(), value, values.size(), initialProb));
00033         addValue(newValue);
00034 }
00035 int BooleanVariable::getNumValues()
00036 {
00037         return values.size();
00038 }
00039 string BooleanVariable::getVariableName()
00040 {
00041         return variableName;
00042 }
00043 
00044 vector<SharedPointer<IVariableValue> > BooleanVariable::getInitialValues()
00045 {
00046         vector<SharedPointer<IVariableValue> > result;
00047         for(int i = 0; i < values.size(); i++)
00048         {
00049                 if(values[i]->getProb() > 0.0001)
00050                 {
00051                         result.push_back(values[i]);
00052                 }
00053         }
00054         return result;
00055 }
00056 
00057 SharedPointer<IVariableValue> BooleanVariable::getTrueValue()
00058 {
00059         return values[0];
00060 }
00061 
00062 SharedPointer<IVariableValue> BooleanVariable::getFalseValue()
00063 {
00064         return values[1];
00065 }
00066 SharedPointer<IVariableValue> BooleanVariable::getValueByName(string valName)
00067 {
00068         for(int i = 0; i < values.size(); i++)
00069         {
00070                 if(values[i]->getValueName().compare(valName) == 0)
00071                 {
00072                         return values[i];
00073                 }
00074         }
00075 
00076         throw runtime_error("Cannot find value : " + valName + " in variable : " + this->getVariableName());
00077 }
00078 


appl
Author(s): petercai
autogenerated on Tue Jan 7 2014 11:02:28