以下に、プログラム(オイラー法)の一部を示す。

G = 6.67e-11;
M = 5.977e24; //地球の質量(kg)
GM = G*M;
dt = 1;
//1Sec間の移動を計算
GMdt = -GM*dt;
sat.P.X = 6.57e6; //地球の半径+200km
sat.P.Y = 0;
sat.P.Z = 0;
sat.V.X = 0; //初速7.92km/s
sat.V.Y = 6e3;
sat.V.Z = 5.17e3;
for(n=0;n<400000;n++)
{
for(i=0;i<600;i++)
{
R =
sat.P.X*sat.P.X+sat.P.Y*sat.P.Y+sat.P.Z*sat.P.Z;
// r = sqrt(R);
// w = GMdt/(r*R);
// sat.dmy1 = R*1e-9;
w = GMdt/(sqrt(R)*R);
sat.V.X += w*sat.P.X;
sat.P.X += sat.V.X*dt;
sat.V.Y += w*sat.P.Y;
sat.P.Y += sat.V.Y*dt;
sat.V.Z += w*sat.P.Z;
sat.P.Z += sat.V.Z*dt;
}
}

平方根と除算の影響をみるために、wの計算をコメントアウトすると
Rはループ内で使われないことになり、コンパイラの最適化により不要な行と判断されてしまう。
そのため、ダミーでsat.dmy1への代入とループの外でsat.dmy1を表示させることで最適化による
省略を阻止する(しかし乗算と加算がそれぞれ1回加わる)