I am not sure if it is how it is supposed to be, but I think TMath::AreEqualRel does not work for zeroes: TMath::AreEqualRel(0,0, anything). Looking at the sourcecode:
return TMath::Abs(af-bf) < 0.5*relPrec*(TMath::Abs(af)+TMath::Abs(bf));
for two zeroes it returns 0<0, which is always false. <= would solve the problem, however than it is a slightly different comparison The question is: is it currently how it was supposed to be - the function not working properly for two zeroes?