Number of CRF polychora

Discussion of known convex regular-faced polytopes, including the Johnson solids in 3D, and higher dimensions; and the discovery of new ones.

Re: Number of CRF polychora

Postby quickfur » Tue Mar 07, 2017 6:50 pm

Nice puzzle. Not sure I know the answer... but there's something about these constructions where you have an initial polytope P, layered on top of a phi-scaled P, and then some other vertex layers to close things up. In that sense, they are all generalizations of teddi (as triangle || phi*triangle || dual triangle).

Am I close? :D
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby Klitzing » Wed Mar 08, 2017 7:32 am

quickfur wrote:Nice puzzle. Not sure I know the answer... but there's something about these constructions where you have an initial polytope P, layered on top of a phi-scaled P, and then some other vertex layers to close things up. In that sense, they are all generalizations of teddi (as triangle || phi*triangle || dual triangle).

Am I close? :D

Well teddi is obviously contained both in the 3||teddi and the tetrahedral ursachoron. But it is mibdi, which is contained in the 3-mibdi-laced-wedge. Sure, mibdi as such is just an ike diminishing as teddi is. So they surely are related somehow by the pentagon logic xfo&#x. - But beyond?

In fact those 3 have a much closer relationship than you assumed so far. ... :nod:

--- rk
Klitzing
Pentonian
 
Posts: 1637
Joined: Sun Aug 19, 2012 11:16 am
Location: Heidenheim, Germany

Re: Number of CRF polychora

Postby Klitzing » Thu Mar 09, 2017 9:34 pm

As there were no further trials :(  
here finally the answer comes ;) :

Code: Select all
                                      o3o           o3o                   o3o           o3o   
                                                                                              
                                                                                              
x3o                         +     x3o                   x3o     =     x3o                   x3o
                                                                                              
           f3o                               f3o                                 f3o           
    o3x           o3x                               o3x                   o3x           o3x   
                                                                                              
                                                                                              
  {3} || teddi              +       tetrahedral ursachoron      =       3-mibdi-laced-wedge   

Nice find, ain't it? 8)

--- rk
Klitzing
Pentonian
 
Posts: 1637
Joined: Sun Aug 19, 2012 11:16 am
Location: Heidenheim, Germany

Re: Number of CRF polychora

Postby quickfur » Thu Mar 09, 2017 10:19 pm

:o So you're saying that 3-mibdi-laced-wedge is just a stacking of tetrahedral ursachoron with {3} || teddi? Haha... and I was under the (wrong) impression that it was elementary! (I.e. can't be decomposed into smaller CRFs).

Now, I wonder if we would get something interesting if we started with an x5o3x ursachoron (don't remember what's the final name we agreed on for this), and stacked it with {6} || x5o3x? Would it be CRF? Can it be made CRF? Will it have nice symmetries?
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby ndl » Mon Mar 11, 2019 1:33 am

If you would give the tetra-ursachoron four of those augments (3||teddi) what would it look like? Would it have pentagonal diprisms? I assume it would be non-convex.
ndl
Trionian
 
Posts: 81
Joined: Tue Nov 27, 2018 2:13 pm
Location: Louisville, KY

Re: Number of CRF polychora

Postby username5243 » Mon Mar 11, 2019 9:37 am

I'm actually not sure - neither tet-ursachoron nor 3||teddi seems to have dichoral angles listed on Klitzing's site as of yet. Anyone up for deriving the relevant angles?
username5243
Trionian
 
Posts: 128
Joined: Sat Mar 18, 2017 1:42 pm

Re: Number of CRF polychora

Postby quickfur » Mon Mar 11, 2019 7:44 pm

The dichoral angle between two adjacent teddies in the octahedral ursachoron is 112.4555°.

I can't seem to find my 3||teddi model... :(
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby ndl » Tue Mar 12, 2019 3:57 am

I've got all the vertices here:

Code: Select all
1.00000000000000000  0.70710678118654752  0.00000000000000000  0.00000000000000000
-1.00000000000000000  0.70710678118654752  0.00000000000000000  0.00000000000000000
0.00000000000000000 -0.70710678118654752  1.00000000000000000  0.00000000000000000
0.00000000000000000 -0.70710678118654752 -1.00000000000000000  0.00000000000000000
0.00000000000000000  1.85122958682191612  0.61803398874989485  1.14412280563536860
0.00000000000000000  1.85122958682191612 -0.61803398874989485  1.14412280563536860
1.00000000000000000  0.43701602444882107  1.61803398874989485  1.14412280563536860
-1.00000000000000000  0.43701602444882107  1.61803398874989485  1.14412280563536860
1.00000000000000000  0.43701602444882107 -1.61803398874989485  1.14412280563536860
-1.00000000000000000  0.43701602444882107 -1.61803398874989485  1.14412280563536860
1.61803398874989485 -0.43701602444882107  1.00000000000000000  1.14412280563536860
1.61803398874989485 -0.43701602444882107 -1.00000000000000000  1.14412280563536860
-1.61803398874989485 -0.43701602444882107  1.00000000000000000  1.14412280563536860
-1.61803398874989485 -0.43701602444882107 -1.00000000000000000  1.14412280563536860
0.61803398874989485 -1.85122958682191612  0.00000000000000000  1.14412280563536860
-0.61803398874989485 -1.85122958682191612  0.00000000000000000  1.14412280563536860
1.61803398874989485  1.14412280563536860  0.00000000000000000  1.85122958682191612
-1.61803398874989485  1.14412280563536860  0.00000000000000000  1.85122958682191612
0.00000000000000000 -1.14412280563536860  1.61803398874989485  1.85122958682191612
0.00000000000000000 -1.14412280563536860 -1.61803398874989485  1.85122958682191612
0.00000000000000000  1.41421356237309505  0.00000000000000000  2.99535239245728471
1.00000000000000000  0.00000000000000000  1.00000000000000000  2.99535239245728471
1.00000000000000000  0.00000000000000000 -1.00000000000000000  2.99535239245728471
-1.00000000000000000  0.00000000000000000  1.00000000000000000  2.99535239245728471
-1.00000000000000000  0.00000000000000000 -1.00000000000000000  2.99535239245728471
0.00000000000000000 -1.41421356237309505  0.00000000000000000  2.99535239245728471


