aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--projectionhistory.cpp9
-rw-r--r--projectionhistory.h12
2 files changed, 18 insertions, 3 deletions
diff --git a/projectionhistory.cpp b/projectionhistory.cpp
index 55d9f60..20a006b 100644
--- a/projectionhistory.cpp
+++ b/projectionhistory.cpp
@@ -57,6 +57,7 @@ void ProjectionHistory::undo()
m_Y = m_prevY;
m_distY = m_prevDistY;
m_values = m_prevValues;
+ updateUnreliability();
emit undoPerformed();
emit currentMapChanged(m_Y);
@@ -73,6 +74,7 @@ void ProjectionHistory::reset()
m_Y = m_firstY;
m_distY = m_firstDistY;
m_values = m_firstValues;
+ updateUnreliability();
emit resetPerformed();
emit currentMapChanged(m_Y);
@@ -93,6 +95,7 @@ void ProjectionHistory::addMap(const arma::mat &Y)
m_Y = Y;
m_distY = mp::dist(Y);
+ updateUnreliability();
mp::aggregatedError(m_distX, m_distY, m_values);
qDebug("Aggr. error: min: %f, max: %f", m_values.min(), m_values.max());
@@ -227,3 +230,9 @@ void ProjectionHistory::setRewind(double t)
emit rpValuesRewound(values(m_rpIndices));
emit valuesRewound(values);
}
+
+void ProjectionHistory::updateUnreliability()
+{
+ m_unreliability.copy_size(m_alphas);
+ m_unreliability = m_alphas % m_distY(m_rpIndices, m_cpIndices);
+}
diff --git a/projectionhistory.h b/projectionhistory.h
index 79519f9..e20f16c 100644
--- a/projectionhistory.h
+++ b/projectionhistory.h
@@ -18,9 +18,13 @@ public:
ProjectionHistory(const arma::mat &X, const arma::uvec &cpIndices);
- const arma::mat &Y() const { return m_Y; }
- const arma::mat &firstY() const { return m_firstY; }
- const arma::mat &prevY() const { return m_prevY; }
+ const arma::mat &Y() const { return m_Y; }
+ const arma::mat &firstY() const { return m_firstY; }
+ const arma::mat &prevY() const { return m_prevY; }
+ const arma::mat &unreliability() const { return m_unreliability; }
+
+ const arma::uvec &cpIndices() const { return m_cpIndices; }
+ const arma::uvec &rpIndices() const { return m_rpIndices; }
bool hasFirst() const { return m_hasFirst; }
bool hasPrev() const { return m_hasPrev; }
@@ -53,11 +57,13 @@ public slots:
private:
bool emitValuesChanged() const;
+ void updateUnreliability();
ObserverType m_type;
arma::mat m_X, m_Y, m_firstY, m_prevY;
arma::mat m_distX, m_distY, m_firstDistY, m_prevDistY;
+ arma::mat m_unreliability;
arma::uvec m_cpIndices, m_rpIndices;
bool m_cpSelectionEmpty, m_rpSelectionEmpty;