Double rod length capability of 4 byte integer version

This uses unsigned long instead of long, effectively making maximum
diagonal rod length about 0.8 meters instead of 0.4 meters, without
performance penalty or loss of accuracy.