Convex hull in Stella gives me some offending tets rising from each edge of lowest tet in rosette form with inner edge being only 1/phi. Those are not going to be pentagonal dipyramids after all just regular peppies with no way to fit anything in those holes to make it convex.

aug ursa.JPG
aug ursa.JPG (61.65 KiB) Viewed 33175 times
ndl
Trionian
 
Posts: 81
Joined: Tue Nov 27, 2018 2:13 pm
Location: Louisville, KY

Re: Number of CRF polychora

Postby quickfur » Tue Mar 12, 2019 4:27 pm

If you're looking for a CRF that contains pentagonal dipyramids, there's the various augmented 5,10-duoprisms. The 5,10-duoprism admits augmentations with 5-prism pyramids, and since the dichoral angle between the 5-prism and the pentagonal pyramid is exactly 18°, placing two augments on adjacent 5-prisms will result in the pentagonal pyramids of the respective augments lying on the same hyperplane, so they will merge into pentagonal dipyramids. You can have all 10 pentagonal prisms augmented, which produces a CRF with 10 pentagonal dipyramid cells. (The ring of decagonal prisms is also augmentable with 10-prism||5-gon at the same time, so you can have an omniaugmented 5,10-duoprism that contains pentagonal dipyramids and pentagonal cupolae.)
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby mr_e_man » Fri Sep 02, 2022 12:00 am

quickfur wrote:As it turns out, the 10,10-duoprism actually has 11,921,273 augmentations (that's 11.9 million!), which is several times more than the previous count. The reason for this is that the bug in the previous version of the program failed to account for the fact that the rings of the duoprism cannot be rotated independently of each other: a rotation in one ring causes a gyration in the other, and vice versa. Furthermore, some augmentations are chiral, so they contribute 2 to the count rather than just 1 -- they cannot be transformed to each other via rotations only; they require a reflection. There's also a slight reduction in the count because the previous version didn't check the full rotational symmetry of the duoprism, so some combinations were duplicated.

I would not double-count the chiral ones. A left-handed thing is isomorphic to a right-handed thing, in my view.

So would the count be something like 6 million? Aren't "most" augmentations chiral?


Also, can anyone explain or confirm the huge numbers in Mrrl's linked post?
Mrrl wrote:
quickfur wrote:And furthermore, one doesn't have to stick with the 24 apices of the snub 24-cell alone. One could, for example, diminish the 600-cell at an apex that lies between two of the snub 24-cell's icosahedra, leading to a different kind of diminishing. Adding in these other possibilities greatly expand the number of diminishings of the 600-cell (I think mrrl estimated the number to be close to a million).

No, these were closer to 2^100 :) but rectified 600-cell (using only one type of diminishing) beats them - there are proven 2^156 different CRFS with estimations up to 2^500 :)

Here I'm more interested in lower bounds than upper bounds. An obvious upper bound for the rectified 600-cell is 2^720.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby quickfur » Fri Sep 02, 2022 12:27 am

mr_e_man wrote:
quickfur wrote:As it turns out, the 10,10-duoprism actually has 11,921,273 augmentations (that's 11.9 million!), which is several times more than the previous count. The reason for this is that the bug in the previous version of the program failed to account for the fact that the rings of the duoprism cannot be rotated independently of each other: a rotation in one ring causes a gyration in the other, and vice versa. Furthermore, some augmentations are chiral, so they contribute 2 to the count rather than just 1 -- they cannot be transformed to each other via rotations only; they require a reflection. There's also a slight reduction in the count because the previous version didn't check the full rotational symmetry of the duoprism, so some combinations were duplicated.

I would not double-count the chiral ones. A left-handed thing is isomorphic to a right-handed thing, in my view.

So would the count be something like 6 million? Aren't "most" augmentations chiral?

No, I'd say the majority of them are not chiral. I doubt it would be as low as 6 million. My wild guess is that it would still be 10 million or above.

Also, can anyone explain or confirm the huge numbers in Mrrl's linked post?

I believe he calculated a (rather crude) upper bound, just by computing an exponential.

Mrrl wrote:
quickfur wrote:And furthermore, one doesn't have to stick with the 24 apices of the snub 24-cell alone. One could, for example, diminish the 600-cell at an apex that lies between two of the snub 24-cell's icosahedra, leading to a different kind of diminishing. Adding in these other possibilities greatly expand the number of diminishings of the 600-cell (I think mrrl estimated the number to be close to a million).

No, these were closer to 2^100 :) but rectified 600-cell (using only one type of diminishing) beats them - there are proven 2^156 different CRFS with estimations up to 2^500 :)

Here I'm more interested in lower bounds than upper bounds. An obvious upper bound for the rectified 600-cell is 2^720.

