Первое замечание: вы не можете избежать вычисления уравнений сторон в той или иной форме, что напрямую связано с классическим «тестом на ориентацию» (https://www.cs.cmu.edu/~quake/robust.html).
В вашем случае 64-битные целые числа позволят избежать переполнения. И если самые большие дельты не превышают 46340, 32 бита достаточно.
Если 64-битная арифметика изначально недоступна, я полагаю, что вы можете реализовать двухэтапный процесс, который может принимать решение, когда это возможно, с помощью 32-битного кода и переключаться на эмуляцию 64-битного кода, когда это невозможно.
Точка находится внутри треугольника, когда три теста ориентации возвращают один и тот же знак. Он находится на контуре, когда один тест возвращает 0, а два других - внутреннее условие. Находится в вершине, когда два теста возвращают 0.
Вы также можете рассмотреть этот ответ https://stackoverflow.com/a/21510010/1196549,, хотя он должен быть адаптирован к целочисленной арифметике с теми же ограничениями, что и выше.
Также обратите внимание, что если у вас есть много точек для размещения в треугольной сетке, ответ будет совсем другим.