.. _makingModules-5:
Support Files
=============
The folder ``src/architecture/utilities`` contains a number of C code support libraries that simplify the mathematics of writing Xmera modules. This page highlights some common libraries used.
`astroConstants.h`
Contains a range of orbital mechanics related variable definition.
`eigenMRP.h`
Provides MRP capabilities to the `Eigen library `__.
`eigenSupport.h`
Provides a range of helper function to convert between C array variables and `Eigen library `__ vectors and matrices.
`discretize.h`
Provides functions to discretize a real number.
`gauss_markov.h`
Provides functions to apply a second-order bounded Gauss-Markov random walk on top of an upper level process.
`geodeticConversion.h`
Provides a collection of functions to convert to and from planet centered frames.
`keplerianOrbit.h`
Class that represents an elliptical orbit and provides a coherent set of common outputs such as position and velocity, orbital period, semi-parameter, etc. It uses the utility orbitalMotion to do orbital element to position and velocity conversion.
`linearAlgebra.h`
Provides a collection of functions to perform 2D, 3D, 4D and N-dimensional matrix math in C.
`macroDefinitions.h`
Provides a collection of convenient macro definitions.
`orbitalMotion.h`
Provides a collection of orbital mechanics related functions.
`rigidBodyKinematics.h`
Provides a collection of rigid body kinematics transformations. This includes functions to map between a range of attitude coordinates.
`saturate.h`
Used to saturate an output variable.
`signalCondition.h`
Provides a low-pass filter to an output variable.
`simDefinitions.h`
Provides common simulation related definitions such as default epoch states, etc.