  We describe a polynomial time algorithm that takes as input a polygon with
axis-parallel sides but irrational vertex coordinates, and outputs a set of as
few rectangles as possible into which it can be dissected by axis-parallel cuts
and translations. The number of rectangles is the rank of the Dehn invariant of
the polygon. The same method can also be used to dissect an axis-parallel
polygon into a simple polygon with the minimum possible number of edges. When
rotations or reflections are allowed, we can approximate the minimum number of
rectangles to within a factor of two.
