diff options
Diffstat (limited to 'SD-VBS/benchmarks/svm/src/c/cal_learned_func.c')
-rw-r--r-- | SD-VBS/benchmarks/svm/src/c/cal_learned_func.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/SD-VBS/benchmarks/svm/src/c/cal_learned_func.c b/SD-VBS/benchmarks/svm/src/c/cal_learned_func.c new file mode 100644 index 0000000..79fdd68 --- /dev/null +++ b/SD-VBS/benchmarks/svm/src/c/cal_learned_func.c | |||
@@ -0,0 +1,42 @@ | |||
1 | /******************************** | ||
2 | Author: Sravanthi Kota Venkata | ||
3 | ********************************/ | ||
4 | |||
5 | #include "svm.h" | ||
6 | |||
7 | float cal_learned_func(int k, F2D* a, float* b, int N, F2D* Y, F2D* X, int dim) | ||
8 | { | ||
9 | float s, ret; | ||
10 | int i, j, m, n; | ||
11 | F2D *temp, *temp1; | ||
12 | |||
13 | s=0; | ||
14 | for(i=0; i<N; i++) | ||
15 | { | ||
16 | if( subsref(a,i,0) > 0) | ||
17 | { | ||
18 | temp = fMallocHandle(1, X->width); | ||
19 | temp1 = fMallocHandle(1, X->width); | ||
20 | |||
21 | for(m=0; m<X->width; m++) | ||
22 | { | ||
23 | asubsref(temp,m) = subsref(X,i,m); | ||
24 | asubsref(temp1,m) = subsref(X,k,m); | ||
25 | } | ||
26 | |||
27 | s += asubsref(a,i) * asubsref(Y,i) * polynomial(3, temp, temp1, dim); | ||
28 | |||
29 | free(temp); | ||
30 | free(temp1); | ||
31 | } | ||
32 | } | ||
33 | |||
34 | s = s- arrayref(b,0); | ||
35 | ret = s; | ||
36 | |||
37 | return ret; | ||
38 | } | ||
39 | |||
40 | |||
41 | |||
42 | |||