aboutsummaryrefslogtreecommitdiff
path: root/interactionhandler.cpp
diff options
context:
space:
mode:
authorSamuel Fadel <samuelfadel@gmail.com>2015-05-22 12:17:09 -0300
committerSamuel Fadel <samuelfadel@gmail.com>2015-05-22 12:17:09 -0300
commit49b32975e9963de01b2ecc102b95488e4fdbf975 (patch)
tree7ea80fa21e515dbdbc1b239e09c8608fc6f527cd /interactionhandler.cpp
parente8bb632cae4e7c9a320a3412cbd487f859ae104c (diff)
Optimized InteractionHandler to minimze allocations; view updates now happen whenever a point is moved.
Diffstat (limited to 'interactionhandler.cpp')
-rw-r--r--interactionhandler.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/interactionhandler.cpp b/interactionhandler.cpp
index 217f4a5..5225be9 100644
--- a/interactionhandler.cpp
+++ b/interactionhandler.cpp
@@ -8,24 +8,21 @@ InteractionHandler::InteractionHandler(const arma::mat &X,
: m_X(X)
, m_labels(labels)
, m_sampleIndices(sampleIndices)
+ , m_Y(X.n_rows, 3)
, m_technique(TECHNIQUE_LAMP)
{
+ m_Y.col(2) = m_labels;
}
void InteractionHandler::setSubsample(const arma::mat &Ys)
{
- arma::mat embedding(m_X.n_rows, Ys.n_cols);
switch (m_technique) {
case TECHNIQUE_PLMP:
case TECHNIQUE_LSP:
case TECHNIQUE_LAMP:
- embedding = mp::lamp(m_X, m_sampleIndices, Ys);
+ m_Y.cols(0, 1) = mp::lamp(m_X, m_sampleIndices, Ys);
break;
}
- arma::mat Y(embedding.n_rows, embedding.n_cols + 1);
- Y.cols(0, embedding.n_cols - 1) = embedding;
- Y.col(Y.n_cols - 1) = m_labels;
-
- emit subsampleChanged(Y);
+ emit subsampleChanged(m_Y);
}