ok, hold on. hypercube.top is actually _smaller_ than hypercube.bottom. like screen coordinate system. so that's one mistake in isEquipotent
fixed that one, but still has wrong results
fixes those, but back to square 1 - O(sqrt(n)) cost in the pathological case
bueno. i think i fully got the original algorithm, so let's try to implement that (following this commit), were he have proxy methods for the neighbouring ancestors and parent nodes, assuming these can be implemented in O(log n) as well.
sketchy implementation of original algorithm, with clarification of how to look for "ancestor-siblings". doesn't work yet