MFM icon indicating copy to clipboard operation
MFM copied to clipboard

Fix: inverse symmetries

Open mngr777 opened this issue 2 years ago • 2 comments

All symmetries except 90L and 270L are equal to their inverse.

Currently EventWindow.getSiteNumber(Atom&) returns wrong sites for 90R and 270R: A.ulam.txt

I don't know enough group theory, so I just mapped site numbers 1 to 4 under different symmetries and checked their inverses this way: inverse.txt. Full multiplication table for the group:

(s1 * s2)(x) = s1(s2(x))
|---------+------+------+------+------+------+------+------+------|
| s1 \ s2 | 0L   | 90L  | 180L | 270L | 0R   | 90R  | 180R | 270R |
|---------+------+------+------+------+------+------+------+------|
| 0L      | 0L   | 90L  | 180L | 270L | 0R   | 90L  | 180R | 270R |
|---------+------+------+------+------+------+------+------+------|
| 90L     | 90L  | 180L | 270L | 0L   | 90R  | 180R | 270R | 0R   |
|---------+------+------+------+------+------+------+------+------|
| 180L    | 180L | 270L | 0L   | 90L  | 180R | 270R | 0R   | 90R  |
|---------+------+------+------+------+------+------+------+------|
| 270L    | 270L | 0L   | 90L  | 180L | 270R | 0R   | 90R  | 180R |
|---------+------+------+------+------+------+------+------+------|
| 0R      | 0R   | 270R | 180R | 90R  | 0L   | 270L | 180L | 90L  |
|---------+------+------+------+------+------+------+------+------|
| 90R     | 90R  | 0R   | 270R | 180R | 90L  | 0L   | 270L | 180L |
|---------+------+------+------+------+------+------+------+------|
| 180R    | 180R | 90R  | 0R   | 270R | 180L | 90L  | 0L   | 270L |
|---------+------+------+------+------+------+------+------+------|
| 270R    | 270R | 180R | 90R  | 0R   | 270L | 180L | 90L  | 0L   |
|---------+------+------+------+------+------+------+------+------|

Also, comment in PSym.h doesn't match how the symmetries currently work, but I ignored it for now.

mngr777 avatar Nov 11 '23 16:11 mngr777

Well I'm finally digging in here. Apologies for the huge delay, and all the mess to begin with. Software guy lost in algebra land.

So I'm guessing that the intended function of the symmetries shifted over time and the code never tracked that all clearly. For one thing, EW.getSiteNumber(Atom&) didn't exist until ulam 3 or 4.

In any case, A.ulam seems pretty convincing that there's an internal inconsistency.

My worry is that something caused me to do this commit, which appears to be the smoking gun here..

DaveAckley avatar Feb 18 '24 22:02 DaveAckley

No problem, I should have found that commit myself and just ask in Discord or create an issue. Maybe it is related to SPOT code?

mngr777 avatar Feb 20 '24 21:02 mngr777

Return to original and seemingly 'more consistent' interpretation of inverse symmetries.

DaveAckley avatar Jun 09 '24 15:06 DaveAckley

doh did I not actually pull this? or is it not on me to pull? doh

DaveAckley avatar Jun 09 '24 15:06 DaveAckley