1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
namespace GEO {
/**
\page geogram_design Design principles
Geogram is designed with the following principles in mind (some of them
borrowed from the "Futurist Programmer" manifesto and programming notes,
see http://www.graficaobscura.com/future/index.html and
http://www.graficaobscura.com/future/futnotes.html):
- Make it as simple as possible (but not simpler)
- Make it as easy to use as possible
- Make it as easy to compile as possible
- Maximize speed
- Minimize memory consumption
- Minimize number of lines of code
- Minimize number of C++ classes
- Systematically document all classes, all functions and all parameters
- Systematically document the implementation of all algorithms, with
relevant bibliographic references when applicable
- Assertion checks everywhere
- Zero warnings with all compilers / platforms / maximum level of
warnings activated
- Perform systematic non-regression testing and memory checking, using
a continuous integration platform
The algorithms implemented in Geogram are specialized and tuned for most common
uses.
How does it compare to other geometry libraries ? Some elements
[here](https://github.com/BrunoLevy/geogram/wiki/FAQ#how-geogram-compares-with-other-geometric-programming-libraries-)
*/
}
|