#include <config.h>
#include <distributions/DistTab.h>
#include <distributions/Distribution.h>
#include <distributions/DBern.h>
#include <distributions/DBeta.h>
#include <distributions/DBin.h>
#include <distributions/DCat.h>
#include <distributions/DChisqr.h>
#include <distributions/DDexp.h>
#include <distributions/DDirch.h>
#include <distributions/DExp.h>
#include <distributions/DGamma.h>
#include <distributions/DInterval.h>
#include <distributions/DLnorm.h>
#include <distributions/DLogis.h>
#include <distributions/DMNorm.h>
#include <distributions/DMState.h>
#include <distributions/DMulti.h>
#include <distributions/DNegBin.h>
#include <distributions/DNorm.h>
#include <distributions/DPar.h>
#include <distributions/DPois.h>
#include <distributions/DT.h>
#include <distributions/DUnif.h>
#include <distributions/DWeib.h>
#include <distributions/DWish.h>
#include <distributions/DHyper.h>
#include <distributions/DSum.h>
#include <distributions/DNormMix.h>
#include <sarray/SArray.h>
using std::map;
using std::string;
DistTab::DistTab()
{
insert(new DBern);
insert(new DBeta);
insert(new DBin);
insert(new DCat);
insert(new DChisqr);
insert(new DDexp);
insert(new DDirch);
insert(new DExp);
insert(new DGamma);
insert(new DInterval);
insert(new DLnorm);
insert(new DLogis);
insert(new DMNorm);
insert(new DMState);
insert(new DMulti);
insert(new DNegBin);
insert(new DNorm);
insert(new DPar);
insert(new DPois);
insert(new DT);
insert(new DUnif);
insert(new DWeib);
insert(new DWish);
insert(new DHyper);
insert(new DSum);
insert(new DNormMix);
}
DistTab::~DistTab()
{
map<const string, const Distribution*>::iterator p;
for (p = _table.begin(); p != _table.end(); ++p) {
delete p->second;
}
}
bool DistTab::insert(Distribution const *dist)
{
string const &name = dist->name();
if (_table.find(name) == _table.end()) {
_table[name] = dist;
return true;
}
else {
return false;
}
}
bool DistTab::erase(string const &name)
{
map<const string, const Distribution*>::iterator p = _table.find(name);
if (p == _table.end()) {
return false;
}
else {
_table.erase(p);
return true;
}
}
Distribution const *DistTab::find(string const &name) const
{
map<const string, const Distribution*>::const_iterator p = _table.find(name);
if (p == _table.end())
return 0;
else
return p->second;
}
syntax highlighted by Code2HTML, v. 0.9.1