From d8ef8d2ee4b0af3a52fa2fc3e90c77c23ff7c732 Mon Sep 17 00:00:00 2001 From: Dongryeol Lee Date: Tue, 12 Feb 2008 01:03:49 +0000 Subject: [PATCH] Debuggin in process --- .../contrib/dongryel/regression/dense_lpr.h | 20 +++++++++++++++++++ .../dongryel/regression/dense_lpr_main.cc | 2 +- .../contrib/dongryel/regression/matrix_util.h | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/fastlib2/contrib/dongryel/regression/dense_lpr.h b/fastlib2/contrib/dongryel/regression/dense_lpr.h index 666b760358..fddd47d819 100644 --- a/fastlib2/contrib/dongryel/regression/dense_lpr.h +++ b/fastlib2/contrib/dongryel/regression/dense_lpr.h @@ -493,9 +493,25 @@ class DenseLpr { /////////// User-level Functions ////////// void Compute() { + + fx_timer_start(module_, "dense_lpr_compute"); InitializeQueryTree_(qroot_); DualtreeLprCanonical_(qroot_, rroot_); FinalizeQueryTree_(qroot_); + + // Reshuffle the results to account for dataset reshuffling + // resulted from tree constructions + Vector tmp_q_results; + tmp_q_results.Init(regression_estimates_.length()); + + for(index_t i = 0; i < tmp_q_results.length(); i++) { + tmp_q_results[old_from_new_queries_[i]] = regression_estimates_[i]; + } + for(index_t i = 0; i < tmp_q_results.length(); i++) { + regression_estimates_[i] = tmp_q_results[i]; + } + + fx_timer_stop(module_, "dense_lpr_compute"); } void Init(Matrix &queries, Matrix &references, Matrix &reference_targets, @@ -554,8 +570,12 @@ class DenseLpr { denominator_l_[q].Init(row_length_, row_length_); denominator_e_[q].Init(row_length_, row_length_); } + denominator_used_error_.Init(qset_.n_cols()); + denominator_n_pruned_.Init(qset_.n_cols()); numerator_l_.Init(row_length_, qset_.n_cols()); numerator_e_.Init(row_length_, qset_.n_cols()); + numerator_used_error_.Init(qset_.n_cols()); + numerator_n_pruned_.Init(qset_.n_cols()); // initialize the reference side statistics. ComputeTargetWeightedReferenceVectors_(rroot_); diff --git a/fastlib2/contrib/dongryel/regression/dense_lpr_main.cc b/fastlib2/contrib/dongryel/regression/dense_lpr_main.cc index 66aa92d778..7d1abf579f 100644 --- a/fastlib2/contrib/dongryel/regression/dense_lpr_main.cc +++ b/fastlib2/contrib/dongryel/regression/dense_lpr_main.cc @@ -47,11 +47,11 @@ int main(int argc, char *argv[]) { DatasetScaler::TranslateDataByMin(queries, references, false); // Declare local linear krylov object. - Vector fast_local_linear_results; DenseLpr local_linear; local_linear.Init(queries, references, reference_targets, local_linear_module); local_linear.Compute(); + local_linear.PrintDebug(); // Finalize FastExec and print output results. fx_done(); diff --git a/fastlib2/contrib/dongryel/regression/matrix_util.h b/fastlib2/contrib/dongryel/regression/matrix_util.h index 90ad5fa159..6446d6d7fe 100644 --- a/fastlib2/contrib/dongryel/regression/matrix_util.h +++ b/fastlib2/contrib/dongryel/regression/matrix_util.h @@ -97,7 +97,7 @@ class MatrixUtil { } Matrix intermediate; la::MulInit(ro_s_inv, ro_U_trans, &intermediate); - la::MulInit(ro_VT_trans, intermediate, A_inv); + la::MulOverwrite(ro_VT_trans, intermediate, A_inv); } };