Which algorithm does Marlin use to create arcs? I'm writing a paper about a plotter (I use a Prusa i3 with a custom "extruder" aka pen). And I'm supposed to write about the algorithms I/the plotter use(s). I tried reverse engineering, but since I'm not very experienced with this technique I wasn't successful. 
So I'm looking for the algorithm that Marlin uses for its G2/G3 commands.
The algorithm is based on the "Vector rotation by transformation matrix", and this solution is based on a solution from Jens Geisler. The formula for clockwise rotation is:

  

More information about the vector rotation can be found on Wikipedia.