Author: Gerd Isenberg
Date: 13:36:14 09/26/03
Go up one level in this thread
An int-cast forces signed shift in any case:
>#define minusMask(a) ((a)>>(sizeof(int)*8-1))
^^
#define minusMask(a) ((int)(a)>>(sizeof(int)*8-1))
>#define ifLessZero(a) ((a) & minusMask(a))
for abs, to avoid overflow to sign bit - it is better to write:
>__forceinline int _abs(int a) {return a - ifLessZero(a+a);}
^^^
__forceinline int _abs(int a) {return a - 2*ifLessZero(a);}
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.