A lower bound would be Blind's count of non-adjacent 600-cell diminishings, which is 314 million. This number takes into account all the 600-cell's symmetries, but does not take into account CRF adjacent diminishings. So it is a gross underestimate, considering that the 600-cell can be diminished down to very thin CRF wedges (the 600-cell lunae that I discovered) -- everything in between has to be counted in order to have the full number. The number of combinations is exponential, and I wouldn't be surprised if the final number is significantly more than 314 million.

But certainly, this is nowhere near Mrrl's astronomical 2^100, which is a 31-digit number. :lol: I think his estimate did not account for the symmetries of the 600-cell and/or did not adequately recompense for them.
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby quickfur » Fri Sep 02, 2022 12:39 am

quickfur wrote:
mr_e_man wrote:
quickfur wrote:[...]
Furthermore, some augmentations are chiral, so they contribute 2 to the count rather than just 1 -- they cannot be transformed to each other via rotations only; they require a reflection.
[...]

I would not double-count the chiral ones. A left-handed thing is isomorphic to a right-handed thing, in my view.

So would the count be something like 6 million? Aren't "most" augmentations chiral?

No, I'd say the majority of them are not chiral. I doubt it would be as low as 6 million. My wild guess is that it would still be 10 million or above.
[...]

Actually, I just checked my code again: it does not double count chiral augmentations. I think what I meant when I wrote what was quoted above, is that I corrected the counts because previously it double-counted chiral augmentations, and now it takes chirality into account. So the 11.9 million count actually does not count chiral augmentations twice. If you were to count mirror images separately the final total would be higher.
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby mr_e_man » Fri Sep 02, 2022 12:58 am

quickfur wrote:But certainly, this is nowhere near Mrrl's astronomical 2^100, which is a 31-digit number. :lol: I think his estimate did not account for the symmetries of the 600-cell and/or did not adequately recompense for them.

Well, the symmetry group's size is 14400, so each thing Mrrl counted would have at most 14400 isomorphs he also counted; this would give a lower bound of 2^100 / 14400 ≈ 2^86.

(I like to use 2^10 ≈ 10^3 to convert between binary and decimal. For example, 2^100 = (2^10)^10 ≈ (10^3)^10 = 10^30, which indeed has 31 digits.)


How could we count the triangle-free subsets of the 600-cell's vertices? That would give a lower bound better than 314 million.
Klitzing wrote:Stated differntly, whenever your potential diminishing of the hexacosachoron includes at least a subset of 3 to be cut off vertices, then these ought not form a unit edged triangle.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby quickfur » Fri Sep 02, 2022 1:17 am

mr_e_man wrote:
quickfur wrote:But certainly, this is nowhere near Mrrl's astronomical 2^100, which is a 31-digit number. :lol: I think his estimate did not account for the symmetries of the 600-cell and/or did not adequately recompense for them.

Well, the symmetry group's size is 14400, so each thing Mrrl counted would have at most 14400 isomorphs he also counted; this would give a lower bound of 2^100 / 14400 ≈ 2^86.

(I like to use 2^10 ≈ 10^3 to convert between binary and decimal. For example, 2^100 = (2^10)^10 ≈ (10^3)^10 = 10^30, which indeed has 31 digits.)

I don't know where Mrrl came up with the 2^100 figure; it seems disproportionately large. I wonder if the idea was the take the number of vertices in a 600-cell, which is 120, and subtract some of them to approximately account for not having triangles diminished, which if we assume we subtract 20 vertices, then we have 100 vertices which may either be diminished or not, giving us 2^100. The problem with this rough estimate is that it likely contains a large number of non-CRF subsets, but how many of them are there is unclear from the construction. So it doesn't really tell us very much.

How could we count the triangle-free subsets of the 600-cell's vertices? That would give a lower bound better than 314 million.
Klitzing wrote:Stated differntly, whenever your potential diminishing of the hexacosachoron includes at least a subset of 3 to be cut off vertices, then these ought not form a unit edged triangle.

Unfortunately it's not quite this simple. The 600-cell wedges, for example, do cut away subsets that contain triangles, yet they still remain CRF. So even if we could figure out how many triangle-free subsets there are, it's still only a lower bound, possibly a rather loose one, considering how many more subsets you can have if you include triangles, even if some of those have to be excluded to maintain CRF-ness. It's not a trivial problem. :\
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby quickfur » Fri Sep 02, 2022 3:51 am

quickfur wrote:[...]
Actually, I just checked my code again: it does not double count chiral augmentations. I think what I meant when I wrote what was quoted above, is that I corrected the counts because previously it double-counted chiral augmentations, and now it takes chirality into account. So the 11.9 million count actually does not count chiral augmentations twice. If you were to count mirror images separately the final total would be higher.

I just re-ran my program with chirality checks disabled. It found 23 million augmentations of duoprisms. :o_o: :lol: Almost all of the 23 million are from the 10,10-duoprism -- so apparently you're right, most of it is chiral!
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby mr_e_man » Sun Sep 04, 2022 9:22 pm

The pentagons in x5o3x3o correspond to the vertices in o5o3x3o, or the edges in o5o3o3x. There's a total of 720.

Consider the 120 pentagons in x5o3x3o corresponding to the vertices in o5o3x3o which are deleted to get spidrox. Any of these pentagons (with their magnabicupolic rings) can be deleted, or gyrated, or left alone. This gives us at least 3^120 / 14400 ≈ 10^53 different CRFs!
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby quickfur » Mon Sep 05, 2022 3:39 pm

