30 template <
class CONDITIONAL>
33 std::cout << (s.empty() ?
"" : s +
" ") << std::endl;
34 std::cout <<
"size: " << this->
size() << std::endl;
35 for (
size_t i = 0;
i < this->
size();
i++) {
36 const auto& conditional = this->at(
i);
38 ss <<
"conditional " <<
i <<
": ";
39 if (conditional) conditional->print(ss.str(),
formatter);
44 template <
class CONDITIONAL>
60 const auto& conditional = *it;
61 auto frontals = conditional->frontals();
62 const Key me = frontals.front();
63 auto parents = conditional->parents();
64 for (
const Key&
p : parents) {
65 os <<
" var" <<
p <<
"->var" << me <<
"\n";
74 template <
class CONDITIONAL>
78 dot(ss, keyFormatter, writer);
83 template <
class CONDITIONAL>
87 std::ofstream of(filename.c_str());
88 dot(of, keyFormatter, writer);
93 template <
class CONDITIONAL>
96 for (
const auto& gc : *
this) {
97 if (gc) sum += gc->logProbability(x);
103 template <
class CONDITIONAL>
105 return exp(-logProbability(x));
const gtsam::Symbol key('X', 0)
double dot(const V1 &a, const V2 &b)
void dot(std::ostream &os, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DotWriter &writer=DotWriter()) const
Output to graphviz format, stream version.
std::optional< Vector2 > variablePos(Key key) const
Return variable position or none.
std::reverse_iterator< Iterator > make_reverse_iterator(Iterator i)
const KeyFormatter & formatter
void digraphPreamble(std::ostream *os) const
Write out preamble for digraph, including size.
EIGEN_DEVICE_FUNC const ExpReturnType exp() const
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
static std::stringstream ss
DotWriter is a helper class for writing graphviz .dot files.
void drawVariable(Key key, const KeyFormatter &keyFormatter, const std::optional< Vector2 > &position, std::ostream *os) const
Create a variable dot fragment.
ofstream os("timeSchurFactors.csv")
void saveGraph(const std::string &filename, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DotWriter &writer=DotWriter()) const
output to file with graphviz format.
Point3_ position(const NavState_ &X)
static EIGEN_DEPRECATED const end_t end
double logProbability(const HybridValues &x) const
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
std::uint64_t Key
Integer nonlinear key type.
void print(const std::string &s="BayesNet", const KeyFormatter &formatter=DefaultKeyFormatter) const override
double evaluate(const HybridValues &c) const