[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
3-way arithmetic IF
I need to compare two integers x and y, and perform routine 1
if x<y, routine 2 if x=y, and routine 3 if x>y. X and Y are
bignums on the order of six words long. The operation must be
as fast as possible.
Testing x<y takes about 85-95 microseconds;
testing x=y takes about 79-83 microseconds;
total worst-case time of about 178 microseconds.
Evaluating (signum (- x y)) takes about 175 microseconds.
Question: Is there a low-level arithmetic IF somewhere down in
the guts of the machine, that supports a single </=/> comparison
between two numbers and then switches control three ways accordingly?
[Disclaimer: Times aren't official, and the decimal could be off.]