Returns a maximum on the trace distance between this effect's input

and output.

This method attempts a number of strategies to calculate this value.

Strategy 1:

Use the effect's _trace_distance_bound_ method.

Strategy 2:

If the effect is unitary, calculate the trace distance bound from the eigenvalues of the unitary matrix.

val The effect of which the bound should be calculated

If any of the strategies return a result that is not Notimplemented and not None, that result is returned. Otherwise, 1.0 is returned. Result is capped at a maximum of 1.0, even if the underlying function produces a result greater than 1.0