Changes to accomodate new data#51
Conversation
|
Overall looks very reasonable, but there a few comments. (For convenience, let me review both this and #50 together): In the data branch, there is a small readme file that documents the conventions of the data files. I don't care too much which format you choose, but I have to say that storing files in different orders based on whether the separator is It seems like the new data has significantly more digits than what we had before. Is this ever really useful? This might just make the files bigger with little gain, since we still read everything as You will definitely have to increase the version, since this should count as a breaking change. You could consider releasing a temporary version of the data from your branch, and then linking to it here. (These can be removed again so no worries about having to redo this a couple times). This way, we can start testing everything is still working as expected |
|
Just for my own sanity, what is now the conventions you settled on? Why are there still the various cases in the parsing machinery? |
This reverts commit b7899c4.
|
All multiplicity-full cases + the two centers + some Haagerups which the anyonwiki doesn't have are untouched, so in particular their data follow the old convention. The new anyonwiki data are all multiplicity-free, so there's a bunch less columns in the data. The various parsing cases just separate these based on counting columns and fill in the missing ones in the multiplicity-free case. |
|
Also I believe the tests are getting stuck somewhere, since it's hard to imagine the tests now taking almost 2 hours. There's also not much printing in the actions |
… into bd/new-data-changes
… into bd/new-data-changes
Just to be transparent on what's happening now, I added anchors to the regex strings so it will actually return nothing when the match isn't perfect structurally. This means that the parse calls will then return method errors from trying to do something on |
|
Thanks to @VictorVanthilt and the windows terminal I can see that the categories which fail are PMFC{7, 1, 2, 11, x, y} for x=1,2 and y=1,2,3. Notably, PMFC{7,1,2,11,x,4} does pass the tests. They actually don't just fail at the artin braid, but at the hexagon equations. For now I'll ask Gert whether that's an error or if they're actually good on his side. Though I do think it's a good sign we have at least have one unitary solution to this particular category. |
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
|
Great, since tests are finally passing I can explain some of the changes I had to make. I'll summarise here even though I made some data changes as well. It turns out that it was incorrect of me to store one set of F-symbols for the different R-symbols satisfying the hexagon equations. Apparently, there's some gauge freedom which will also change the F-symbols for fixed 'pentagon index' and varying 'hexagon index' in the anyonwiki, which was not the case with the old data. It was quite remarkable that this only raised an issue for the one particular fusion ring I mentioned above, but to be extra careful I have uploaded all the F-symbols now as well. As a consequence, these F-symbol files now necessarily require a hexagon index. I've set the unbraided categories to have hexagon index 0, and the rest match the R-symbols which pair with these of the same hexagon index. I've changed some things in the source code to also keep track of this extra index, and to differentiate between braided and unbraided fusion categories. This way, we don't test braided categories twice, and users still need to explicitly defined unbraided fusion categories as unbraided through It's still correct to not store the pivotal index, as there's only one of these for fixed pentagon and hexagon index which gives a unitary category. I've added a comment on this in the readme. |
|
The one thing that's not being caught by the tests is the commented aliases not existing, so the grouplike pretty printing for D_N and S_N aren't working. @lkdvos since we're breaking things anyway, I'd like to just remove these, along with the |
lkdvos
left a comment
There was a problem hiding this comment.
Considering the Fsymbol changes, I guess it is mostly up to you to evaluate how much of an issue this is, but to me that sounds like a very unwanted property to have, as the structure of our types etc really does reflect the idea that the "fusion category" part of equal pentagon indices are the same. Can we contact Gert and just gauge the Rsymbols correctly?
For the aliases, the main point was not about the pretty-printing, but rather the discoverability of the categories. I'm not sure if this is now less of an issue with the matching with the Anyon wiki, but that would be my main concern.
Otherwise, the main thing that looks still a bit off to me is the combination of the data formats where you just try to parse one and then the other still looks a little silly, and I would advise to stick to one for uniformity and future maintainability, but if it works right now this is also not a hill I will die on.
At least for me, the goal was to be as loyal to the anyonwiki's data as possible, so the only manipulation I've done is to truncate the data since we just work with double precision. I can certainly ask Gert if he has plans to do this gauging, but if it's just for us, then I'd prefer to be as literally close to the anyonwiki as possible.
Similar to my point above, if our data follows the anyonwiki literally, then every category here is as discoverable as it is there. So I think it's fine to limit ourselves to aliases for our own data.
Again somewhat connected to above, I didn't want to manipulate the anyonwiki's data too much, so in particular I respected the multiplicity-free way of storing data. There's already so much data, so adding columns of 1s to all the anyonwiki files will just bloat it even more. But this isn't hard to do, so it's definitely possible! I think either way I will add the script I've been running to convert the anyonwiki data to the ones I've uploaded, so it's reproducible for others in the future, and should be helpful for maintainability. |
|
Sounds all very reasonable to me! For the data format, I indeed forgot about the multiplicity differences, my bad! |
|
Great! If things pass, then we can merge the PR to the data branch first so I can release that, and then make the artifact changes to this PR. |
I know with this that the identification PRs of Chenqi have to be looked at again, but it should in principle be easier this time around.
Should probably first merge #35 so the new data get tested properly.