I want to map a set of long integers (say around 100 different values) that can span the entire 64 bit integer range to a much smaller range such as from 0 to 25000 deterministically with almost zero collisions. This operation has to be very fast as well.
Please not that, generating random numbers in the expected range is not a solution, as the original numbers are created by an external system.
EDIT: Would a pairing function such as following qualify above criteria. From this article, it seem to qualify, but I would like some expert advice. http://en.wikipedia.org/wiki/Pairing_function