Directory structure
Top level folders
There are really two folders with sources:
srcfor the programsdocsfor the documentation
src folder
Grumps is open source. If you clone the repository at the github site you will have accesss to the full directory tree.
Within src you will find the main package file Grumps.jl plus includes.jl, which loads all source code, and exports.jl which contains all exported symbols, i.e. symbols that you can use directly in your program without prefacing it with Grumps..
Beyond that, you will find several folders in src:
packages: loads all packagescommon: loads code that is common to several estimatorsestimators: code that is specific to one estimatorintegrators: code that is specific to one integrator
common folder
Within common there are a number of folders depending on the role they play in the program. These are listed below.
arrayutilities for dealing with arraysdatadata handlingearlycode that should be read and processed before other codeerrorerror handlingestcode that gets called to compute estimatorsimportsimports from other packages, mostlyBaseinferencestandard errors and suchintegrationnumerical integrationioreading data from and to filesoptimoptimizationprobscomputation of choice probabilitiessolhandling solution objectspacedealing with objects that reserve space ahead of timethreadsmultithreading objectstreecontains code to print object typestypescontains code that defines object typesutilscontains miscellaneous utilities
estimators folder
The estimators folder contains a number of folders, one per estimator. Each folder corresponds to a specific estimator. For instance, cler contains code specific to the main Grumps estimator.
integrators folder
The integrators folder contains folders, one per integration method, for any integrators beyond the default integrators, which are handled under common.