diff --git a/crystal.cpp b/crystal.cpp index da2f5e2f..08df0280 100644 --- a/crystal.cpp +++ b/crystal.cpp @@ -691,9 +691,11 @@ struct hrmap_crystal : hrmap_standard { virtual transmatrix relative_matrix(cell *h2, cell *h1, const hyperpoint& hint) override { if(!crystal3()) return hrmap_standard::relative_matrix(h2, h1, hint); + if(h2 == h1) return Id; for(int i=0; imove(i)) return adj(h1->master, i); if(gmatrix0.count(h2) && gmatrix0.count(h1)) return inverse(gmatrix0[h1]) * gmatrix0[h2]; + println(hlog, "unknown relmatrix, distance = ", celldistance(h1, h2)); return xpush(999); }