From 2aace707cad237ab90634c756331dfeea3188fc8 Mon Sep 17 00:00:00 2001 From: Dongryeol Lee Date: Wed, 5 Mar 2008 01:39:30 +0000 Subject: [PATCH] Numerical stability fix --- .../dongryel/regression/multi_conjugate_gradient.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fastlib2/contrib/dongryel/regression/multi_conjugate_gradient.h b/fastlib2/contrib/dongryel/regression/multi_conjugate_gradient.h index d92f56fd50..1e53d8f004 100644 --- a/fastlib2/contrib/dongryel/regression/multi_conjugate_gradient.h +++ b/fastlib2/contrib/dongryel/regression/multi_conjugate_gradient.h @@ -415,14 +415,16 @@ private: } // x = x + alpha * p - la::AddExpert(row_length_, alpha, p_vecs.GetColumnPtr(q), - solutions.GetColumnPtr(q)); - { + if(query_in_cg_loop[q]) { + la::AddExpert(row_length_, alpha, p_vecs.GetColumnPtr(q), + solutions.GetColumnPtr(q)); + } + if(expansion_query_in_cg_loop[q]) { la::AddExpert(row_length_, expansion_alpha, expansion_p_vecs.GetColumnPtr(q), query_expansion_solutions.GetColumnPtr(q)); } - if(loo_solutions != NULL) { + if(loo_solutions != NULL && (*loo_query_in_cg_loop)[q]) { la::AddExpert(row_length_, loo_alpha, loo_p_vecs->GetColumnPtr(q), loo_solutions->GetColumnPtr(q)); }