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
+*/
+