summaryrefslogtreecommitdiffstats
path: root/SD-VBS/common/c/fSum.c
diff options
context:
space:
mode:
authorLeo Chan <leochanj@live.unc.edu>2020-10-22 01:53:21 -0400
committerJoshua Bakita <jbakita@cs.unc.edu>2020-10-22 01:56:35 -0400
commitd17b33131c14864bd1eae275f49a3f148e21cf29 (patch)
tree0d8f77922e8d193cb0f6edab83018f057aad64a0 /SD-VBS/common/c/fSum.c
parent601ed25a4c5b66cb75315832c15613a727db2c26 (diff)
Squashed commit of the sb-vbs branch.
Includes the SD-VBS benchmarks modified to: - Use libextra to loop as realtime jobs - Preallocate memory before starting their main computation - Accept input via stdin instead of via argc Does not include the SD-VBS matlab code. Fixes libextra execution in LITMUS^RT.
Diffstat (limited to 'SD-VBS/common/c/fSum.c')
-rw-r--r--SD-VBS/common/c/fSum.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/SD-VBS/common/c/fSum.c b/SD-VBS/common/c/fSum.c
new file mode 100644
index 0000000..cd9483a
--- /dev/null
+++ b/SD-VBS/common/c/fSum.c
@@ -0,0 +1,55 @@
1/********************************
2Author: Sravanthi Kota Venkata
3********************************/
4
5#include "sdvbs_common.h"
6
7F2D* fSum(F2D* inMat)
8{
9 F2D *outMat;
10 int rows, cols, i, j, k;
11 float temp;
12 int newRow, newCols;
13 int Rcols;
14
15 rows = inMat->height;
16 cols = inMat->width;
17
18 if(cols == 1 || rows == 1)
19 Rcols = 1;
20 else
21 Rcols = cols;
22
23 outMat = fSetArray(1,Rcols,0);
24
25 if( cols == 1)
26 {
27 temp = 0;
28 for( j=0; j<rows; j++)
29 temp = temp + subsref(inMat,j,0);
30 asubsref(outMat,0) = temp;
31 }
32 else if( rows == 1)
33 {
34 temp = 0;
35 for( j=0; j<cols; j++)
36 temp = temp + asubsref(inMat,j);
37 asubsref(outMat,0) = temp;
38 }
39 else
40 {
41 for( i=0; i<cols; i++)
42 {
43 temp = 0;
44 for( j=0; j<rows; j++)
45 temp = temp + subsref(inMat,j,i);
46 asubsref(outMat,i) = temp;
47 }
48 }
49
50 return outMat;
51}
52
53
54
55