I've been exploring the idea of using Szudzik's pairing function as a rolling hash. I have a series of integers as in:
$ 1,2,3,4,5 $
The idea is to apply the pairing function (nice online implementation here) to integers, using the result as the first input to the next call. As in (given the input above):
$ f(1,2) = p_{1,2} $
$ f(p_{1,2},3) = p_{2,3}$
$ f(p_{2,3},4) = p_{3,4}$
$...$
The problem is, the interim $p_{i,j}$ values grow very quickly and they exceed the limits of 64 bit integers after only a few applications of the pairing function.
I noticed that if I use a large negative number as the first element of the pair though, like the seed value of a random random generator implementation, the growth rate is much, much smaller, and my interim values remain rather close to their initial large negative seed value, if I may call it that. This allows me to hash much larger sets of input. You can use the above link to observe this with a pair such as $(-100000000,1)$ as the starting point.
However, I've seen various statements implying that Cantor and Szudzik do not 'work' with negative integers, such as this one and there are suggested changes to allow the negative axis to be used for output values, but those changes do not change the very quick growth of interim values (in both and negative axis).
So given that using a negative seed in my clueless attempt to use a pairing function as a rolling hash, I'd really like to know what would be the problem in that case. I.e. What does 'not working' mean when negative input is used as I've done? Am I losing the uniqueness? Is it some other property of the function that no longer holds? I do not have the necessary level of math to figure this out, so some explanation would allow me to understand if I can use this function in this very specific scenario: hashing a number of integers to a single one, while using computer representation of integers efficiently (i.e. not overflowing).