From: biconnect Date: Sun, 12 Jul 2009 13:34:09 +0000 (+0000) Subject: Modify linear.cpp so that it is consistent to /poly2/linear.cpp X-Git-Tag: v134~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4c0b4ca6a6edd83034bdfbb6e48d4fd914405d7d;p=liblinear Modify linear.cpp so that it is consistent to /poly2/linear.cpp --- diff --git a/linear.cpp b/linear.cpp index 4810da2..5547974 100644 --- a/linear.cpp +++ b/linear.cpp @@ -100,7 +100,7 @@ double l2_lr_fun::fun(double *w) double f=0; int *y=prob->y; int l=prob->l; - int n=prob->n; + int w_size=get_nr_variable(); Xv(w, z); for(i=0;iy; int l=prob->l; - int n=prob->n; + int w_size=get_nr_variable(); for(i=0;il; - int n=prob->n; + int w_size=get_nr_variable(); double *wa = new double[l]; Xv(s, wa); @@ -155,7 +155,7 @@ void l2_lr_fun::Hv(double *s, double *Hs) wa[i] = C[i]*D[i]*wa[i]; XTv(wa, Hs); - for(i=0;il; - int n=prob->n; + int w_size=get_nr_variable(); feature_node **x=prob->x; - for(i=0;iy; int l=prob->l; - int n=prob->n; + int w_size=get_nr_variable(); Xv(w, z); for(i=0;iy; int l=prob->l; - int n=prob->n; + int w_size=get_nr_variable(); sizeI = 0; for (i=0;il; - int n=prob->n; + int w_size=get_nr_variable(); double *wa = new double[l]; subXv(s, wa); @@ -315,7 +315,7 @@ void l2loss_svm_fun::Hv(double *s, double *Hs) wa[i] = C[I[i]]*wa[i]; subXTv(wa, Hs); - for(i=0;in; + int w_size=get_nr_variable(); feature_node **x=prob->x; - for(i=0;in = prob->n; + this->w_size = prob->n; this->l = prob->l; this->nr_class = nr_class; this->eps = eps; @@ -490,7 +490,7 @@ void Solver_MCSVM_CS::Solve(double *w) // initial for(i=0;il; - int n = prob->n; + int w_size = prob->n; int i, s, iter = 0; double C, d, G; double *QD = new double[l]; @@ -726,7 +726,7 @@ static void solve_linear_c_svc( upper_bound_p = Cp; upper_bound_n = Cn; } - for(i=0; il; int n = prob->n; + int w_size = prob->n; model *model_ = Malloc(model,1); if(prob->bias>=0) @@ -1064,7 +1065,7 @@ model* train(const problem *prob, const parameter *param) { if(nr_class == 2) { - model_->w=Malloc(double, n); + model_->w=Malloc(double, w_size); int e0 = start[0]+count[0]; k=0; @@ -1077,8 +1078,8 @@ model* train(const problem *prob, const parameter *param) } else { - model_->w=Malloc(double, n*nr_class); - double *w=Malloc(double, n); + model_->w=Malloc(double, w_size*nr_class); + double *w=Malloc(double, w_size); for(i=0;iC); - for(int j=0;jw[j*nr_class+i] = w[j]; } free(w); @@ -1138,6 +1139,7 @@ int save_model(const char *model_file_name, const struct model *model_) n=nr_feature+1; else n=nr_feature; + int w_size = n; FILE *fp = fopen(model_file_name,"w"); if(fp==NULL) return -1; @@ -1159,7 +1161,7 @@ int save_model(const char *model_file_name, const struct model *model_) fprintf(fp, "bias %.16g\n", model_->bias); fprintf(fp, "w\n"); - for(i=0; iw=Malloc(double, n*nr_w); - for(i=0; iw=Malloc(double, w_size*nr_w); + for(i=0; i