mr_e_man wrote:The pentagons in x5o3x3o correspond to the vertices in o5o3x3o, or the edges in o5o3o3x. There's a total of 720.

Consider the 120 pentagons in x5o3x3o corresponding to the vertices in o5o3x3o which are deleted to get spidrox. Any of these pentagons (with their magnabicupolic rings) can be deleted, or gyrated, or left alone. This gives us at least 3^120 / 14400 ≈ 10^53 different CRFs!

:o_o:
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby mr_e_man » Tue Sep 13, 2022 4:16 pm

Hold on...
quickfur wrote:But that's only the tip of the iceberg. Something horrible happens when we get to the 10,10-duoprism: the pentagonal magnabicupolic ring augments are, again, very shallow, so both rings can be independently augmented. Furthermore, each augment has two distinct orientations, which greatly increases the number of combinations (now each prism has 3 possible states: unaugmented, ortho-augmented, and gyro-augmented). It's not quite 3^n, because some gyrations are isomorphic to others under the duoprism's symmetry group, but nevertheless, there is an absolutely humongous number of combinations here. Add to this the fact that the intra-ring angles are shallow enough for for adjacent decagonal prisms to be simultaneously augmented and still remain convex, and we have (up to) 3^10 * 3^10 combinations, divided by the size of the symmetry group of the 10,10-duoprism. Of course, the symmetry group is pretty big, but not very big compared to the sheer number of combinations. The final count of 10,10-duoprism CRF augmentations, if my program is correct, is 1,365,377, up to isomorphism(!!) :o_o: :o_o: :o_o: (and not counting the unaugmented 10,10-duoprism). :sweatdrop:

quickfur wrote:Alright, I've fixed the bug in my program (hopefully that's the last of 'em...).

[...]

As it turns out, the 10,10-duoprism actually has 11,921,273 augmentations (that's 11.9 million!), which is several times more than the previous count. The reason for this is that the bug in the previous version of the program failed to account for the fact that the rings of the duoprism cannot be rotated independently of each other: a rotation in one ring causes a gyration in the other, and vice versa. Furthermore, some augmentations are chiral, so they contribute 2 to the count rather than just 1 -- they cannot be transformed to each other via rotations only; they require a reflection. There's also a slight reduction in the count because the previous version didn't check the full rotational symmetry of the duoprism, so some combinations were duplicated.

The 10,10-duoprism's symmetry group's size is 800 (as each ring has 20 symmetries, and the two rings can be swapped, which gives 20 * 20 * 2).

It should be expected that "most" augmentations have no symmetry at all; it's easy to break symmetry. For such an augmentation, all 800 isomorphs would be unequal to each other, thus contributing 800 to the count of 3^10 * 3^10 . So the true count should be very close to 3^20 / 800 ≈ 4.36 million.

But both 1.3 million and 11.9 million are not close to that. Maybe there's another bug in your program?

At least 4.3 million is a lower bound for the 10,10-duoprism.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby quickfur » Tue Sep 13, 2022 5:07 pm

mr_e_man wrote:Hold on...
quickfur wrote:[...]
As it turns out, the 10,10-duoprism actually has 11,921,273 augmentations (that's 11.9 million!), which is several times more than the previous count. The reason for this is that the bug in the previous version of the program failed to account for the fact that the rings of the duoprism cannot be rotated independently of each other: a rotation in one ring causes a gyration in the other, and vice versa. Furthermore, some augmentations are chiral, so they contribute 2 to the count rather than just 1 -- they cannot be transformed to each other via rotations only; they require a reflection. There's also a slight reduction in the count because the previous version didn't check the full rotational symmetry of the duoprism, so some combinations were duplicated.

The 10,10-duoprism's symmetry group's size is 800 (as each ring has 20 symmetries, and the two rings can be swapped, which gives 20 * 20 * 2).

Are you sure you got the symmetry group order right? Take one of the prism cells in one of the rings. You can rotate it around the ring in 10 distinct positions. You can also rotate it in-place in 10 orientations. And reflect it across 10 different planes around its vertical axis, as well as reflect it across the horizontal plane. And rotate it by 90° onto the second ring. I'm not very good with computing the order of symmetry groups, but it would appear to me that this should give us 10*10*10*2*2 = 4000. Did I screw up somewhere?

It should be expected that "most" augmentations have no symmetry at all; it's easy to break symmetry. For such an augmentation, all 800 isomorphs would be unequal to each other, thus contributing 800 to the count of 3^10 * 3^10 . So the true count should be very close to 3^20 / 800 ≈ 4.36 million.

Don't forget that for the 10,10-duoprism, the augments are orientable (meaning they can be in one of two positions that, when other augments are present, represents two distinct augmentations). As the number of augments increase, the number of distinct orientations increase approximately exponentially, until the number of augments nears the saturation point.

But both 1.3 million and 11.9 million are not close to that. Maybe there's another bug in your program?

At least 4.3 million is a lower bound for the 10,10-duoprism.

I doubt there's another bug, though I have not disproved the possibility. Basically the way the program works is as follows:

(1) represent an augmentation as two arrays, corresponding to the two duoprism rings, with 0 meaning no augment in that position, 1 meaning one augment, 2 meaning one rotated augment (if that particular ring has augments that can be distinctly rotated).

(2) Generate (on-the-fly) all possible such pairs of arrays.

(3) For each generated array pair, compute its canonical representation. A canonical representation is the lexicographically-least array pair obtained by transforming the given array pair by the equivalent of the duoprism's symmetries. If an array pair is not equal to its canonical representation, discard it. (In practice, for performance reasons, we can discard a pair as soon as one of its transformations is lexicographically less than itself -- since that implies that it cannot be canonical.)

(4) Count all remaining pairs, which must be canonical representations.

In step (3), the following transformations are applied (in all combinations):

(a) Rotate each array up to n positions where n is the size of the corresponding ring;

(b) If a ring contains orientable augments, flip the orientations of the augments (and rotate the other ring appropriately). (In the implementation, this is done along with (a) because the two are equivalent under a swapping of rings.)

(c) Reverse the order of elements in the array (corresponding to a reflection).

(d) If it's an n,n-duoprism, swap the two arrays (corresponding to a 90° rotation that exchanges the rings). (For m,n-duoprisms where m≠n, there is no such symmetry so we don't perform the swap.) In the implementation, we simply standardize on the first ring being lexicographically less, so if m=n and ring1 > ring2, we discard the pair immediately.
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby quickfur » Tue Sep 13, 2022 5:26 pm

quickfur wrote:[...]
Don't forget that for the 10,10-duoprism, the augments are orientable (meaning they can be in one of two positions that, when other augments are present, represents two distinct augmentations). As the number of augments increase, the number of distinct orientations increase approximately exponentially, until the number of augments nears the saturation point.
[...]

To be absolutely clear, in this case the augment is 5-gon||10-gon, which can be fitted onto one of the duoprism's cells in two different orientations. When there's only 1 augment, this doesn't make a difference. But when there are two augments on the same ring, they can either be in the same orientation, or in anti orientation to each other (i.e., rotated by 72° relative to each other). Furthermore, when two augments are on two different rings, two square pyramids (one from each ring) can share a face, or square pyramid and a triangular prism (one from each ring) can share a face, or two triangular prisms (one from each ring) can share a face. So that's 3 topologically-distinct augmentations. When there are 2 augments on the first ring and one on the second, we have about 5-6 different augmentations.

As the number of augments increase, the number of combinations of orientations obviously compound rapidly. I suspect this is where the missing count from your estimate is coming from.
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby mr_e_man » Tue Sep 13, 2022 6:12 pm

quickfur wrote:Are you sure you got the symmetry group order right? Take one of the prism cells in one of the rings. You can rotate it around the ring in 10 distinct positions. You can also rotate it in-place in 10 orientations. And reflect it across 10 different planes around its vertical axis, as well as reflect it across the horizontal plane. And rotate it by 90° onto the second ring. I'm not very good with computing the order of symmetry groups, but it would appear to me that this should give us 10*10*10*2*2 = 4000. Did I screw up somewhere?

Let's look at the 10-gon alone. There are 10 rotations (by multiples of 36°) and 10 reflections (5 lines passing through opposite vertices, and 5 lines bisecting opposite edges) for a total of 10+10=20 symmetries. In general, a p-gon has 2p symmetries.
You can't rotate and reflect independently. A composition of two reflections is a rotation, and a composition of a rotation and a reflection is a reflection.
So your count should have 10+10 in place of 10*10, which does give 800. :)

