From a9f6c13f8fca978846d1b01f7f4772dcabd92473 Mon Sep 17 00:00:00 2001
From: Jakhes <dean.schmitz@schmitzbauer.de>
Date: Thu, 20 Oct 2022 16:57:02 +0200
Subject: [PATCH] Update prolog file arrangement

---
 src/methods/dbscan/dbscan.pl                 | 11 +++----
 src/methods/emst/emst.pl                     |  7 +++--
 src/methods/fastmks/fastmks.pl               | 31 +++++++++++---------
 src/methods/hoeffding_tree/hoeffding_tree.pl | 29 +++++++++++-------
 src/methods/kde/kde.pl                       | 29 +++++++++++++-----
 src/methods/kernel_pca/kernel_pca.pl         | 18 +++++++-----
 src/methods/kfn/kfn.pl                       | 24 +++++++++------
 src/methods/sparse_coding/sparse_coding.pl   | 22 +++++++++-----
 8 files changed, 107 insertions(+), 64 deletions(-)

diff --git a/src/methods/dbscan/dbscan.pl b/src/methods/dbscan/dbscan.pl
index d3c86b9..425bc43 100644
--- a/src/methods/dbscan/dbscan.pl
+++ b/src/methods/dbscan/dbscan.pl
@@ -16,11 +16,6 @@
 %% definitions for the connected function
 
 
-foreign(dbscan, c, dbscanI(  +float32, +integer, +integer, 
-                            +string, +string, 
-                            +pointer(float_array), +integer, +integer,
-                            -pointer(float_array), -integer, 
-                            -pointer(float_array), -integer, -integer)).
 %% --Input--
 %%              double  epsilon
 %%              int     minPoints
@@ -44,6 +39,12 @@ dbscan(Epsilon, MinPoints, BatchMode, SelectionType, TreeType, DataList, DataRow
         convert_float_array_to_list(Y, Ysize, AssignList),
         convert_float_array_to_2d_list(Z, ZCols, ZRows, CentroidsList).
 
+foreign(dbscan, c, dbscanI(  +float32, +integer, +integer, 
+                            +string, +string, 
+                            +pointer(float_array), +integer, +integer,
+                            -pointer(float_array), -integer, 
+                            -pointer(float_array), -integer, -integer)).
+
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(dbscan, [dbscan]).
diff --git a/src/methods/emst/emst.pl b/src/methods/emst/emst.pl
index 98c8ba7..dcd05b4 100644
--- a/src/methods/emst/emst.pl
+++ b/src/methods/emst/emst.pl
@@ -17,9 +17,6 @@
 %% definitions for the connected function
 
 
-foreign(emst, c, emstI(  +pointer(float_array), +integer, +integer, 
-                        +integer, 
-                        -pointer(float_array), -integer, -integer)).
 %% --Input--
 %%              mat     dataset,
 %%              bool    naive           => (1)true / (0)false
@@ -35,6 +32,10 @@ emst(DataList, DataRows, Naive, ResultsList, YCols) :-
         emstI(X, Xsize, Xrows, Naive, Y, YCols, YRows),
         convert_float_array_to_2d_list(Y, YCols, YRows, ResultsList).
 
+foreign(emst, c, emstI(  +pointer(float_array), +integer, +integer, 
+                        +integer, 
+                        -pointer(float_array), -integer, -integer)).
+
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(emst, [emst]).
diff --git a/src/methods/fastmks/fastmks.pl b/src/methods/fastmks/fastmks.pl
index 70cde77..0923570 100644
--- a/src/methods/fastmks/fastmks.pl
+++ b/src/methods/fastmks/fastmks.pl
@@ -16,14 +16,9 @@
         float32          = float_32,
         float_array      = array(float32).
 
-%% definitions for the connected function
 
+%% definitions for the connected function
 
-foreign(initModel, c, initModelI(       +pointer(float_array), +integer, +integer, 
-                                        +string, 
-                                        +float32, +float32, +float32, +float32, 
-                                        +integer, +integer, 
-                                        +float32)).
 %% --Input--
 %%              mat     referenceData,
 %%              string  kernel          "linear", "polynomial", "cosine", "gaussian", "epanechnikov", "triangular", "hyptan"
@@ -46,13 +41,14 @@ initModel(DataList, DataRows, Kernel, Degree, Offset, Bandwidth, Scale, SingleMo
         convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrows, X)),
         initModelI(X, Xsize, Xrows, Kernel, Degree, Offset, Bandwidth, Scale, SingleMode, Naive, Base).
 
