Fixed missing copy constructor and assignment operators in Marginals

release/4.3a0
Richard Roberts 2012-05-23 18:51:39 +00:00
parent 510e2eacac
commit edc4ffa683
2 changed files with 19 additions and 0 deletions

View File

@ -73,6 +73,19 @@ Matrix Marginals::marginalInformation(Key variable) const {
}
}
/* ************************************************************************* */
JointMarginal::JointMarginal(const JointMarginal& other) :
blockView_(fullMatrix_) {
*this = other;
}
/* ************************************************************************* */
JointMarginal& JointMarginal::operator=(const JointMarginal& rhs) {
indices_ = rhs.indices_;
blockView_.assignNoalias(rhs.blockView_);
return *this;
}
/* ************************************************************************* */
JointMarginal Marginals::jointMarginalCovariance(const std::vector<Key>& variables) const {
JointMarginal info = jointMarginalInformation(variables);

View File

@ -102,6 +102,12 @@ public:
Block operator()(Key iVariable, Key jVariable) const {
return blockView_(indices_[iVariable], indices_[jVariable]); }
/** Copy constructor */
JointMarginal(const JointMarginal& other);
/** Assignment operator */
JointMarginal& operator=(const JointMarginal& rhs);
protected:
Matrix fullMatrix_;
BlockView blockView_;