Wikipedia supports this. (See the "Symmetry" parts of the two tables on the right.) And I was hoping Bowers would as well, but he didn't get around to polygonal duoprisms yet.

It should be expected that "most" augmentations have no symmetry at all; it's easy to break symmetry. For such an augmentation, all 800 isomorphs would be unequal to each other, thus contributing 800 to the count of 3^10 * 3^10 . So the true count should be very close to 3^20 / 800 ≈ 4.36 million.

Don't forget that for the 10,10-duoprism, the augments are orientable (meaning they can be in one of two positions that, when other augments are present, represents two distinct augmentations). As the number of augments increase, the number of distinct orientations increase approximately exponentially, until the number of augments nears the saturation point.

The orientation is accounted for by the base being 3 instead of 2.

But maybe there is a "bug" in my line of reasoning.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby mr_e_man » Tue Sep 13, 2022 7:41 pm

quickfur wrote:In step (3), the following transformations are applied (in all combinations):

(a) Rotate each array up to n positions where n is the size of the corresponding ring;

(b) If a ring contains orientable augments, flip the orientations of the augments (and rotate the other ring appropriately). (In the implementation, this is done along with (a) because the two are equivalent under a swapping of rings.)

I hope that parenthetic part means you're not doing (a) independently. A rotation in (a), by an odd number of positions, must be accompanied by a gyration (1 <-> 2) in the opposite ring (if applicable).
(c) Reverse the order of elements in the array (corresponding to a reflection).

That's definitely a problem!
A reflection can effectively gyrate the augments.

For an odd-sided polygon in 2D, any mirror line passes through a vertex and the opposite edge. But odd-sided prisms can't be gyratably augmented, so this is irrelevant.

For an even-sided polygon in 2D, some mirror lines pass through two opposite vertices, and other mirror lines bisect two opposite edges. The former (and not the latter) reflections, extended to 4D and acting on a prism of that polygon, would change the augment's orientation.

Reversing the order of augments in one ring means reflecting over a polygon in that ring, or reflecting over a line (/plane) passing through a vertex (/vertical edge) of a polygon (/prism) in the other ring. This would change the augment's orientation.

Thus, (c) must be accompanied by a gyration (1 <-> 2) in the opposite ring (if applicable).

(d) If it's an n,n-duoprism, swap the two arrays (corresponding to a 90° rotation that exchanges the rings). (For m,n-duoprisms where m≠n, there is no such symmetry so we don't perform the swap.) In the implementation, we simply standardize on the first ring being lexicographically less, so if m=n and ring1 > ring2, we discard the pair immediately.

