bamps quick reference

bamps is not a small project, and maintainance and future development depend on proper documentation. While large parts of the code feature doxygen comments, from which extensive documentation can automatically be generated, this process is tedious and requires non-negligible amounts of configuration. It also results in documentation that is, in my opinion, not well suited for a C project. And while the presence of the aforementioned doxygen comments in itself represents some amount of in-code documentation, reading through bamps for the first time can be daunting.
This document aims to ease this process, and to serve as a high level introduction to bamps. Newcomers to the project may use it as a jumping-off point for exploring the code by themselves, and hopefully it will also be useful to more experienced developers as a sort-of bamps-handbook.

Data Structures

bamps features several large data structure types, which form the backbone of its infrastructure. The most important structure types are listed below. I suggest starting by looking at the tHypergrid structure, and working your way down.

tHypergrid

The top level structure for domain specific data.

tGrid

Structure representing a single grid/cell.

Utility structures

The types listed above all represent relatively high-level constructs. Much of the data itself is contained in more low-level infrastructure types, such as the tStack type and the tArray type.

tArray

Multidimensional array data

tStack

Single dimensional array of arbitrary type. Provides macro for easy looping.