written by Godmar Back, UofU, Computer Science Department, 1995. Here is the source. Click here for help.