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