Formatter in discrete, as well

release/4.3a0
Frank Dellaert 2012-06-30 10:30:06 +00:00
parent badb22c304
commit 8851179d3c
11 changed files with 31 additions and 20 deletions

View File

@ -49,10 +49,11 @@ namespace gtsam {
}
/* ************************************************************************* */
void DecisionTreeFactor::print(const string& s) const {
void DecisionTreeFactor::print(const string& s,
const IndexFormatter& formatter) const {
cout << s;
IndexFactor::print("IndexFactor:");
Potentials::print("Potentials:");
IndexFactor::print("IndexFactor:",formatter);
Potentials::print("Potentials:",formatter);
}
/* ************************************************************************* */

View File

@ -72,7 +72,8 @@ namespace gtsam {
bool equals(const DecisionTreeFactor& other, double tol = 1e-9) const;
// print
void print(const std::string& s = "DecisionTreeFactor:\n") const;
virtual void print(const std::string& s = "DecisionTreeFactor:\n",
const IndexFormatter& formatter = DefaultIndexFormatter) const;
/// @}
/// @name Standard Interface

View File

@ -51,10 +51,11 @@ namespace gtsam {
}
/* ************************************************************************* */
void Potentials::print(const string&s) const {
void Potentials::print(const string& s,
const IndexFormatter& formatter) const {
cout << s << "\n Cardinalities: ";
BOOST_FOREACH(const DiscreteKey& key, cardinalities_)
cout << key.first << "=" << key.second << " ";
cout << formatter(key.first) << "=" << formatter(key.second) << " ";
cout << endl;
ADT::print(" ");
}

View File

@ -65,7 +65,8 @@ namespace gtsam {
// Testable
bool equals(const Potentials& other, double tol = 1e-9) const;
void print(const std::string& s = "Potentials: ") const;
void print(const std::string& s = "Potentials: ",
const IndexFormatter& formatter = DefaultIndexFormatter) const;
size_t cardinality(Index j) const { return cardinalities_.at(j);}

View File

@ -20,10 +20,11 @@ namespace gtsam {
}
/* ************************************************************************* */
void AllDiff::print(const std::string& s) const {
void AllDiff::print(const std::string& s,
const IndexFormatter& formatter) const {
std::cout << s << "AllDiff on ";
BOOST_FOREACH (Index dkey, keys_)
std::cout << dkey << " ";
std::cout << formatter(dkey) << " ";
std::cout << std::endl;
}

View File

@ -34,7 +34,8 @@ namespace gtsam {
AllDiff(const DiscreteKeys& dkeys);
// print
virtual void print(const std::string& s = "") const;
virtual void print(const std::string& s = "",
const IndexFormatter& formatter = DefaultIndexFormatter) const;
/// Calculate value = expensive !
virtual double operator()(const Values& values) const;

View File

@ -33,9 +33,10 @@ namespace gtsam {
}
// print
virtual void print(const std::string& s = "") const {
std::cout << s << "BinaryAllDiff on " << keys_[0] << " and " << keys_[1]
<< std::endl;
virtual void print(const std::string& s = "",
const IndexFormatter& formatter = DefaultIndexFormatter) const {
std::cout << s << "BinaryAllDiff on " << formatter(keys_[0]) << " and "
<< formatter(keys_[1]) << std::endl;
}
/// Calculate value

View File

@ -15,9 +15,10 @@ namespace gtsam {
using namespace std;
/* ************************************************************************* */
void Domain::print(const string& s) const {
// cout << s << ": Domain on " << keys_[0] << " (j=" << keys_[0]
// << ") with values";
void Domain::print(const string& s,
const IndexFormatter& formatter) const {
// cout << s << ": Domain on " << formatter(keys_[0]) << " (j=" <<
// formatter(keys_[0]) << ") with values";
// BOOST_FOREACH (size_t v,values_) cout << " " << v;
// cout << endl;
BOOST_FOREACH (size_t v,values_) cout << v;

View File

@ -66,7 +66,8 @@ namespace gtsam {
}
// print
virtual void print(const std::string& s = "") const;
virtual void print(const std::string& s = "",
const IndexFormatter& formatter = DefaultIndexFormatter) const;
bool contains(size_t value) const {
return values_.count(value)>0;

View File

@ -16,8 +16,9 @@ namespace gtsam {
using namespace std;
/* ************************************************************************* */
void SingleValue::print(const string& s) const {
cout << s << "SingleValue on " << "j=" << keys_[0]
void SingleValue::print(const string& s,
const IndexFormatter& formatter) const {
cout << s << "SingleValue on " << "j=" << formatter(keys_[0])
<< " with value " << value_ << endl;
}

View File

@ -42,7 +42,8 @@ namespace gtsam {
}
// print
virtual void print(const std::string& s = "") const;
virtual void print(const std::string& s = "",
const IndexFormatter& formatter = DefaultIndexFormatter) const;
/// Calculate value
virtual double operator()(const Values& values) const;