Consider an axis like so:
Now consider an atom placed on the axis at position:
0.0 < pos < 1.0
. The position may be displaced by
which can be any (+ve/-ve) double thus
double newPos = pos + dt;
could possibly not lie within the range
0.0 < newPos < 1.0
Is there any way to implement a wrap around eg. if atom leaves on the right side re-insert on the left without resulting to
(which may be too slow for my case)?
I have a feeling there should be a straight-forward way since when
is an integer (in the sense that there is no fractional part) the position remains unchanged (with wraparound) ie. adding
0.2 + 1.0
) and I can extract the fractional part quickly enough using
double frac = myDouble - ((long) myDouble);
but anything I try doesn't really work on all cases.
Any ideas on this?