From 323b9881356fe964cf83922832b947646d70cbf0 Mon Sep 17 00:00:00 2001
From: Jakhes <dean.schmitz@schmitzbauer.de>
Date: Mon, 19 Sep 2022 15:19:28 +0200
Subject: [PATCH] Updating the helper functions

---
 src/helper_files/helper.cpp           | 41 ++++++++++++++++++++++++++-
 src/helper_files/helper.hpp           |  8 ++++++
 src/methods/perceptron/perceptron.cpp |  8 ++----
 3 files changed, 50 insertions(+), 7 deletions(-)

diff --git a/src/helper_files/helper.cpp b/src/helper_files/helper.cpp
index b421ff7..59681ca 100644
--- a/src/helper_files/helper.cpp
+++ b/src/helper_files/helper.cpp
@@ -1,4 +1,4 @@
-
+#include <sicstus/sicstus.h>
 #include "helper.hpp"
 
 // adding some testing to the functions
@@ -20,6 +20,7 @@ float *convertToArray(colvec vec)
 	}
 	return arr;
 }
+
 float *convertToArray(rowvec vec)
 {
 	colvec newVec = conv_to<colvec>::from(vec);
@@ -94,3 +95,41 @@ mat convertArrayToMat(float *arr, int vecSize, int rowCount)
 	}
 	return matrix;
 }
+
+void returnMatrixInformation(mat matrix, float **mat, SP_integer *matColNum, SP_integer *matRowNum)
+{    
+    // return the Matrix dimensions
+    *matColNum = matrix.n_cols;
+    *matRowNum = matrix.n_rows;
+    
+    // return the Matrix as one long Array
+    *mat = convertToArray(matrix);
+}
+
+void returnMatrixInformation(Mat< size_t > matrix, float **mat, SP_integer *matColNum, SP_integer *matRowNum)
+{    
+    // return the Matrix dimensions
+    *matColNum = matrix.n_cols;
+    *matRowNum = matrix.n_rows;
+    
+    // return the Matrix as one long Array
+    *mat = convertToArray(matrix);
+}
+
+void returnVectorInformation(vec vector, float **vecArr, SP_integer *vecArrSize)
+{    
+    // return the Matrix dimensions
+    *vecArrSize = vector.size();
+    
+    // return the Matrix as one long Array
+    *vecArr = convertToArray(vector);
+}
+
+void returnVectorInformation(Row< size_t > vector, float **vecArr, SP_integer *vecArrSize)
+{    
+    // return the Matrix dimensions
+    *vecArrSize = vector.size();
+    
+    // return the Matrix as one long Array
+    *vecArr = convertToArray(vector);
+}
\ No newline at end of file
diff --git a/src/helper_files/helper.hpp b/src/helper_files/helper.hpp
index 0a7d8f5..234cbad 100644
--- a/src/helper_files/helper.hpp
+++ b/src/helper_files/helper.hpp
@@ -28,4 +28,12 @@ Row<size_t> convertArrayToVec(float *arr, int vecSize);
 
 mat convertArrayToMat(float *arr, int vecSize, int rowCount);
 
+void returnMatrixInformation(mat matrix, float **mat, SP_integer *matColNum, SP_integer *matRowNum);
+
+void returnMatrixInformation(Mat< size_t > matrix, float **mat, SP_integer *matColNum, SP_integer *matRowNum);
+
+void returnVectorInformation(vec vector, float **vecArr, SP_integer *vecArrSize);
+
+void returnVectorInformation(Row< size_t > vector, float **vecArr, SP_integer *vecArrSize);
+
 #endif
diff --git a/src/methods/perceptron/perceptron.cpp b/src/methods/perceptron/perceptron.cpp
index 789cf0a..2c8630c 100644
--- a/src/methods/perceptron/perceptron.cpp
+++ b/src/methods/perceptron/perceptron.cpp
@@ -116,10 +116,6 @@ void weights(float **weightsMatArr, SP_integer *weightsMatColNum, SP_integer *we
     // create the ReturnMat
     mat weightsReturnMat = perceptronGlobal.Weights();
     
-    // return the Matrix dimensions
-    *weightsMatColNum = weightsReturnMat.n_cols;
-    *weightsMatRowNum = weightsReturnMat.n_rows;
-    
-    // return the Matrix as one long Array
-    *weightsMatArr = convertToArray(weightsReturnMat);
+    // return the Mat
+    returnMatrixInformation(weightsReturnMat, weightsMatArr, weightsMatColNum, weightsMatRowNum);
 }
-- 
GitLab