anchor.diff:  		inverse_inertia_tensor = InverseInertia
   	} = State,
   
  -	LinearVelocity = LinearMomentum * InverseMass,
  +	LinearVelocity = vector:multiply(InverseMass, LinearMomentum),
   
   	AngularVelocity = vector:multiply(InverseInertia, AngularMomentum),
   	{AngularVelocityX, AngularVelocityY, AngularVelocityZ} = AngularVelocity,
  
positive.code: 	#physical{
  		position = Position,
  		linear_velocity = Velocity,
  		orientation = Orientation,
  		angular_momentum = AngularMomentum
  	} = State,
  	
  	{Velocity1, Force1, Spin1, Torque1, State1} = evaluate(0, 0, 0, 0, 0, State),
  	{Velocity2, Force2, Spin2, Torque2, State2} = evaluate(TimeDelta * 0.5, Velocity1, Force1, Spin1, Torque1, State1),
  	{Velocity3, Force3, Spin3, Torque3, State3} = evaluate(TimeDelta * 0.5, Velocity2, Force2, Spin2, Torque2, State2),
  	{Velocity4, Force4, Spin4, Torque4, State4} = evaluate(TimeDelta, Velocity3, Force3, Spin3, Torque3, State3),
  
  	NewVelocity = 1.0 / 6.0 * (Velocity1 + 2.0 * (Velocity2 + Velocity3) + Velocity4),
  	NewAcceleration = 1.0 / 6.0 * (Force1 + 2.0 * (Force2 + Force3) + Force4),
  	NewSpin = 1.0 / 6.0 * (Spin1 + 2.0 * (Spin2 + Spin3) + Spin4),
  	NewTorque = 1.0 / 6.0 * (Torque1 + 2.0 * (Torque2 + Torque3) + Torque4),
  
  	State4#physical{
  		position = Position + NewVelocity * TimeDelta,
  		linear_velocity = Velocity + NewAcceleration * TimeDelta,
  		orientation = quaternion:unit(Orientation + NewSpin * TimeDelta),
  		angular_momentum = AngularMomentum + NewTorque * TimeDelta
  	}.
  
negative.code: % -------------------------------------------------------------------------
  
  -include("log.hrl").
  -include("pre_physics.hrl").
  
  %% ------------------------------------------------------------------------
  %% External API
  