Thanks for the suggestions, guys. Ultimately, I think this is a flaw in the physics simulation -- I ran further tests, and it's possible to get the ball flying at ridiculous speeds. If that ball is the only thing moving, it shouldn't be possible for
|v(final)| to be greater than
|v(initial)|... unless the mass of the ball is being converted into kinetic energy (E=MC^2 after all
).
I *think* I just need to go with a system of c_move()s. Alas!