partitioning algorithm
Lei Yang
   see mscad page