I'm trying to replicate a implementation of integer calculi of ray-triangle intersection and I'm basing my code on the work of Johannes Hanika (https://jo.dreggn.org/home/2007_master.pdf).
But I having a problem that I think it is in the following lines of Hanika's implementation:
long long int u = (long long int)e1p*kq - (long long int)e1q*kp;
long long int v = (long long int)e2q*kp - (long long int)e2p*kq;
I believe these products should have some sort of compensation, something like right shifting by (m - 1), as it has in others sections of the code.
I've made this compensation in my code, and it works only this way.
Someone here has ever implemented this code of his? Or have any guesses for this problem?