void l2loss_svm_fun::Hv(double *s, double *Hs) { int i; int l=prob->l; int n=prob->n; double *wa = new double[l]; subXv(s, wa); for(i=0;i<sizeI;i++) wa[i] = C[I[i]]*wa[i]; subXTv(wa, Hs); for(i=0;i<n;i++) Hs[i] = s[i] + 2*Hs[i]; delete[] wa; }
void l2r_l2_svc_fun::Hv(double *s, double *Hs) { int i; int l=prob->l; int w_size=get_nr_variable(); double *wa = new double[l]; subXv(s, wa); for(i=0;i<sizeI;i++) wa[i] = C[I[i]]*wa[i]; subXTv(wa, Hs); for(i=0;i<w_size;i++) Hs[i] = s[i] + 2*Hs[i]; delete[] wa; }