あ、tmp = (tmp >= 0) ? tmp : -tmp;  のところが分かりにくかったら
if( tmp < 0 ) tmp = -tmp; って変えてね
むしろこっちのほうがいいな