]> granicus.if.org Git - liblinear/commit
Fixed bug and optimize code in TRON::tron
authorb92paul <b92paul@gmail.com>
Thu, 8 Mar 2018 07:02:51 +0000 (15:02 +0800)
committerb92paul <b92paul@gmail.com>
Thu, 8 Mar 2018 07:02:51 +0000 (15:02 +0800)
commiteca3bd047f9a53e4f92f51ab753edf195a937e85
tree60e2a8ebeebeaa3c5b7e6b4331a52cf897c8568c
parent3611f8aad7c4b0fca6d582b6c831fe9488cd0f56
Fixed bug and optimize code in TRON::tron

Variable "iter" and "w" won't change in the
while loop of function TRON::tron when the
direction does not lead to sufficient
function-value decrease, so using expression
"iter == 1" as a flag to initialize variables
will cause problems in the first step.
We introduce a new variable "delta_adjusted" to
fix the bug.

The function call "fun_obj->get_diagH(M)" and the
calculation of "(1-alpha_pcg) I + alpha_pcg M"
can be saved if "iter" and "w" remains the same.
We move some lines of code to save the
calculation.
tron.cpp