  Separation of the B component of a cosmic microwave background (CMB)
polarization map from the much larger E component is an essential step in CMB
polarimetry. For a map with incomplete sky coverage, this separation is
necessarily hampered by the presence of "ambiguous" modes which could be either
E or B modes. I present an efficient pixel-space algorithm for removing the
ambiguous modes and separating the map into "pure" E and B components. The
method, which works for arbitrary geometries, does not involve generating a
complete basis of such modes and scales the cube of the number of pixels on the
boundary of the map.
