Skip to content

Commit bc5c89a

Browse files
author
Kevin Lee
committed
svm.m4 was modified two commits ago, but forgot to generate new svm.java
1 parent f3b95b0 commit bc5c89a

File tree

1 file changed

+37
-26
lines changed

1 file changed

+37
-26
lines changed

java/libsvm/svm.java

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ int get_data(int index, float[][] data, int len)
8181
if(h.data != null) System.arraycopy(h.data,0,new_data,0,h.len);
8282
h.data = new_data;
8383
size -= more;
84-
do {int _=h.len; h.len=len; len=_;} while(false);
84+
do {int tmp=h.len; h.len=len; len=tmp;} while(false);
8585
}
8686

8787
lru_insert(h);
@@ -95,18 +95,18 @@ void swap_index(int i, int j)
9595

9696
if(head[i].len > 0) lru_delete(head[i]);
9797
if(head[j].len > 0) lru_delete(head[j]);
98-
do {float[] _=head[i].data; head[i].data=head[j].data; head[j].data=_;} while(false);
99-
do {int _=head[i].len; head[i].len=head[j].len; head[j].len=_;} while(false);
98+
do {float[] tmp=head[i].data; head[i].data=head[j].data; head[j].data=tmp;} while(false);
99+
do {int tmp=head[i].len; head[i].len=head[j].len; head[j].len=tmp;} while(false);
100100
if(head[i].len > 0) lru_insert(head[i]);
101101
if(head[j].len > 0) lru_insert(head[j]);
102102

