commit 4e318b9d461b2ca86c9360c5a4a624c578dd9299
parent f88971e9cb00ad536a4dc1fa7d154c723717cf08
Author: Étienne Simon <etienne.jl.simon@gmail.com>
Date:   Sun,  5 May 2013 22:01:24 +0200
Add a main page to the developer documentation.
Diffstat:
2 files changed, 62 insertions(+), 2 deletions(-)
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
@@ -648,7 +648,8 @@ WARN_LOGFILE           =
 # directories like "/usr/src/myproject". Separate the files or directories
 # with spaces.
 
-INPUT                  = @CMAKE_CURRENT_SOURCE_DIR@/../src/
+INPUT                  = @CMAKE_CURRENT_SOURCE_DIR@/../src \
+                         @CMAKE_CURRENT_SOURCE_DIR@/devdoc.cpp
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -786,7 +787,7 @@ INLINE_SOURCES         = NO
 # doxygen to hide any special comment blocks from generated source code
 # fragments. Normal C and C++ comments will always remain visible.
 
-STRIP_CODE_COMMENTS    = YES
+STRIP_CODE_COMMENTS    = NO
 
 # If the REFERENCED_BY_RELATION tag is set to YES
 # then for each documented function all documented
diff --git a/doc/devdoc.cpp b/doc/devdoc.cpp
@@ -0,0 +1,59 @@
+/**
+ * @file
+ * @brief Text and HTML-code for the startpage of the doxygen-documentation.
+ */
+
+
+/**
+@mainpage Developer Documentation
+
+@section presentation Presentation
+Four binaries are built from these sources:
+	- view_ctl (main file: view_ctl.cpp)
+	- supervisor (main file: supervisor.cpp)
+	- test_serialization (main file: test/serialization.cpp)
+	- test_learning (main file: test/learning.cpp)
+
+@section view_ctl View_ctl
+The view controller (@c view_ctl) is the interface to the View database.
+It can execute three basics commands:
+	- Add a view
+	- Delete a view
+	- List all the views
+
+Furthermore, the add command run a View factory which can be run in interactive mode or in detached mode (using a configuration file) to construct the View to be inserted in the database.
+
+@section supervisor Supervisor
+The @c supervisor is the interface to the training and testing algorithms.
+Given a set of View, it can train these views on a Data_set or compute prediction errors.
+Like @ref view_ctl, it operates on a database (from which it gets and updates the View objects) and can be run with a configuration file.
+
+The two interesting functions called by the supervisor are:
+	- Model::stochastic_learn
+	- Model::error
+
+@section kinds Kinds
+In order to link the "viewed" vectors in Data_set (i.e. several vectors representing the same element) with the abstract "views" in Model (i.e. a pair of encoder/decoder.)
+An attribute "kind" is being used, each View has a kind, it is the kind of the viewed objects (e.g. "16x16 mono image from data set XYZ").
+Furthermore, each "concrete" view in Data_set must be labeled with its kind, so that when the @ref supervisor is called, it knows which "concrete" view correspond to which "abstract" view.
+
+@section tests Tests
+Two unit test binaries are compiled.
+
+@c test_serialization tests the serialization of the modules and criteria.
+There is a test for each module/criterion type, the test being:
+	- Create a module/criterion
+	- Write it in a file
+	- Read a new module/criterion from the same file
+	- Compare the original module/criterion with the read one
+
+@c test_learning tests the learning algorithm.
+The test is simple:
+	- Create a Data_set of the logical "and" function
+	- Create a Model with a concept space of dimension 2
+	- Compute the error of the untrained Model on the Data_set
+	- Train the Model on the Data_set
+	- Compute the error of the trained Model on the Data_set
+	- Compare the error of the untrained Model with the error of the trained one
+*/
+