random_nn_scaling, random_orthant_game,
random_positive_orthant_game, random_translation)
-EPSILON = 2*2*RANDOM_MAX*options.ABS_TOL
+EPSILON = (1 + RANDOM_MAX)*options.ABS_TOL
"""
This is the tolerance constant including fudge factors that we use to
determine whether or not two numbers are equal in tests.
-The factor of two is because if we compare two solutions, both
-of which may be off by ``ABS_TOL``, then the result could be off
-by ``2*ABS_TOL``. The factor of ``RANDOM_MAX`` allows for
-scaling a result (by ``RANDOM_MAX``) that may be off by
-``ABS_TOL``. The final factor of two is to allow for the edge
-cases where we get an "unknown" result and need to lower the
-CVXOPT tolerance by a factor of two.
+Often we will want to compare two solutions, say for games that are
+equivalent. If the first game value is low by ``ABS_TOL`` and the second
+is high by ``ABS_TOL``, then the total could be off by ``2*ABS_TOL``. We
+also subject solutions to translations and scalings, which adds to or
+scales their error. If the first game is low by ``ABS_TOL`` and the
+second is high by ``ABS_TOL`` before scaling, then after scaling, the
+second could be high by ``RANDOM_MAX*ABS_TOL``. That is the rationale
+for the factor of ``1 + RANDOM_MAX`` in ``EPSILON``. Since ``1 +
+RANDOM_MAX`` is greater than ``2*ABS_TOL``, we don't need to handle the
+first issue mentioned (both solutions off by the same amount in opposite
+directions).
"""
# Tell pylint to shut up about the large number of methods.