You have heard this one: A train leaves station A and travels with constant velocity v1. A second train leaves station B (at a distance d) and travels in opposite direction with constant velocity v2.
What you may have not heard is that a fly left station A at the same time as the first train (and in the same direction) flying with a constant velocity v3 ( v3>v1 and v3>v2 ). When the fly reached the second train it turned around and kept flying in the opposite direction. When it reached the first train it turned around again, and so forth, until its tragic demise (when the two trains collided).
The question is: what distance has the fly traveled in total (summing all its going and coming back the rails) before meeting its end?
Your function should take as input the scalars v1, v2, v3, and d, and it should return s the total distance traveled by the fly (up to 1% error allowed)