From ea476a4623e9ad0462bc33c82c0d4564a1fc8e80 Mon Sep 17 00:00:00 2001
From: Christoph Sprunk <sprunkc@informatik.uni-freiburg.de>
Date: Mon, 15 Jul 2013 11:26:14 +0200
Subject: [PATCH] Adding an implementation for egsl_free. It releases all
 unused memory currently held by the egsl_contexts.

---
 sm/lib/egsl/egsl.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/sm/lib/egsl/egsl.c b/sm/lib/egsl/egsl.c
index 5a57f13..c4943b4 100644
--- a/sm/lib/egsl/egsl.c
+++ b/sm/lib/egsl/egsl.c
@@ -299,5 +299,13 @@ double egsl_atm(val v1, size_t i, size_t j){
 	return *egsl_atmp(v1, i, j);
 }
 
-
+void egsl_free(void){
+	int c;
+	for(c=0;c<=max_cid;c++) {
+		for(int i=egsl_contexts[c].nvars; i<egsl_contexts[c].nallocated; i++){
+			gsl_matrix_free(egsl_contexts[c].vars[i].gsl_m);
+		}
+	egsl_contexts[c].nallocated = egsl_contexts[c].nvars;
+	} 
+}
 
-- 
GitLab