All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Description of Modules

SG++ is grouped into several modules.

This ensures

  • Modularity - not all parts are required for every task
  • Usability - not everything has to be compiled every time
  • Flexibility - only parts of SG++ can be shipped
  • Correctness - at least to some degree; if some part is modified, it will not influence others

The modules correspond to the corresponding namespaces in C++. Roughly, all files belonging to a namespace belong to the respective module. But a module can contain files belonging to some another namespace, especially static factory methods in the namespace sgpp::op_factory.

The modules can depend on each other. Especially all depend on the base module. Libraries are generated for all modules. The following modules are available:

Folder structure

Please note that the modularization results in a somewhat unconventional folder structure. Keeping


as "modular" as possible requires to have everything belonging to a module below that directory. This especially applies to the src folder. Its subdirectories reflect the namespaces. Therefore, the module name reappears once again:


Creating new modules