There are currently five types of
algorithms that the AMC can handle, however, the design is
such that adding new algorithm types is easy and expected
for future growth. Each algorithm type can have any number
of algorithm instances, each with its own set of coefficients
and limit values. Some algorithms require the outputs of other
algorithms as additional input, resulting in a dependency tree
that prevents running.