Update Home authored by Dean Samuel Schmitz's avatar Dean Samuel Schmitz
......@@ -8,7 +8,34 @@ Here you can find documentaion on the used Datatypes, a detailed documentation f
# **_Quickstart_**
## Todo
How to get the project running:
1. Clone the project onto your system
2. Have MLpacks system Version installed
3. Have SICStus prolog installed (at least 4.7.1)
4. Have Ensmallen C++ Libary installed
(Required by the Methods Linear_SVM, LMNN, Logistic_regression and NCA)
5. Change the path Variable in the root folder Makefile to your absolute path to the SICStus splfr tool
6. Run the root folder Makefile
After that you can use each Method by loading their module with SICStus e.g.
```prolog
:- use_module('path/to/.../src/methods/dbscan/dbscan.pl').
```
If you want to edit the Project then the steps are almost the same except you should also install the Eclipse IDE SICStus integration Spider.
Since it makes writing and running the prolog Code easier.
To test all methods there is a test_all.pl file in the root directory that you can compile with SICStus and then call :
```prolog
run_tests.
```
Just make sure the SICStus Toplevel is the prolog-mlpack-libary root directory. (If not it will cause the predicate open/3, for opening files, to not find the iris2.csv)
# **_Data Types_**
......@@ -26,29 +53,29 @@ To connect mlpack and SICStus prolog i used the c interface of SICStus which can
## Data Types
* **_integer_**
* **_Integer_**
are the normal numbers 1,2,3...
c/c++ : _SP_integer_
* **_float_**
* **_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
c/c++ : _double_
* **_string_**
* **_String_**
are just atoms like: word, hello, nice7...
c/c++ : _char const \*_
* **_integer(bool)_**
* **_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_**
* **_Matrix_**
is defined a just a long list/vector where you specify its row numbers
......@@ -63,7 +90,7 @@ To connect mlpack and SICStus prolog i used the c interface of SICStus which can
output :
* prolog : _\[\[1,2,3\],\[1,2,3\],...\], DataDimensionality_(Lenght of each DataPoint)
* c/c++ : _float \*\*array, SP_integer \*colums, SP_integer \*rows_
* **_vector_**
* **_Vector_**
When inputing or recieving a vector you just get a normal Prolog List.
......
......