This package was written and is copyright by Peter Conrad <conrad@unix-ag.uni-kl.de>. Commercial use in any form is 
strictly forbidden! You may use parts of the code in your own programs for non-commercial use in case you clearly state 
where you got it. Do not release software using parts of the code without the author's explicit consent.
