as the negative undef definitions give unwanted results when compared with unsigneds under linux(under windows no problem) they have been changed to a positive number