60 template<
class FACTOR,
class DERIVEDCONDITIONAL>
75 typedef std::pair<typename FACTOR::const_iterator, typename FACTOR::const_iterator>
ConstFactorRange;
77 ConstFactorRange range_;
82 typename FACTOR::const_iterator begin()
const {
return range_.first; }
83 typename FACTOR::const_iterator end()
const {
return range_.second; }
84 size_t size()
const {
return std::distance(range_.first, range_.second); }
85 const auto& front()
const {
return *begin(); }
88 bool operator==(
const OTHER& rhs)
const {
89 return std::equal(begin(), end(), rhs.begin());
116 void print(
const std::string& s =
"Conditional",
const KeyFormatter& formatter = DefaultKeyFormatter)
const;
119 bool equals(
const This& c,
double tol = 1e-9)
const;
137 return asFactor().front();
139 throw std::invalid_argument(
"Requested Conditional::firstFrontalKey from a conditional with zero frontal keys");
188 typename FACTOR::const_iterator
endParents()
const {
return asFactor().
end(); }
218 template <
class VALUES>
230 FACTOR& asFactor() {
return static_cast<FACTOR&
>(
static_cast<DERIVEDCONDITIONAL&
>(*this)); }
233 const FACTOR& asFactor()
const {
return static_cast<const FACTOR&
>(
static_cast<const DERIVEDCONDITIONAL&
>(*this)); }
235 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 237 friend class boost::serialization::access;
238 template<
class ARCHIVE>
239 void serialize(ARCHIVE & ar,
const unsigned int ) {
240 ar & BOOST_SERIALIZATION_NVP(nrFrontals_);
Definition: HybridValues.h:38
Definition: Conditional.h:76
Conditional(size_t nrFrontals)
Definition: Conditional.h:107
ConstFactorRangeIterator Parents
Definition: Conditional.h:97
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
virtual double logProbability(const HybridValues &c) const
Definition: Conditional-inst.h:48
FACTOR::const_iterator endFrontals() const
Definition: Conditional.h:182
static bool CheckInvariants(const DERIVEDCONDITIONAL &conditional, const VALUES &x)
Definition: Conditional-inst.h:77
size_t & nrFrontals()
Definition: Conditional.h:191
FACTOR::const_iterator beginParents() const
Definition: Conditional.h:185
virtual double evaluate(const HybridValues &c) const
Definition: Conditional-inst.h:55
size_t nrFrontals() const
Definition: Conditional.h:129
Frontals frontals() const
Definition: Conditional.h:143
ConstFactorRangeIterator Frontals
Definition: Conditional.h:94
double normalizationConstant() const
Definition: Conditional-inst.h:70
FACTOR::const_iterator beginFrontals() const
Definition: Conditional.h:179
std::pair< typename FACTOR::const_iterator, typename FACTOR::const_iterator > ConstFactorRange
Definition: Conditional.h:75
const_iterator end() const
Definition: Factor.h:148
FACTOR::iterator endFrontals()
Definition: Conditional.h:197
FACTOR::iterator endParents()
Definition: Conditional.h:203
FACTOR::const_iterator endParents() const
Definition: Conditional.h:188
Definition: Conditional.h:61
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: Key.h:35
size_t nrFrontals_
Definition: Conditional.h:65
FACTOR::iterator beginFrontals()
Definition: Conditional.h:194
Definition: chartTesting.h:28
FACTOR::iterator beginParents()
Definition: Conditional.h:200
void print(const std::string &s="Conditional", const KeyFormatter &formatter=DefaultKeyFormatter) const
Definition: Conditional-inst.h:30
double operator()(const HybridValues &x) const
Evaluate probability density, sugar.
Definition: Conditional.h:161
Key firstFrontalKey() const
Definition: Conditional.h:135
Parents parents() const
Definition: Conditional.h:146
Conditional()
Definition: Conditional.h:104
const_iterator begin() const
Definition: Factor.h:145
bool equal(const T &obj1, const T &obj2, double tol)
Definition: Testable.h:85
virtual double logNormalizationConstant() const
Definition: Conditional-inst.h:62
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
bool equals(const This &c, double tol=1e-9) const
Definition: Conditional-inst.h:41
size_t nrParents() const
Definition: Conditional.h:132