crossmatch: use tangent form for better precision