(Changed in version 2.9.0) The behavior of scanRight
has changed. The previous behavior can be reproduced with scanRight.reverse.
returns the inverse bijection.
returns the inverse bijection.
The returned value is synchronized with the original Bijection, so changes to any of the two will be visible in the other one.
(Changed in version 2.9.0) transpose
throws an IllegalArgumentException
if collections are not uniformly sized.
Represents a Bijection between A and B.
This basically maintains a bi-directional mapping between A and B. This is a common operation throughout Inox, that would be usually done by keeping a mapping and the corresponding reverse mapping. This class abstracts away the details.
This is a true Bijection, which means that at any point in time there is a one-to-one correspondance between each element in A and B. In particular, adding two successive mapping from a1 to b1, and then from a1 to b2, will represent the final bijection of a1 <-> b2. calling getA(b1) should return None at that point, even though it used to map to a1 before.