Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. Authors make no representations about the suitability of this software for any purpose. It is provided "as is" without expressed or implied warranty.