Mesh (self)intersection algorithm?

Campbell Barton (@ideasman42) could you be helpful with telling me what algorithm is used in your implementation for calculating the mesh intersection? From inspecting the code, it seems that the non-BVH-Tree algorithm is the full tri-tri calculation, as in [1]. Is that so? In case of the use of the BVH-Tree, do you have some reference to the algorithm?

[1] S. H. Lo. Automatic mesh generation over intersecting
surfaces. International Journal for Numerical Methods
in Engineering, 38(6):943–954, 1995. ISSN 1097-0207.
doi: 10.1002/nme.1620380605.