summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/svm/src/c/cal_learned_func.c
diff options
context:
space:
mode:
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.c42
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/********************************
2Author: Sravanthi Kota Venkata
3********************************/
4
5#include "svm.h"
6
7float 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