/*! \page codingrules Coding Rules (Mostly inherited from IT++) In the following sections we describe the naming conventions which are used for files, classes, structures, local variables, and global variables. \section cr_variables Default Naming Rules for Variables Generally, variables are named using lower-case letters and words are separated using under-score. But there are many exceptions, for instance abbreviations or classical matematical notations. Therefore, coding rules for variables are quite free. Examples: \section cr_files Default Naming Rules for Files Files are named using lower-case letters and words are separated using under-score. If an abbreviation is inevitable within file name, it is written with lower-case letters. Source files are named using `.cpp' suffix, whereas header files end with `.h' extension. Examples: \section cr_file_templates Form of the source files For all the library classes, both header file `[filename].h' and source file `[filename].cpp' should be implemented. And the following few rules should be respected Rules considering formatting of the source code itself are stored in the file /system/astylerc, which is a configuration file for code formating utility named ASTYLE. To apply them, download the proper version from its web page http://astyle.sourceforge.net/ \section cr_functions Default Naming Rules for Functions Function names are named using lower-case letters and words are separated using under-score. Abbreviations, when used in function names, are also written with lower-case letters. This rule applies both to stand-alone functions as well as to member functions of classes. Example: \section cr_specialfunctions Convention for sensitive functions For efficiency, some functions may return pointers to internal variables. Such functionality is indicated by underscore as the first letter in the the name. \section cr_classes Default Naming Rules for Classes and Structures Each new word in a class or structure name should always start with a capital letter and the words should not be separated. Abbreviations are written with capital letters. Examples: \section cr_classes_functionality Default Functionality of Classes All classes that are configured by input parameters should include: Explicit destructor functions are not required, unless they are needed. It shall not be possible to use any of the other member functions unless the class has been properly initiated with the input parameters. */