This looks fine, though I think it's actually a 180° rotation.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby quickfur » Tue Sep 13, 2022 9:41 pm

mr_e_man wrote:
quickfur wrote:In step (3), the following transformations are applied (in all combinations):

(a) Rotate each array up to n positions where n is the size of the corresponding ring;

(b) If a ring contains orientable augments, flip the orientations of the augments (and rotate the other ring appropriately). (In the implementation, this is done along with (a) because the two are equivalent under a swapping of rings.)

I hope that parenthetic part means you're not doing (a) independently. A rotation in (a), by an odd number of positions, must be accompanied by a gyration (1 <-> 2) in the opposite ring (if applicable).

Yes, this case is accounted for. (a) and (b) are done together, obviously, since rotation in one ring equals gyration in the other, and vice versa.

(c) Reverse the order of elements in the array (corresponding to a reflection).

That's definitely a problem!
A reflection can effectively gyrate the augments.

Sorry, I didn't describe it accurately enough. A reversal is done to both rings simultaneously, since reversing one ring without reversing the other may create a non-isomorphic augmentation. Reversing both produces the mirror image of the polytope.

In any case, any mistake in this area would undercount the number of augmentations (it would find more lexicographically-smaller transformations than there actually are, so more combinations would be discarded).

[...]
(d) If it's an n,n-duoprism, swap the two arrays (corresponding to a 90° rotation that exchanges the rings). (For m,n-duoprisms where m≠n, there is no such symmetry so we don't perform the swap.) In the implementation, we simply standardize on the first ring being lexicographically less, so if m=n and ring1 > ring2, we discard the pair immediately.

This looks fine, though I think it's actually a 180° rotation.

Why would it be 180°? The 2-planes of each ring are linearly-independent and therefore must be at 90° to each other. Swapping them in effect is equal to rotating the polytope such that each ring moves into the plane of the other, i.e., a 90° rotation.
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby mr_e_man » Tue Sep 13, 2022 10:07 pm

[...]
(d) If it's an n,n-duoprism, swap the two arrays (corresponding to a 90° rotation that exchanges the rings). (For m,n-duoprisms where m≠n, there is no such symmetry so we don't perform the swap.) In the implementation, we simply standardize on the first ring being lexicographically less, so if m=n and ring1 > ring2, we discard the pair immediately.

This looks fine, though I think it's actually a 180° rotation.

Why would it be 180°? The 2-planes of each ring are linearly-independent and therefore must be at 90° to each other. Swapping them in effect is equal to rotating the polytope such that each ring moves into the plane of the other, i.e., a 90° rotation.

The transformation is (x,y,z,w) -> (z,w,x,y), i.e. a reflection x <-> z and a reflection y <-> w. The composition of two orthogonal reflections is a 180° rotation. In general, the composition of two reflections along vectors with an angle θ between them is equivalent to a rotation by 2θ in the plane of those vectors.

You could also look at the vertex figure, which is a tetrahedron with two opposite 144° edges and four 90° edges. The relevant transformation is a 180° rotation around an axis passing through two opposite 90° edges, which swaps the two 144° edges. There is no 90° rotation symmetry of the tetrahedron.

(c) Reverse the order of elements in the array (corresponding to a reflection).

That's definitely a problem!
A reflection can effectively gyrate the augments.

Sorry, I didn't describe it accurately enough. A reversal is done to both rings simultaneously, since reversing one ring without reversing the other may create a non-isomorphic augmentation. Reversing both produces the mirror image of the polytope.

Reversing both gives a 180° rotation, not a reflection.
In the vertex figure, the axis of rotation passes through the two 144° edges of the tetrahedron.

(c) should reverse one ring, and gyrate the other, to make the mirror image.

