From 288c8ae002586feee45fa9acec6f32ac8d79730f Mon Sep 17 00:00:00 2001 From: gcolon7 Date: Mon, 1 Nov 2010 17:55:15 +0000 Subject: [PATCH] changed optimization_utils.h to std::pow --- .../trunk/fastlib/optimization/lbfgs/optimization_utils.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fastlib/trunk/fastlib/optimization/lbfgs/optimization_utils.h b/fastlib/trunk/fastlib/optimization/lbfgs/optimization_utils.h index 9ac612d718..6e8e94facb 100644 --- a/fastlib/trunk/fastlib/optimization/lbfgs/optimization_utils.h +++ b/fastlib/trunk/fastlib/optimization/lbfgs/optimization_utils.h @@ -170,8 +170,9 @@ class OptUtils { ones.SetAll(1.0); // This part of the sparsity constraint function formula can be // precomputed and it is the same for every iteration - double precomputed_sparse_factor=-sparse_factor*(math::Pow<1,2>(dimension)-1)+ - math::Pow<1,2>(dimension); + double temp_pow_1_2_dimension = 1.0/std::pow(2,dimension) + double precomputed_sparse_factor + = -sparse_factor*(temp_pow_1_2_dimension-1)+temp_pow_1_2_dimension; for (index_t i=0; in_cols(); i++) { double *point=data->GetColumnPtr(i); @@ -199,7 +200,7 @@ class OptUtils { double w_norm=la::LengthEuclidean(w_vector); double w_times_v = 2*la::Dot(v_vector, w_vector); double v_norm_minus_l2=la::LengthEuclidean(v_vector)-l2_norm; - double alpha = (-w_times_v+math::Pow<1,2>(w_times_v*w_times_v + double alpha = (-w_times_v+1.0/std::pow(2,w_times_v*w_times_v -4*w_norm*v_norm_minus_l2))/(2*w_norm); la::AddExpert(alpha, w_vector, &v_vector); bool all_positive=true;