Update Home authored by Dean Samuel Schmitz's avatar Dean Samuel Schmitz
# Method Implementation Documentation
# Home
Here you can find all the documentation sites for the implemented mlpack methods of this libraray.
[[_TOC_]]
In the project they can be found under :
This is the documentation for the Project Prolog MLpack Library.
`/src/methods/name_of_method`
Here you can find documentaion on the used Datatypes, a detailed documentation for the available Methods and for the helper files.
# Quickstart
## Todo
# Data Types
To connect mlpack and SICStus prolog i used the c interface of SICStus which can convert prolog datatypes to c datatypes and vise versa.
[Here](https://sicstus.sics.se/sicstus/docs/latest4/html/sicstus.html/Conversions-between-Prolog-Arguments-and-C-Types.html) you can find a list of the available conversion types.
## Extra Symbols
* +
is the symbol for inupting a concret value from prolog to c/c++
* -
is the symbol for inputing a variable from prolog to c/c++ that then gets assigned a value in one c side, that then can be used on the prolog side.
* \[-\]
is the symbol for an output value from c/c++ to prolog, in its function very similar to -.
## Data Types
* **_integer_**
are the normal numbers 1,2,3...
c/c++ : _SP_integer_
* **_float_**
are the numbers like 0.0, 1.2, 5.7...
full definition prolog : float_32 shortend to float32 since this has the correct Byte size for its counter part double
<span dir="">When selecting and naming the methods i tried to follow the scheme of the python mlpack documentation.</span>
c/c++ : _double_
* **_string_**
are just atoms like: word, hello, nice7...
c/c++ : _char const \*_
* **_integer(bool)_**
there are no bool atoms in Prolog that could translate to bool in c, so i chose integer numbers as replacement with 1 = true and 0(or any other int number) = false
c/c++ : _SP_integer (1)true, (0)false_
* **_matrix_**
is defined a just a long list/vector where you specify its row numbers
currently on the prolog side you have to convert a normal list like \[1, 2, 3\] to a float_array with the help of some helper predicates in helper.pl.
input :
* prolog : _+pointer(float_array) (converted list), +integer (list length), +integer (Rows)_
* c/c++ : _float \* array, SP_integer size, SP_integer rows_
output :
* prolog : _-pointer(float_array) (converted list), -integer (Columns), -integer (Rows)_
* c/c++ : _float \*\*array, SP_integer \*colums, SP_integer \*rows_
* **_vector_**
currently on the prolog side you have to convert a normal list like \[1, 2, 3\] to a float_array with the help of some helper predicates in helper.pl.
prolog : _pointer(float_array) (converted list), integer (list length)_
c/c++ : _float \*array, SP_integer size_
# Prolog Methods
Here you can find all the documentation sites for the implemented mlpack methods of this libraray.
In the project they can be found under :
`/src/methods/name_of_method`
## Classification
* [x] [Adaboost](https://gitlab.cs.uni-duesseldorf.de/stups/abschlussarbeiten/prolog-mlpack-libary/-/wikis/PrologMethods/Classification/adaboost)
......@@ -71,4 +142,8 @@ In the project they can be found under :
* [x] [NCA](https://gitlab.cs.uni-duesseldorf.de/stups/abschlussarbeiten/prolog-mlpack-libary/-/wikis/PrologMethods/Transformation/nca)
* [x] [PCA](https://gitlab.cs.uni-duesseldorf.de/stups/abschlussarbeiten/prolog-mlpack-libary/-/wikis/PrologMethods/Transformation/pca)
* [x] [Radical](https://gitlab.cs.uni-duesseldorf.de/stups/abschlussarbeiten/prolog-mlpack-libary/-/wikis/PrologMethods/Transformation/radical)
* [x] [Sparse_Coding](https://gitlab.cs.uni-duesseldorf.de/stups/abschlussarbeiten/prolog-mlpack-libary/-/wikis/PrologMethods/Transformation/sparse_coding)
\ No newline at end of file
* [x] [Sparse_Coding](https://gitlab.cs.uni-duesseldorf.de/stups/abschlussarbeiten/prolog-mlpack-libary/-/wikis/PrologMethods/Transformation/sparse_coding)
# Helper Functions
## Todo
\ No newline at end of file