F adv motion

Needs careful reviewing by everyone I think. Probably need documentation and annotation too. 
As far as I am aware, in C++, the decimal point tells the compiler that the number should be a decimal and then the 'f' changes the accuracy from double to float. I think you get compliation errors if you leave out the decimal point.