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