Note that `my.div` is NOT standard integer division.
The code computes `floor(a / b)`, where `a` and `b` are floats. This has different behaviour to integer division whenever `a / b` is negative.
I figured this out after rewriting this code using standard integer division :D
Apparently I had a different idea about what standard integer division is. After some Wikipedia, I now don't think there is such a thing as standard integer division...
Are the basis vectors the centers of the nearest large hex in the first ring around the origin hex, b1 being positively offset from the coordinate line and b2 being negatively offset from the coordinate line?