Draft: Fix floating point error domain inequality bug
As it turns out, in Python
1. / i * i is not exactly one for many integers, for example 49. In the range of 1-10000, this is true for 1178 ints. When creating an RGSpace
d with the shape
d == d.get_default_codomain().get_default_codomain() is not necessarily true, because of potentially unequal
This is problematic since harmonic transform operators constructed with
domain=d.get_default_domain() without giving an explicit target will for many values of
i have a target unequal from
To alleviate this, this patch modiefies the
domain.__eq__() function to compare
__hash__() return values instead of manually comparing domain values and modiefies the
domain.__hash__() function to round the
distances entries to 15 decimals prior to hashing.
If using the hash in the comparison is unfavorable because of its performance impact,
__eq__() could be restored to is previous state and the distance rounding be implemented in it, too.
@mtr: what do you think about this patch? Is there an obviously better solution?