aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/espresso/sminterf.c
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2019-08-24 17:58:18 +0200
committerFlorian Fischer <florian.fl.fischer@fau.de>2019-08-24 17:58:18 +0200
commitde7208a60eca11aa8014e3a9b698e092322aea88 (patch)
tree13323f839f63d0d363517af81de317f0ec17a415 /src/benchmarks/espresso/sminterf.c
parent77ac9ce0a5c55d4f79f8fb8f7daa59ddb53cb507 (diff)
downloadallocbench-de7208a60eca11aa8014e3a9b698e092322aea88.tar.gz
allocbench-de7208a60eca11aa8014e3a9b698e092322aea88.zip
add espresso benchmark
Diffstat (limited to 'src/benchmarks/espresso/sminterf.c')
-rw-r--r--src/benchmarks/espresso/sminterf.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/benchmarks/espresso/sminterf.c b/src/benchmarks/espresso/sminterf.c
new file mode 100644
index 0000000..96e77fa
--- /dev/null
+++ b/src/benchmarks/espresso/sminterf.c
@@ -0,0 +1,35 @@
+#include "espresso.h"
+
+
+pset
+do_sm_minimum_cover(A)
+pset_family A;
+{
+ sm_matrix *M;
+ sm_row *sparse_cover;
+ sm_element *pe;
+ pset cover;
+ register int i, base, rownum;
+ register unsigned val;
+ register pset last, p;
+
+ M = sm_alloc();
+ rownum = 0;
+ foreach_set(A, last, p) {
+ foreach_set_element(p, i, val, base) {
+ (void) sm_insert(M, rownum, base);
+ }
+ rownum++;
+ }
+
+ sparse_cover = sm_minimum_cover(M, NIL(int), 1, 0);
+ sm_free(M);
+
+ cover = set_new(A->sf_size);
+ sm_foreach_row_element(sparse_cover, pe) {
+ set_insert(cover, pe->col_num);
+ }
+ sm_row_free(sparse_cover);
+
+ return cover;
+}