Gilgalad/movementStrategy
Gilgalad uses goto wave surfing, which I chose because it doesn't waste time recalculating large portions of the movement path every turn, however, it does most of its calculations in one turn, which means that it has trouble with skipped turns even though the average time is much less than the allowed time per turn. To make up for this, the second wave is surfed in a limited fashion. Currently, Gilgalad will take at most the twenty best points on the first wave, and then calculates the minimum danger of the stop immediately point and the final points that could be reached while stopping for the second wave.
For estimating the dangers, Gilgalad currently uses twelve classification schemes. It uses the K Nearest Neighbors algorithm, with many of the weights based off of Diamond.
To calculate the dangers, Gilgalad uses atan (which is the integral of 1 / (x^2 + 1)). This allows precise danger calculations which are easily adapted to bullet shadows.
A feature, which I think is unique, is that it calculates the enemy gun's hit rate taking MEA into account and uses this as part of the flattener enabling test.
A new feature that is currently in the dev version is variable bandwidth.