So (a) applies n rotations to ring 1, and m rotations to ring 2 (both possibly with gyrations in the other ring);
(c) applies a reflection to ring 1, and (separately) a reflection to ring 2 (both possibly with gyrations in the other ring);
and (d) swaps the two rings, if possible.
These are all independent (kind of; I guess it's a semidirect product). So there's a total of n*m*2*2(*2 if n=m) transformations being applied, as there should be.
Last edited by mr_e_man on Tue Sep 13, 2022 10:51 pm, edited 2 times in total.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby mr_e_man » Wed Sep 14, 2022 2:33 am

Okay, I've manually verified some of the results in your list, up to the 4,8-duoprism (ignoring 4,4).

But for the 4,8-duoprism, I found 152 different augmentations (counting the uniform duoprism), not 123+1.

And for the 5,6-duoprism, I found 66 different augmentations, not 64+1.
Specifically, I got 13 with no augments on the 'hips' (hexagonal prisms), 20 with one hip augment, 20 with two hip augments in the same orientation, and 13 with two hip augments in opposite orientations.

However, the gyratable augments are a bit confusing.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby quickfur » Wed Sep 14, 2022 5:32 pm

Haha, apparently I need to look into this again. :D Probably should build actual models of the generated augmentations to verify by hand.
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby mr_e_man » Thu Sep 15, 2022 8:07 pm

Here's an implementation of your algorithm, with part (3)(c) fixed, in Python.

It's specialized for the 10,10-duoprism. It assumes that both rings can be augmented independently, and that adjacent augments are possible. I haven't considered the more general cases.

Instead of encoding the augments as 0,1,2, I encoded them as 0,1,2,3, keeping pyramids and magnabicupolic rings separate.
Also, I packaged the augmentation information for each ring into a single integer instead of an array.
I had fun doing everything with bitwise operations. :nod:

The reflections are done at the outer levels of iteration, and the rotations at the inner levels, because it's more expensive to reverse the bits in a number than to rotate them.

Code: Select all
# Keep in mind the operator precedence:
# arithmetic operations (+ - * //) are evaluated first, then
# bit shifts (<< >>), then other bitwise operations (& | ^).

# no augment = 00, pyramid augment = 01,
# ortho augment = 10, gyro augment = 11 (binary)

all_bits = (1 << 2*10) - 1
even_bits = all_bits // 3
odd_bits = even_bits << 1

def pyramids(x):
    return x & even_bits & ~(x & odd_bits)>>1

def rotate(x, num_places, total_places):
    return x >> 2*num_places | (
        (x & ((1<<2*num_places)-1)) << 2*(total_places - num_places))

def gyrate(x):
    return (x & odd_bits) | ((x & even_bits) ^ (x & odd_bits)>>1)

def reverse(x, total_places):
    y = 0
    for i in range(total_places):
        y |= (x>>2*i & 3) << 2*(total_places - 1 - i)
    return y

count = 0
ring1 = 0
while ring1 < 1<<2*10:
    ring2 = 0
    while ring2 < 1<<2*10:

        rings1and2 = ring1 << 2*10 | ring2
        is_least = True
        i = 0
        while is_least and i < 2:
            ring1_i = reverse(ring1, 10) if i else ring1
            ring2_i = gyrate(ring2) if i else ring2
            j = 0
            while is_least and j < 2:
                ring2_ij = reverse(ring2_i, 10) if j else ring2_i
                ring1_ij = gyrate(ring1_i) if j else ring1_i
                k = 0
                while is_least and k < 10:
                    ring1_ijk = rotate(ring1_ij, k, 10)
                    ring2_ijk = gyrate(ring2_ij) if k & 1 else ring2_ij
                    l = 0
                    while is_least and l < 10:
                        ring2_ijkl = rotate(ring2_ijk, l, 10)
                        ring1_ijkl = gyrate(ring1_ijk) if l & 1 else ring1_ijk
                        new_rings1and2 = ring1_ijkl << 2*10 | ring2_ijkl
                        new_rings2and1 = ring2_ijkl << 2*10 | ring1_ijkl
                        is_least &= rings1and2 <= new_rings1and2
                        is_least &= rings1and2 <= new_rings2and1
                        l += 1
                    k += 1
                j += 1
            i += 1
        count += is_least

        ring2 += 1
        ring2 += pyramids(ring2)
    ring1 += 1
    # Pyramid augments aren't allowed on the 10,10-duoprism; skip over these.
    ring1 += pyramids(ring1)

print(count)

It took several hours for this to run. I guess it would be faster with a lower-level language.

4924629 is the final count of 10,10-duoprism augmentations. (It includes the un-augmented duoprism.) Compare this to my estimate: 3^20 / 800 =
4358481 (rounding up). They are fairly close!
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby quickfur » Thu Sep 15, 2022 8:42 pm

mr_e_man wrote:Here's an implementation of your algorithm, with part (3)(c) fixed, in Python.

It's specialized for the 10,10-duoprism. It assumes that both rings can be augmented independently, and that adjacent augments are possible. I haven't considered the more general cases.

Instead of encoding the augments as 0,1,2, I encoded them as 0,1,2,3, keeping pyramids and magnabicupolic rings separate.

Wait, I thought the 10,10-duoprism only takes magnabicupolic rings as augments?

Also, I packaged the augmentation information for each ring into a single integer instead of an array.
I had fun doing everything with bitwise operations. :nod:

The reflections are done at the outer levels of iteration, and the rotations at the inner levels, because it's more expensive to reverse the bits in a number than to rotate them.

Are you natively compiling the Python code? 'cos if not, the difference between between reversing bits and rotating them would probably be unnoticeable. :D


Code: Select all
# Keep in mind the operator precedence:
# arithmetic operations (+ - * //) are evaluated first, then
# bit shifts (<< >>), then other bitwise operations (& | ^).

# no augment = 00, pyramid augment = 01,
# ortho augment = 10, gyro augment = 11 (binary)

all_bits = (1 << 2*10) - 1
even_bits = all_bits // 3
odd_bits = even_bits << 1

def pyramids(x):
    return x & even_bits & ~(x & odd_bits)>>1

def rotate(x, num_places, total_places):
    return x >> 2*num_places | (
        (x & ((1<<2*num_places)-1)) << 2*(total_places - num_places))

def gyrate(x):
    return (x & odd_bits) | ((x & even_bits) ^ (x & odd_bits)>>1)

def reverse(x, total_places):
    y = 0
    for i in range(total_places):
        y |= (x>>2*i & 3) << 2*(total_places - 1 - i)
    return y

count = 0
ring1 = 0
while ring1 < 1<<2*10:
    ring2 = 0
    while ring2 < 1<<2*10:

        rings1and2 = ring1 << 2*10 | ring2
        is_least = True
        i = 0
        while is_least and i < 2:
            ring1_i = reverse(ring1, 10) if i else ring1
            ring2_i = gyrate(ring2) if i else ring2
            j = 0
            while is_least and j < 2:
                ring2_ij = reverse(ring2_i, 10) if j else ring2_i
                ring1_ij = gyrate(ring1_i) if j else ring1_i
                k = 0
                while is_least and k < 10:
                    ring1_ijk = rotate(ring1_ij, k, 10)
                    ring2_ijk = gyrate(ring2_ij) if k & 1 else ring2_ij
                    l = 0
                    while is_least and l < 10:
                        ring2_ijkl = rotate(ring2_ijk, l, 10)
                        ring1_ijkl = gyrate(ring1_ijk) if l & 1 else ring1_ijk
                        new_rings1and2 = ring1_ijkl << 2*10 | ring2_ijkl
                        new_rings2and1 = ring2_ijkl << 2*10 | ring1_ijkl
                        is_least &= rings1and2 <= new_rings1and2
                        is_least &= rings1and2 <= new_rings2and1
                        l += 1
                    k += 1
                j += 1
            i += 1
        count += is_least

        ring2 += 1
        ring2 += pyramids(ring2)
    ring1 += 1
    # Pyramid augments aren't allowed on the 10,10-duoprism; skip over these.
    ring1 += pyramids(ring1)

print(count)

It took several hours for this to run. I guess it would be faster with a lower-level language.

I'll have to look more carefully into your code later, busy right now. All those bit operations are hard to read. :\ I would've preferred a more straightforward, obvious implementation for a first stab, which would be easier to verify, and only if necessary, a more optimized implementation afterwards.

4924629 is the final count of 10,10-duoprism augmentations. (It includes the un-augmented duoprism.) Compare this to my estimate: 3^20 / 800 =
4358481 (rounding up). They are fairly close!

Would you be interested to do this for all the other duoprisms too? I really want to compare independently-derived results for better confidence that we didn't screw up somewhere, like I apparently did. :D
quickfur
Pentonian
 
Posts: 2935
Joined: Thu Sep 02, 2004 11:20 pm
Location: The Great White North

Re: Number of CRF polychora

Postby mr_e_man » Thu Sep 15, 2022 9:43 pm

quickfur wrote:
mr_e_man wrote:Here's an implementation of your algorithm, with part (3)(c) fixed, in Python.

It's specialized for the 10,10-duoprism. It assumes that both rings can be augmented independently, and that adjacent augments are possible. I haven't considered the more general cases.

Instead of encoding the augments as 0,1,2, I encoded them as 0,1,2,3, keeping pyramids and magnabicupolic rings separate.

Wait, I thought the 10,10-duoprism only takes magnabicupolic rings as augments?

Of course. But this way makes the bitwise operations easier, and allows for generalizing to other duoprisms.

Also, I packaged the augmentation information for each ring into a single integer instead of an array.
I had fun doing everything with bitwise operations. :nod:

The reflections are done at the outer levels of iteration, and the rotations at the inner levels, because it's more expensive to reverse the bits in a number than to rotate them.

Are you natively compiling the Python code? 'cos if not, the difference between between reversing bits and rotating them would probably be unnoticeable. :D

No, I'm just using IDLE.

To compare the two methods, I made the program stop when the count reached 20000. Reversing at the outer levels, it took about 13 seconds. Reversing at the inner levels, it took about 30 seconds. I also did this with the 'is_least' loop test disabled (so both methods are applying the same full set of transformations, not stopping when a lesser isomorph is found); getting to 2000 took 22 seconds and 53 seconds, respectively.
Notice that the 'reverse' function has a loop in it, and 'rotate' does not.

I'll have to look more carefully into your code later, busy right now. All those bit operations are hard to read. :\ I would've preferred a more straightforward, obvious implementation for a first stab, which would be easier to verify, and only if necessary, a more optimized implementation afterwards.

Right. I know readability is important....

Well, I think you could easily modify your own program (reverse one ring, gyrate the other), and hopefully get the same results as mine.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

Re: Number of CRF polychora

Postby mr_e_man » Fri Sep 16, 2022 12:21 pm

mr_e_man wrote:
(c) Reverse the order of elements in the array (corresponding to a reflection).

That's definitely a problem!
A reflection can effectively gyrate the augments.

Sorry, I didn't describe it accurately enough. A reversal is done to both rings simultaneously, since reversing one ring without reversing the other may create a non-isomorphic augmentation. Reversing both produces the mirror image of the polytope.

Reversing both gives a 180° rotation, not a reflection.
In the vertex figure, the axis of rotation passes through the two 144° edges of the tetrahedron.

Actually, it's not a 180° rotation either. Reversing both rings is not a symmetry at all!

Consider the augmentation [1,1,1,1,1,1,1,1,1,1], [1,0,0,0,0,0,0,0,0,0], where the first ring is fully augmented with magnabicupolic rings in the same orientation, and the second ring has one augment, connecting to the triangular prisms in the first ring. Reversing both gives [1,1,1,1,1,1,1,1,1,1], [0,0,0,0,0,0,0,0,0,1], where the augment in the second ring connects to the square pyramids in the first ring. Thus, the transformed augmentation is not isomorphic to the original augmentation.

Instead, that 180° rotation symmetry I mentioned reverses both rings, and gyrates both rings. This would give [2,2,2,2,2,2,2,2,2,2], [0,0,0,0,0,0,0,0,0,2], where the augment in the second ring again connects to the triangular prisms in the first ring.

So you were including a false symmetry, and omitting a true symmetry. This could increase the count in some cases, and decrease the count in other cases. :o
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 474
Joined: Tue Sep 18, 2018 4:10 am

PreviousNext

Return to CRF Polytopes

Who is online

Users browsing this forum: No registered users and 8 guests

cron