summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/svm/src/c/script_svm.c
diff options
context:
space:
mode:
Diffstat (limited to 'SD-VBS/benchmarks/svm/src/c/script_svm.c')
-rw-r--r--SD-VBS/benchmarks/svm/src/c/script_svm.c175
1 files changed, 0 insertions, 175 deletions
diff --git a/SD-VBS/benchmarks/svm/src/c/script_svm.c b/SD-VBS/benchmarks/svm/src/c/script_svm.c
deleted file mode 100644
index d77291c..0000000
--- a/SD-VBS/benchmarks/svm/src/c/script_svm.c
+++ /dev/null
@@ -1,175 +0,0 @@
1/********************************
2Author: Sravanthi Kota Venkata
3********************************/
4
5#include <stdio.h>
6#include <stdlib.h>
7#include "svm.h"
8#include <malloc.h>
9#include "extra.h"
10#define SVM_MEM 1<<24
11int main(int argc, char* argv[])
12{
13 SET_UP
14 mallopt(M_TOP_PAD, SVM_MEM);
15 mallopt(M_MMAP_MAX, 0);
16 int iter, N, Ntst, i, j, k, n;
17 F2D* trn1, *tst1, *trn2, *tst2, *Yoffset;
18 alphaRet* alpha;
19 F2D *a_result, *result = NULL;
20 F2D *s;
21 F2D *b_result;
22 F2D *Xtst, *Ytst;
23 char im1[256];
24 int dim = 256;
25
26 N = 100;
27 Ntst = 100;
28 iter = 10;
29
30 #ifdef test
31 N = 4;
32 Ntst = 4;
33 iter = 2;
34 #endif
35
36 #ifdef sim_fast
37 N = 20;
38 Ntst = 20;
39 iter = 2;
40 #endif
41
42 #ifdef sim
43 N = 16;
44 Ntst = 16;
45 iter = 8;
46 #endif
47
48 #ifdef sqcif
49 N = 60;
50 Ntst = 60;
51 iter = 6;
52 #endif
53
54 #ifdef qcif
55 N = 72;
56 Ntst = 72;
57 iter = 8;
58 #endif
59
60 #ifdef vga
61 N = 450;
62 Ntst = 450;
63 iter = 15;
64 #endif
65
66 #ifdef wuxga
67 N = 1000;
68 Ntst = 1000;
69 iter = 20;
70 #endif
71
72
73 // trn file 1
74 scanf("%s", im1);
75 trn1 = readFile(im1);
76
77 // trn file 2
78 scanf("%s", im1);
79 trn2 = readFile(im1);
80
81 // tst file 1
82 scanf("%s", im1);
83 tst1 = readFile(im1);
84
85 // tst file 2
86 scanf("%s", im1);
87 tst2 = readFile(im1);
88
89 for_each_job {
90 // Clear the results from our last job
91 if (result)
92 fFreeHandle(result);
93
94 alpha = getAlphaFromTrainSet(N, trn1, trn2, iter);
95 a_result = alpha->a_result;
96 b_result = alpha->b_result;
97 Yoffset = fSetArray(iter, N, 0);
98
99 Xtst = usps_read_partial(tst1, tst2, -1, 1, Ntst/iter, iter);
100 Ytst = usps_read_partial(tst1, tst2, -1, 0, Ntst/iter, iter);
101
102 for(i=0; i<iter; i++)
103 {
104 F2D *temp;
105 temp = usps_read_partial(trn1, trn2, i, 0, N/iter, iter);
106 for(j=0; j<N; j++)
107 subsref(Yoffset,i,j) = asubsref(temp,j);
108 fFreeHandle(temp);
109 }
110
111
112 result = fSetArray(Ntst,1,0);
113 for( n=0; n<Ntst; n++)
114 {
115 float maxs=0;
116 s=fSetArray(iter,1,0);
117 for( i=0; i<iter; i++)
118 {
119 for (j=0; j<N; j++)
120 {
121 if (subsref(a_result,i,j) > 0)
122 {
123 F2D *Xtemp, *XtstTemp, *X;
124 X = alpha->X;
125 Xtemp = fDeepCopyRange(X,j,1,0,X->width);
126 XtstTemp = fDeepCopyRange(Xtst, n,1,0,Xtst->width);
127 asubsref(s,i) = asubsref(s,i) + subsref(a_result,i,j) * subsref(Yoffset,i,j) * polynomial(3,Xtemp,XtstTemp, dim);
128 fFreeHandle(Xtemp);
129 fFreeHandle(XtstTemp);
130 }
131 }
132 asubsref(s,i) = asubsref(s,i) - asubsref(b_result,i);
133 if( asubsref(s,i) > maxs)
134 maxs = asubsref(s,i);
135 }
136
137 fFreeHandle(s);
138 asubsref(result,n) = maxs;
139 }
140
141 fFreeHandle(Yoffset);
142 fFreeHandle(alpha->a_result);
143 fFreeHandle(alpha->b_result);
144 fFreeHandle(alpha->X);
145 free(alpha);
146 fFreeHandle(Xtst);
147 fFreeHandle(Ytst);
148 }
149
150#ifdef CHECK
151 /** Self checking - use expected.txt from data directory **/
152 {
153 int ret=0;
154 float tol = 0.5;
155#ifdef GENERATE_OUTPUT
156 fWriteMatrix(result, argv[1]);
157#endif
158 ret = fSelfCheck(result, "expected_C.txt", tol);
159 if (ret == -1)
160 printf("Error in SVM\n");
161 }
162 /** Self checking done **/
163#endif
164
165 fFreeHandle(trn1);
166 fFreeHandle(tst1);
167 fFreeHandle(trn2);
168 fFreeHandle(tst2);
169 fFreeHandle(result);
170 WRITE_TO_FILE
171 return 0;
172}
173
174
175