+foreign(initModel, c, initModelI(       +pointer(float_array), +integer, +integer, 
+                                        +string, 
+                                        +float32, +float32, +float32, +float32, 
+                                        +integer, +integer, 
+                                        +float32)).
+
 
 
-foreign(searchWithQuery, c, searchWithQueryI(   +pointer(float_array), +integer, +integer, 
-                                                +integer, 
-                                                -pointer(float_array), -integer, -integer, 
-                                                -pointer(float_array), -integer, -integer, 
-                                                +float32)).
 %% --Input--
 %%              mat     querySet,
 %%              int     k,
@@ -73,11 +69,14 @@ searchWithQuery(DataList, DataRows, K, IndicesList, YCols, KernelsList, ZCols, B
         convert_float_array_to_2d_list(Y, YCols, YRows, IndicesList),
         convert_float_array_to_2d_list(Z, ZCols, ZRows, KernelsList).
 
+foreign(searchWithQuery, c, searchWithQueryI(   +pointer(float_array), +integer, +integer, 
+                                                +integer, 
+                                                -pointer(float_array), -integer, -integer, 
+                                                -pointer(float_array), -integer, -integer, 
+                                                +float32)).
+
 
 
-foreign(searchNoQuery, c, searchNoQueryI(       +integer, 
-                                                -pointer(float_array), -integer, -integer, 
-                                                -pointer(float_array), -integer, -integer)).
 %% --Input--
 %%              int     k
 %%
@@ -94,6 +93,10 @@ searchNoQuery(K, IndicesList, YCols, KernelsList, ZCols) :-
         convert_float_array_to_2d_list(Y, YCols, YRows, IndicesList),
         convert_float_array_to_2d_list(Z, ZCols, ZRows, KernelsList).
 
+foreign(searchNoQuery, c, searchNoQueryI(       +integer, 
+                                                -pointer(float_array), -integer, -integer, 
+                                                -pointer(float_array), -integer, -integer)).
+
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(fastmks, [     initModel,
diff --git a/src/methods/hoeffding_tree/hoeffding_tree.pl b/src/methods/hoeffding_tree/hoeffding_tree.pl
index 39eeb3c..478e731 100644
--- a/src/methods/hoeffding_tree/hoeffding_tree.pl
+++ b/src/methods/hoeffding_tree/hoeffding_tree.pl
@@ -19,10 +19,6 @@
 %% definitions for the connected function
 
 
-foreign(initAndBuildModel, c, initAndBuildModelI(+string,
-                                                +pointer(float_array), +integer, +integer,
-                                                +pointer(float_array), +integer,
-                                                +integer, +integer, +float32, +integer, +integer, +integer, +integer, +integer)).
 %% --Input--
 %%              string  treeType                => "gini-hoeffding", "gini-binary", "info-hoeffding", "info-binary",
 %%              mat     dataset,
@@ -43,14 +39,21 @@ foreign(initAndBuildModel, c, initAndBuildModelI(+string,
 %%              The tree may be trained either in batch mode (which looks at all points before splitting, and propagates these points to the created children for further training), or in streaming mode, where each point is only considered once. (In general, batch mode will give better-performing trees, but will have higher memory and runtime costs for the same dataset.)
 %%
 initAndBuildModel(TreeType, DataList, DataRows, LabelsList, NumClasses, BatchTraining, SuccessProbability, MaxSamples, CheckInterval, MinSamples, Bins, ObservationsBeforeBinning) :-
+        NumClasses >= 0,
+        SuccessProbability >= 0,
+        SuccessProbability =< 1,
+        MaxSamples >= 0,
         convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrownum, X)),
         convert_list_to_float_array(LabelsList, array(Ysize, Y)),
         initAndBuildModelI(TreeType, X, Xsize, Xrownum, Y, Ysize, NumClasses, BatchTraining, SuccessProbability, MaxSamples, CheckInterval, MinSamples, Bins, ObservationsBeforeBinning).
 
+foreign(initAndBuildModel, c, initAndBuildModelI(       +string,
+                                                        +pointer(float_array), +integer, +integer,
+                                                        +pointer(float_array), +integer,
+                                                        +integer, +integer, +float32, +integer, +integer, +integer, +integer, +integer)).
+
+
 
-foreign(classify, c, classifyI(  +pointer(float_array), +integer, +integer,
-                                -pointer(float_array), -integer,
-                                -pointer(float_array), -integer)).
 %% --Input--
 %%              mat     data
 %%
@@ -68,10 +71,12 @@ classify(TestList, TestRows, PredicList, ProbsList) :-
         convert_float_array_to_list(Y, Ysize, PredicList),
         convert_float_array_to_list(Z, Zsize, ProbsList).
 
+foreign(classify, c, classifyI( +pointer(float_array), +integer, +integer,
+                                -pointer(float_array), -integer,
+                                -pointer(float_array), -integer)).
+
+
 
-foreign(train, c, trainI(+pointer(float_array), +integer, +integer,
-                        +pointer(float_array), +integer,
-                        +integer)).
 %% --Input--
 %%              mat     data,
 %%              vec     labels,
@@ -88,6 +93,10 @@ train(DataList, DataRows, LabelsList, BatchTraining) :-
         convert_list_to_float_array(LabelsList, array(Ysize, Y)),
         trainI(X, Xsize, Xrownum, Y, Ysize, BatchTraining).
 
+foreign(train, c, trainI(       +pointer(float_array), +integer, +integer,
+                                +pointer(float_array), +integer,
+                                +integer)).
+
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(hoeffding_tree, [      initAndBuildModel,
diff --git a/src/methods/kde/kde.pl b/src/methods/kde/kde.pl
index 1b145b5..cec5862 100644
--- a/src/methods/kde/kde.pl
+++ b/src/methods/kde/kde.pl
@@ -19,11 +19,7 @@
 %% definitions for the connected function
 
 
-foreign(initAndBuildModel, c, initAndBuildModelI(+float32, +float32, +float32, 
-                                                +string, +string, +string, 
-                                                +integer, 
-                                                +float32, +integer, +float32, +float32,
-                                                +pointer(float_array), +integer, +integer)).
+
 %% --Input--
 %%              float32 bandwidth               => 1.0,
 %%              float32 relError                => 0.05,
@@ -44,12 +40,24 @@ foreign(initAndBuildModel, c, initAndBuildModelI(+float32, +float32, +float32,
 %%              Build the KDE model with the given parameters and then trains it with the given reference data.
 %%
 initAndBuildModel(Bandwidth, RelError, AbsError, KernelType, TreeType, Algorithm, MonteCarlo, McProb, InitialSampleSize, MCEntryCoef, MCBreakCoef, DataList, DataRows) :-
+        Bandwidth > 0.0,
+        RelError >= 0.0, RelError =< 1.0,
+        AbsError >= 0.0,
+        McProb >= 0.0, McProb < 1.0,
+        InitialSampleSize > 0,
+        MCEntryCoef >= 1,
+        MCBreakCoef > 0.0, MCBreakCoef =< 1.0,
         convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrownum, X)),
         initAndBuildModelI(Bandwidth, RelError, AbsError, KernelType, TreeType, Algorithm, MonteCarlo, McProb, InitialSampleSize, MCEntryCoef, MCBreakCoef, X, Xsize, Xrownum).
 
+foreign(initAndBuildModel, c, initAndBuildModelI(+float32, +float32, +float32, 
+                                                +string, +string, +string, 
+                                                +integer, 
+                                                +float32, +integer, +float32, +float32,
+                                                +pointer(float_array), +integer, +integer)).
+
+
 
-foreign(evaluateWithQuery, c, evaluateWithQueryI(+pointer(float_array), +integer, +integer, 
-                                                -pointer(float_array), -integer)).
 %% --Input--
 %%              mat     querySet
 %%
@@ -64,8 +72,11 @@ evaluateWithQuery(QueryList, QueryRows, EstimationList) :-
         evaluateWithQueryI(X, Xsize, Xrownum, Y, Ysize),
         convert_float_array_to_list(Y, Ysize, EstimationList).
 
+foreign(evaluateWithQuery, c, evaluateWithQueryI(+pointer(float_array), +integer, +integer, 
+                                                -pointer(float_array), -integer)).
+
+
 
-foreign(evaluateNoQuery, c, evaluateNoQueryI(-pointer(float_array), -integer)).
 %% --Input--
 %%
 %% --Output--
@@ -80,6 +91,8 @@ evaluateNoQuery(EstimationList) :-
         evaluateNoQueryI(Y, Ysize),
         convert_float_array_to_list(Y, Ysize, EstimationList).
 
+foreign(evaluateNoQuery, c, evaluateNoQueryI(-pointer(float_array), -integer)).
+
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(kde, [ initAndBuildModel,
diff --git a/src/methods/kernel_pca/kernel_pca.pl b/src/methods/kernel_pca/kernel_pca.pl
index be9bfd7..62772b7 100644
--- a/src/methods/kernel_pca/kernel_pca.pl
+++ b/src/methods/kernel_pca/kernel_pca.pl
@@ -17,15 +17,8 @@
 %% definitions for the connected function
 
 
-foreign(kernel_pca, c, kernel_pcaI(      +string, +integer, +integer, +string,
-                                        +float32, +float32, +float32, +float32,
-                                        +pointer(float_array), +integer, +integer,
-                                        -pointer(float_array), -integer, -integer,
-                                        -pointer(float_array), -integer,
-                                        -pointer(float_array), -integer, -integer,
-                                        -integer)).
 %% --Input--
-%%              string  kernel                  "advb","agbadf",
+%%              string  kernel                  "linear","gaussian","polynomial","hyptan","laplacian","epanechnikov","cosine",
 %%              bool    centerTranformedData    => (1)true / (0)false,
 %%              bool    useNystroem              => (1)true / (0)false,
 %%              string  nystroemMethod          "kmeans", "ordered", "random",
@@ -49,6 +42,7 @@ kernel_pca(Kernel, CenterTransformedData, UseNystroem, NystroemMethod, Degree, O
                   EigValList,
                   EigVecList, EigVecCols,
                   NewDimension) :-
+        Bandwidth > 0.0,
         convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrownum, X)),
         kernel_pcaI(Kernel, CenterTransformedData, UseNystroem, NystroemMethod, Degree, Offset, Bandwidth, Scale,
                     X, Xsize, Xrownum,
@@ -60,6 +54,14 @@ kernel_pca(Kernel, CenterTransformedData, UseNystroem, NystroemMethod, Degree, O
         convert_float_array_to_list(EigVal, EigValsize, EigValList),
         convert_float_array_to_2d_list(EigVec, EigVecCols, EigVecRows, EigVecList).
 
+foreign(kernel_pca, c, kernel_pcaI(     +string, +integer, +integer, +string,
+                                        +float32, +float32, +float32, +float32,
+                                        +pointer(float_array), +integer, +integer,
+                                        -pointer(float_array), -integer, -integer,
+                                        -pointer(float_array), -integer,
+                                        -pointer(float_array), -integer, -integer,
+                                        -integer)).
+
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(kernel_pca, [kernel_pca]).
diff --git a/src/methods/kfn/kfn.pl b/src/methods/kfn/kfn.pl
index aeeafa1..838df2d 100644
--- a/src/methods/kfn/kfn.pl
+++ b/src/methods/kfn/kfn.pl
@@ -19,9 +19,7 @@
 %% definitions for the connected function
 
 
-foreign(initAndBuildModel, c, initAndBuildModelI(+string, +string,
-                                                +integer, +integer, +float32,
-                                                +pointer(float_array), +integer, +integer)).
+
 %% --Input--
 %%              string  treeType        => "kd", "vp", "rp", "max-rp", "ub", "cover", "r", "r-star", "x", "ball", "hilbert-r", "r-plus", "r-plus-plus", "spill", "oct",
 %%              string  searchMode      => "naive", "single_tree", "dual_tree", "greedy",
@@ -39,11 +37,12 @@ initAndBuildModel(TreeType, SearchMode, RandomBasis, LeafSize, Epsilon, Referenc
         convert_list_to_float_array(ReferenceList, ReferenceRows, array(Xsize, Xrownum, X)),
         initAndBuildModelI(TreeType, SearchMode, RandomBasis, LeafSize, Epsilon, X, Xsize, Xrownum).
 
+foreign(initAndBuildModel, c, initAndBuildModelI(+string, +string,
+                                                +integer, +integer, +float32,
+                                                +pointer(float_array), +integer, +integer)).
+
+
 
-foreign(searchWithQuery, c, searchWithQueryI(   +pointer(float_array), +integer, +integer,
-                                                +integer,
-                                                -pointer(float_array), -integer, -integer,
-                                                -pointer(float_array), -integer, -integer)).
 %% --Input--
 %%              mat     querySet,
 %%              int     k
@@ -61,10 +60,13 @@ searchWithQuery(QueryList, QueryRows, K, NeighborsList, YCols, DistancesList, ZC
         convert_float_array_to_2d_list(Y, YCols, YRows, NeighborsList),
         convert_float_array_to_2d_list(Z, ZCols, ZRows, DistancesList).
 
-
-foreign(searchNoQuery, c, searchNoQueryI(       +integer,
+foreign(searchWithQuery, c, searchWithQueryI(   +pointer(float_array), +integer, +integer,
+                                                +integer,
                                                 -pointer(float_array), -integer, -integer,
                                                 -pointer(float_array), -integer, -integer)).
+
+
+
 %% --Input--
 %%              int     k
 %%
@@ -80,6 +82,10 @@ searchNoQuery(K, NeighborsList, YCols, DistancesList, ZCols) :-
         convert_float_array_to_2d_list(Y, YCols, YRows, NeighborsList),
         convert_float_array_to_2d_list(Z, ZCols, ZRows, DistancesList).
 
+foreign(searchNoQuery, c, searchNoQueryI(       +integer,
+                                                -pointer(float_array), -integer, -integer,
+                                                -pointer(float_array), -integer, -integer)).
+
 
 %% Defines the functions that get connected from kfn.cpp
 foreign_resource(kfn, [ initAndBuildModel,
diff --git a/src/methods/sparse_coding/sparse_coding.pl b/src/methods/sparse_coding/sparse_coding.pl
index c7f4b4e..5b9c4f0 100644
--- a/src/methods/sparse_coding/sparse_coding.pl
+++ b/src/methods/sparse_coding/sparse_coding.pl
@@ -21,8 +21,7 @@
 
 
 
-foreign(initModelWithTrain, c, initModelWithTrainI(      +pointer(float_array), +integer, +integer,
-                                                        +integer, +float32, +float32, +integer, +float32, +float32)).
+
 %% --Input--
 %%              mat     data,
 %%              int     atoms                   => 15,
@@ -47,8 +46,11 @@ initModelWithTrain(MatList, MatRows, Atoms, Lambda1, Lambda2, MaxIterations, Obj
         convert_list_to_float_array(MatList, MatRows, array(Xsize, Xrownum, X)),
         initModelWithTrainI(X, Xsize, Xrownum, Atoms, Lambda1, Lambda2, MaxIterations, ObjTolerance, NewtonTolerance).
 
+foreign(initModelWithTrain, c, initModelWithTrainI(      +pointer(float_array), +integer, +integer,
+                                                        +integer, +float32, +float32, +integer, +float32, +float32)).
+
+
 
-foreign(initModelNoTrain, c, initModelNoTrainI(+integer, +float32, +float32, +integer, +float32, +float32)).
 %% --Input--
 %%              int     atoms                   => 15,
 %%              float32 lambda1                 => 0,
@@ -71,9 +73,10 @@ initModelNoTrain(Atoms, Lambda1, Lambda2, MaxIterations, ObjTolerance, NewtonTol
         NewtonTolerance > 0,
         initModelNoTrainI(Atoms, Lambda1, Lambda2, MaxIterations, ObjTolerance, NewtonTolerance).
 
+foreign(initModelNoTrain, c, initModelNoTrainI(+integer, +float32, +float32, +integer, +float32, +float32)).
+
+
 
-foreign(encode, c, encodeI(      +pointer(float_array), +integer, +integer, 
-                                -pointer(float_array), -integer, -integer)).
 %% --Input--
 %%              mat     data
 %%
@@ -88,9 +91,11 @@ encode(DataList, DataRows, CodesList, YCols) :-
         encodeI(X, Xsize, Xrownum, Y, YCols, YRows),
         convert_float_array_to_2d_list(Y, YCols, YRows, CodesList).
 
+foreign(encode, c, encodeI(      +pointer(float_array), +integer, +integer, 
+                                -pointer(float_array), -integer, -integer)).
+
+
 
-foreign(train, c, trainI(+pointer(float_array), +integer, +integer, 
-                        [-float32])).
 %% --Input--
 %%              mat     data
 %%
@@ -104,6 +109,9 @@ train(DataList, DataRows, ReturnValue) :-
         convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrownum, X)),
         trainI(X, Xsize, Xrownum, ReturnValue).
 
+foreign(train, c, trainI(+pointer(float_array), +integer, +integer, 
+                        [-float32])).
+
 
 %% Defines the functions that get connected from main.cpp
 foreign_resource(sparse_coding, [       initModelWithTrain,
-- 
GitLab