The website defines the signature for feqrel to be: int feqrel(X)(X x, X y); It requires x and y to be the same type. But the variables we are working with are NOT the same type. This is what started the whole debate in the first place. I tested approxEqual and it works. Just have to be careful with the precision one uses.