103-
if(i>j) do {int _=i; i=j; j=_;} while(false);
103+
if(i>j) do {int tmp=i; i=j; j=tmp;} while(false);
104104
for(head_t h = lru_head.next; h!=lru_head; h=h.next)
105105
{
106106
if(h.len > i)
107107
{
108108
if(h.len > j)
109-
do {float _=h.data[i]; h.data[i]=h.data[j]; h.data[j]=_;} while(false);
109+
do {float tmp=h.data[i]; h.data[i]=h.data[j]; h.data[j]=tmp;} while(false);
110110
else
111111
{
112112
// give up
@@ -148,8 +148,8 @@ abstract class Kernel extends QMatrix {
148148

149149
void swap_index(int i, int j)
150150
{
151-
do {svm_node[] _=x[i]; x[i]=x[j]; x[j]=_;} while(false);
152-
if(x_square != null) do {double _=x_square[i]; x_square[i]=x_square[j]; x_square[j]=_;} while(false);
151+
do {svm_node[] tmp=x[i]; x[i]=x[j]; x[j]=tmp;} while(false);
152+
if(x_square != null) do {double tmp=x_square[i]; x_square[i]=x_square[j]; x_square[j]=tmp;} while(false);
153153
}
154154

155155
private static double powi(double base, int times)
@@ -350,13 +350,13 @@ static class SolutionInfo {
350350
void swap_index(int i, int j)
351351
{
352352
Q.swap_index(i,j);
353-
do {byte _=y[i]; y[i]=y[j]; y[j]=_;} while(false);
354-
do {double _=G[i]; G[i]=G[j]; G[j]=_;} while(false);
355-
do {byte _=alpha_status[i]; alpha_status[i]=alpha_status[j]; alpha_status[j]=_;} while(false);
356-
do {double _=alpha[i]; alpha[i]=alpha[j]; alpha[j]=_;} while(false);
357-
do {double _=p[i]; p[i]=p[j]; p[j]=_;} while(false);
358-
do {int _=active_set[i]; active_set[i]=active_set[j]; active_set[j]=_;} while(false);
359-
do {double _=G_bar[i]; G_bar[i]=G_bar[j]; G_bar[j]=_;} while(false);
353+
do {byte tmp=y[i]; y[i]=y[j]; y[j]=tmp;} while(false);
354+
do {double tmp=G[i]; G[i]=G[j]; G[j]=tmp;} while(false);
355+
do {byte tmp=alpha_status[i]; alpha_status[i]=alpha_status[j]; alpha_status[j]=tmp;} while(false);
356+
do {double tmp=alpha[i]; alpha[i]=alpha[j]; alpha[j]=tmp;} while(false);
357+
do {double tmp=p[i]; p[i]=p[j]; p[j]=tmp;} while(false);
358+
do {int tmp=active_set[i]; active_set[i]=active_set[j]; active_set[j]=tmp;} while(false);
359+
do {double tmp=G_bar[i]; G_bar[i]=G_bar[j]; G_bar[j]=tmp;} while(false);
360360
}
361361

362362
void reconstruct_gradient()
@@ -1182,8 +1182,8 @@ void swap_index(int i, int j)
11821182
{
11831183
cache.swap_index(i,j);
11841184
super.swap_index(i,j);
1185-
do {byte _=y[i]; y[i]=y[j]; y[j]=_;} while(false);
1186-
do {double _=QD[i]; QD[i]=QD[j]; QD[j]=_;} while(false);
1185+
do {byte tmp=y[i]; y[i]=y[j]; y[j]=tmp;} while(false);
1186+
do {double tmp=QD[i]; QD[i]=QD[j]; QD[j]=tmp;} while(false);
11871187
}
11881188
}
11891189

@@ -1222,7 +1222,7 @@ void swap_index(int i, int j)
12221222
{
12231223
cache.swap_index(i,j);
12241224
super.swap_index(i,j);
1225-
do {double _=QD[i]; QD[i]=QD[j]; QD[j]=_;} while(false);
1225+
do {double tmp=QD[i]; QD[i]=QD[j]; QD[j]=tmp;} while(false);
12261226
}
12271227
}
12281228

@@ -1259,9 +1259,9 @@ class SVR_Q extends Kernel
12591259

12601260
void swap_index(int i, int j)
12611261
{
1262-
do {byte _=sign[i]; sign[i]=sign[j]; sign[j]=_;} while(false);
1263-
do {int _=index[i]; index[i]=index[j]; index[j]=_;} while(false);
1264-
do {double _=QD[i]; QD[i]=QD[j]; QD[j]=_;} while(false);
1262+
do {byte tmp=sign[i]; sign[i]=sign[j]; sign[j]=tmp;} while(false);
1263+
do {int tmp=index[i]; index[i]=index[j]; index[j]=tmp;} while(false);
1264+
do {double tmp=QD[i]; QD[i]=QD[j]; QD[j]=tmp;} while(false);
12651265
}
12661266

12671267
float[] get_Q(int i, int len)
@@ -1751,7 +1751,7 @@ private static void svm_binary_svc_probability(svm_problem prob, svm_parameter p
17511751
for(i=0;i<prob.l;i++)
17521752
{
17531753
int j = i+rand.nextInt(prob.l-i);
1754-
do {int _=perm[i]; perm[i]=perm[j]; perm[j]=_;} while(false);
1754+
do {int tmp=perm[i]; perm[i]=perm[j]; perm[j]=tmp;} while(false);
17551755
}
17561756
for(i=0;i<nr_fold;i++)
17571757
{
@@ -1899,8 +1899,8 @@ private static void svm_group_classes(svm_problem prob, int[] nr_class_ret, int[
18991899
//
19001900
if (nr_class == 2 && label[0] == -1 && label[1] == +1)
19011901
{
1902-
do {int _=label[0]; label[0]=label[1]; label[1]=_;} while(false);
1903-
do {int _=count[0]; count[0]=count[1]; count[1]=_;} while(false);
1902+
do {int tmp=label[0]; label[0]=label[1]; label[1]=tmp;} while(false);
1903+
do {int tmp=count[0]; count[0]=count[1]; count[1]=tmp;} while(false);
19041904
for(i=0;i<l;i++)
19051905
{
19061906
if(data_label[i] == 0)
@@ -2202,7 +2202,7 @@ public static void svm_cross_validation(svm_problem prob, svm_parameter param, i
22022202
for(i=0;i<count[c];i++)
22032203
{
22042204
int j = i+rand.nextInt(count[c]-i);
2205-
do {int _=index[start[c]+j]; index[start[c]+j]=index[start[c]+i]; index[start[c]+i]=_;} while(false);
2205+
do {int tmp=index[start[c]+j]; index[start[c]+j]=index[start[c]+i]; index[start[c]+i]=tmp;} while(false);
22062206
}
22072207
for(i=0;i<nr_fold;i++)
22082208
{
@@ -2234,7 +2234,7 @@ public static void svm_cross_validation(svm_problem prob, svm_parameter param, i
22342234
for(i=0;i<l;i++)
22352235
{
22362236
int j = i+rand.nextInt(l-i);
2237-
do {int _=perm[i]; perm[i]=perm[j]; perm[j]=_;} while(false);
2237+
do {int tmp=perm[i]; perm[i]=perm[j]; perm[j]=tmp;} while(false);
22382238
}
22392239
for(i=0;i<=nr_fold;i++)
22402240
fold_start[i]=i*l/nr_fold;
@@ -2428,7 +2428,13 @@ public static double svm_predict_probability(svm_model model, svm_node[] x, doub
24282428
pairwise_prob[j][i]=1-pairwise_prob[i][j];
24292429
k++;
24302430
}
2431-
multiclass_probability(nr_class,pairwise_prob,prob_estimates);
2431+
if (nr_class == 2)
2432+
{
2433+
prob_estimates[0] = pairwise_prob[0][1];
2434+
prob_estimates[1] = pairwise_prob[1][0];
2435+
}
2436+
else
2437+
multiclass_probability(nr_class,pairwise_prob,prob_estimates);
24322438

24332439
int prob_max_idx = 0;
24342440
for(i=1;i<nr_class;i++)
@@ -2549,6 +2555,11 @@ private static boolean read_model_header(BufferedReader fp, svm_model model)
25492555
{
25502556
svm_parameter param = new svm_parameter();
25512557
model.param = param;
2558+
// parameters for training only won't be assigned, but arrays are assigned as NULL for safety
2559+
param.nr_weight = 0;
2560+
param.weight_label = null;
2561+
param.weight = null;
2562+
25522563
try
25532564
{
25542565
while(true)

0 commit comments

Comments
 (0)