GroupsMath 0.7.2__tar.gz → 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {groupsmath-0.7.2 → groupsmath-1.0.0}/GroupsMath.egg-info/PKG-INFO +11 -8
- {groupsmath-0.7.2 → groupsmath-1.0.0}/PKG-INFO +11 -8
- {groupsmath-0.7.2 → groupsmath-1.0.0}/README.md +10 -7
- {groupsmath-0.7.2 → groupsmath-1.0.0}/groupsmath/core.py +37 -98
- {groupsmath-0.7.2 → groupsmath-1.0.0}/groupsmath/presentations.py +1 -1
- {groupsmath-0.7.2 → groupsmath-1.0.0}/pyproject.toml +1 -1
- {groupsmath-0.7.2 → groupsmath-1.0.0}/GroupsMath.egg-info/SOURCES.txt +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/GroupsMath.egg-info/dependency_links.txt +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/GroupsMath.egg-info/requires.txt +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/GroupsMath.egg-info/top_level.txt +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/LICENSE +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/groupsmath/__init__.py +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/groupsmath/matrixgroups.py +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/groupsmath/precooked.py +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/groupsmath/shortcuts.py +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/groupsmath/structure.py +0 -0
- {groupsmath-0.7.2 → groupsmath-1.0.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GroupsMath
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: The educational Python library for Group Theory
|
|
5
5
|
Author-email: Mario Sultan Romero <mariosultan.uem@gmail.com>
|
|
6
6
|
License: PolyForm Strict License 1.0.0.
|
|
@@ -20,26 +20,25 @@ Requires-Dist: matplotlib>=3.0.0
|
|
|
20
20
|
Requires-Dist: numpy>=1.20.0
|
|
21
21
|
Dynamic: license-file
|
|
22
22
|
|
|
23
|
-
# GroupsMath –
|
|
23
|
+
# GroupsMath – v1.0.0
|
|
24
24
|
|
|
25
25
|
[](https://pypistats.org/packages/groupsmath)
|
|
26
26
|
[](https://pypi.org/project/groupsmath/)
|
|
27
27
|
[](https://pypi.org/project/groupsmath/)
|
|
28
28
|

|
|
29
|
-

|
|
30
29
|
<!--  -->
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|

|
|
34
33
|
|
|
35
34
|
|
|
36
|
-
**GroupsMath** is
|
|
35
|
+
**GroupsMath** is an open-source Python library for exploring and computing with mathematical groups. It lets you construct groups, perform operations on their elements, and study their structure through concepts such as subgroups, quotient groups, products, automorphisms, and conjugacy classes. Its goal is to make group theory **accessible, intuitive, and computational**, connecting abstract mathematics with hands-on experimentation in Python.
|
|
37
36
|
|
|
38
|
-
The project aims to provide a **simple** and **intuitive** interface for working with groups and their algebraic properties.
|
|
39
37
|
|
|
40
38
|

|
|
41
39
|
|
|
42
|
-
|
|
40
|
+
|
|
41
|
+
📚 Visit here the [GroupsMath official documentation](https://groupsmath.readthedocs.io/en/latest/).
|
|
43
42
|
|
|
44
43
|
|
|
45
44
|
---
|
|
@@ -115,7 +114,7 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
115
114
|
**GROUPS:**
|
|
116
115
|
* Construction of finite groups with classes `CayleyGroup` and `ExplicitGroup`.
|
|
117
116
|
* Determination of the order of a group and its elements.
|
|
118
|
-
* Operation with group elements (multiplication, inverse, powers, ...)
|
|
117
|
+
* Operation with group elements (multiplication, inverse, powers, ...).
|
|
119
118
|
* Computation of Cayley tables with `matplotlib.pyplot`.
|
|
120
119
|
* Detection of algebraic properties such as cyclicity, commutativity and solubility.
|
|
121
120
|
* Centralizers, conjugacy classes and conmutator.
|
|
@@ -128,7 +127,7 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
128
127
|
* Normal subgroups.
|
|
129
128
|
* Quotient groups $Q=G/H$.
|
|
130
129
|
* Conmutator and derived subgroups $G'$.
|
|
131
|
-
* Abelianization $G/G'
|
|
130
|
+
* Abelianization $G/G'$.
|
|
132
131
|
* Hasse diagrams. (*experimental feature*)
|
|
133
132
|
|
|
134
133
|
**AUTOMORPHISMS:**
|
|
@@ -148,6 +147,10 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
148
147
|
**PRESENTED GROUPS**
|
|
149
148
|
* Presentation of groups, generators and class `PresentedGroup`. (*experimental feature*)
|
|
150
149
|
|
|
150
|
+
**EDUCATION**
|
|
151
|
+
* Jupyter notebook [A swift introduction to group theory with *GroupsMath*](https://mybinder.org/v2/gh/MarioSultan/GroupsMath/main?labpath=GroupsMath_demo.ipynb) in Binder.
|
|
152
|
+
|
|
153
|
+
|
|
151
154
|
The available functionality will expand as the project develops.
|
|
152
155
|
|
|
153
156
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GroupsMath
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: The educational Python library for Group Theory
|
|
5
5
|
Author-email: Mario Sultan Romero <mariosultan.uem@gmail.com>
|
|
6
6
|
License: PolyForm Strict License 1.0.0.
|
|
@@ -20,26 +20,25 @@ Requires-Dist: matplotlib>=3.0.0
|
|
|
20
20
|
Requires-Dist: numpy>=1.20.0
|
|
21
21
|
Dynamic: license-file
|
|
22
22
|
|
|
23
|
-
# GroupsMath –
|
|
23
|
+
# GroupsMath – v1.0.0
|
|
24
24
|
|
|
25
25
|
[](https://pypistats.org/packages/groupsmath)
|
|
26
26
|
[](https://pypi.org/project/groupsmath/)
|
|
27
27
|
[](https://pypi.org/project/groupsmath/)
|
|
28
28
|

|
|
29
|
-

|
|
30
29
|
<!--  -->
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|

|
|
34
33
|
|
|
35
34
|
|
|
36
|
-
**GroupsMath** is
|
|
35
|
+
**GroupsMath** is an open-source Python library for exploring and computing with mathematical groups. It lets you construct groups, perform operations on their elements, and study their structure through concepts such as subgroups, quotient groups, products, automorphisms, and conjugacy classes. Its goal is to make group theory **accessible, intuitive, and computational**, connecting abstract mathematics with hands-on experimentation in Python.
|
|
37
36
|
|
|
38
|
-
The project aims to provide a **simple** and **intuitive** interface for working with groups and their algebraic properties.
|
|
39
37
|
|
|
40
38
|

|
|
41
39
|
|
|
42
|
-
|
|
40
|
+
|
|
41
|
+
📚 Visit here the [GroupsMath official documentation](https://groupsmath.readthedocs.io/en/latest/).
|
|
43
42
|
|
|
44
43
|
|
|
45
44
|
---
|
|
@@ -115,7 +114,7 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
115
114
|
**GROUPS:**
|
|
116
115
|
* Construction of finite groups with classes `CayleyGroup` and `ExplicitGroup`.
|
|
117
116
|
* Determination of the order of a group and its elements.
|
|
118
|
-
* Operation with group elements (multiplication, inverse, powers, ...)
|
|
117
|
+
* Operation with group elements (multiplication, inverse, powers, ...).
|
|
119
118
|
* Computation of Cayley tables with `matplotlib.pyplot`.
|
|
120
119
|
* Detection of algebraic properties such as cyclicity, commutativity and solubility.
|
|
121
120
|
* Centralizers, conjugacy classes and conmutator.
|
|
@@ -128,7 +127,7 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
128
127
|
* Normal subgroups.
|
|
129
128
|
* Quotient groups $Q=G/H$.
|
|
130
129
|
* Conmutator and derived subgroups $G'$.
|
|
131
|
-
* Abelianization $G/G'
|
|
130
|
+
* Abelianization $G/G'$.
|
|
132
131
|
* Hasse diagrams. (*experimental feature*)
|
|
133
132
|
|
|
134
133
|
**AUTOMORPHISMS:**
|
|
@@ -148,6 +147,10 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
148
147
|
**PRESENTED GROUPS**
|
|
149
148
|
* Presentation of groups, generators and class `PresentedGroup`. (*experimental feature*)
|
|
150
149
|
|
|
150
|
+
**EDUCATION**
|
|
151
|
+
* Jupyter notebook [A swift introduction to group theory with *GroupsMath*](https://mybinder.org/v2/gh/MarioSultan/GroupsMath/main?labpath=GroupsMath_demo.ipynb) in Binder.
|
|
152
|
+
|
|
153
|
+
|
|
151
154
|
The available functionality will expand as the project develops.
|
|
152
155
|
|
|
153
156
|
---
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
# GroupsMath –
|
|
1
|
+
# GroupsMath – v1.0.0
|
|
2
2
|
|
|
3
3
|
[](https://pypistats.org/packages/groupsmath)
|
|
4
4
|
[](https://pypi.org/project/groupsmath/)
|
|
5
5
|
[](https://pypi.org/project/groupsmath/)
|
|
6
6
|

|
|
7
|
-

|
|
8
7
|
<!--  -->
|
|
9
8
|
|
|
10
9
|
|
|
11
10
|

|
|
12
11
|
|
|
13
12
|
|
|
14
|
-
**GroupsMath** is
|
|
13
|
+
**GroupsMath** is an open-source Python library for exploring and computing with mathematical groups. It lets you construct groups, perform operations on their elements, and study their structure through concepts such as subgroups, quotient groups, products, automorphisms, and conjugacy classes. Its goal is to make group theory **accessible, intuitive, and computational**, connecting abstract mathematics with hands-on experimentation in Python.
|
|
15
14
|
|
|
16
|
-
The project aims to provide a **simple** and **intuitive** interface for working with groups and their algebraic properties.
|
|
17
15
|
|
|
18
16
|

|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
|
|
19
|
+
📚 Visit here the [GroupsMath official documentation](https://groupsmath.readthedocs.io/en/latest/).
|
|
21
20
|
|
|
22
21
|
|
|
23
22
|
---
|
|
@@ -93,7 +92,7 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
93
92
|
**GROUPS:**
|
|
94
93
|
* Construction of finite groups with classes `CayleyGroup` and `ExplicitGroup`.
|
|
95
94
|
* Determination of the order of a group and its elements.
|
|
96
|
-
* Operation with group elements (multiplication, inverse, powers, ...)
|
|
95
|
+
* Operation with group elements (multiplication, inverse, powers, ...).
|
|
97
96
|
* Computation of Cayley tables with `matplotlib.pyplot`.
|
|
98
97
|
* Detection of algebraic properties such as cyclicity, commutativity and solubility.
|
|
99
98
|
* Centralizers, conjugacy classes and conmutator.
|
|
@@ -106,7 +105,7 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
106
105
|
* Normal subgroups.
|
|
107
106
|
* Quotient groups $Q=G/H$.
|
|
108
107
|
* Conmutator and derived subgroups $G'$.
|
|
109
|
-
* Abelianization $G/G'
|
|
108
|
+
* Abelianization $G/G'$.
|
|
110
109
|
* Hasse diagrams. (*experimental feature*)
|
|
111
110
|
|
|
112
111
|
**AUTOMORPHISMS:**
|
|
@@ -126,6 +125,10 @@ GroupsMath is designed to provide tools for working with finite (and infinite) g
|
|
|
126
125
|
**PRESENTED GROUPS**
|
|
127
126
|
* Presentation of groups, generators and class `PresentedGroup`. (*experimental feature*)
|
|
128
127
|
|
|
128
|
+
**EDUCATION**
|
|
129
|
+
* Jupyter notebook [A swift introduction to group theory with *GroupsMath*](https://mybinder.org/v2/gh/MarioSultan/GroupsMath/main?labpath=GroupsMath_demo.ipynb) in Binder.
|
|
130
|
+
|
|
131
|
+
|
|
129
132
|
The available functionality will expand as the project develops.
|
|
130
133
|
|
|
131
134
|
---
|
|
@@ -21,7 +21,7 @@ from math import gcd
|
|
|
21
21
|
|
|
22
22
|
#################### DEFINITIONS ####################
|
|
23
23
|
|
|
24
|
-
__version__ = "0.
|
|
24
|
+
__version__ = "1.0.0"
|
|
25
25
|
__errorcolor__ = "\033[31m"
|
|
26
26
|
|
|
27
27
|
tgl_color = "#2A646E"
|
|
@@ -183,11 +183,11 @@ class ExplicitGroup(Group):
|
|
|
183
183
|
def is_abelian(self):
|
|
184
184
|
return self.order()==len(self.center())
|
|
185
185
|
|
|
186
|
-
def cayley_table(self,
|
|
187
|
-
return self.toCayleyGroup().cayley_table(
|
|
186
|
+
def cayley_table(self, **kwargs):
|
|
187
|
+
return self.toCayleyGroup().cayley_table(**kwargs)
|
|
188
188
|
|
|
189
|
-
def cayley_graph(self,
|
|
190
|
-
return self.toCayleyGroup.cayley_graph(
|
|
189
|
+
def cayley_graph(self, **kwargs):
|
|
190
|
+
return self.toCayleyGroup().cayley_graph(**kwargs)
|
|
191
191
|
|
|
192
192
|
#–> SUBGROUPS
|
|
193
193
|
|
|
@@ -336,6 +336,9 @@ class ExplicitGroup(Group):
|
|
|
336
336
|
|
|
337
337
|
def is_solvable(self):
|
|
338
338
|
return len(self.derived_series()[-1]) == 1
|
|
339
|
+
|
|
340
|
+
def hasse_diagram(self):
|
|
341
|
+
self.toCayleyGroup().hasse_diagram()
|
|
339
342
|
|
|
340
343
|
#–> AUTOMORPHISMS
|
|
341
344
|
|
|
@@ -366,6 +369,9 @@ class ExplicitGroup(Group):
|
|
|
366
369
|
sub_indices = _subgroup_generated_by(cayley_grp.cayley, subset_indices)
|
|
367
370
|
return len(sub_indices) == len(self)
|
|
368
371
|
|
|
372
|
+
def rank(self):
|
|
373
|
+
return len(self.generators())
|
|
374
|
+
|
|
369
375
|
#-> ISOMORPHISMS
|
|
370
376
|
|
|
371
377
|
def is_isomorphic_to(self, target):
|
|
@@ -885,10 +891,6 @@ class CayleyGroup(Group):
|
|
|
885
891
|
#nx.draw_networkx_edges(gr,pos,arrows=False)
|
|
886
892
|
plt.show()
|
|
887
893
|
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
894
|
#–> AUTOMORPHISMS
|
|
893
895
|
|
|
894
896
|
def is_automorphism(self, phi):
|
|
@@ -1020,6 +1022,9 @@ class CayleyGroup(Group):
|
|
|
1020
1022
|
sub_indices = _subgroup_generated_by(self.cayley, subset_indices)
|
|
1021
1023
|
return len(sub_indices) == self.order()
|
|
1022
1024
|
|
|
1025
|
+
def rank(self):
|
|
1026
|
+
return len(self.generators())
|
|
1027
|
+
|
|
1023
1028
|
#-> ISOMORPHISMS
|
|
1024
1029
|
|
|
1025
1030
|
def is_isomorphic_to(self, target): #Revisar, pues es demasiado grande y algo puede salir mal
|
|
@@ -1138,6 +1143,17 @@ class ExplicitSubgroup(ExplicitGroup, Subgroup):
|
|
|
1138
1143
|
def __lt__(self, group):
|
|
1139
1144
|
return group == self.group and self.subgroup.order() < self.group.order()
|
|
1140
1145
|
|
|
1146
|
+
#-> GRAPHS
|
|
1147
|
+
|
|
1148
|
+
def cayley_table(self, **kwargs):
|
|
1149
|
+
return self.subgroup.cayley_table(**kwargs)
|
|
1150
|
+
|
|
1151
|
+
def cayley_graph(self, **kwargs):
|
|
1152
|
+
return self.subgroup.cayley_graph(**kwargs)
|
|
1153
|
+
|
|
1154
|
+
def hasse_diagram(self, **kwargs):
|
|
1155
|
+
return self.subgroup.hasse_diagram(**kwargs)
|
|
1156
|
+
|
|
1141
1157
|
#–> QUOTIENTS & COSETS
|
|
1142
1158
|
|
|
1143
1159
|
def coset(self, element, side="left", return_names=True):
|
|
@@ -1269,6 +1285,17 @@ class CayleySubgroup(CayleyGroup, Subgroup):
|
|
|
1269
1285
|
|
|
1270
1286
|
return True
|
|
1271
1287
|
|
|
1288
|
+
#-> GRAPHS
|
|
1289
|
+
|
|
1290
|
+
def cayley_table(self, **kwargs):
|
|
1291
|
+
return self.subgroup.cayley_table(**kwargs)
|
|
1292
|
+
|
|
1293
|
+
def cayley_graph(self, **kwargs):
|
|
1294
|
+
return self.subgroup.cayley_graph(**kwargs)
|
|
1295
|
+
|
|
1296
|
+
def hasse_diagram(self, **kwargs):
|
|
1297
|
+
return self.subgroup.hasse_diagram(**kwargs)
|
|
1298
|
+
|
|
1272
1299
|
#–> QUOTIENTS
|
|
1273
1300
|
|
|
1274
1301
|
def coset(self, element, side="left", return_names=True):
|
|
@@ -1435,12 +1462,6 @@ class AutomorphismFunction:
|
|
|
1435
1462
|
|
|
1436
1463
|
#################### HIDDEN FUNCTIONS ####################
|
|
1437
1464
|
|
|
1438
|
-
def _obtener_nombre(var_obj):
|
|
1439
|
-
for nombre, valor in globals().items():
|
|
1440
|
-
if valor is var_obj:
|
|
1441
|
-
return nombre
|
|
1442
|
-
return None
|
|
1443
|
-
|
|
1444
1465
|
def _is_closed(tabla):
|
|
1445
1466
|
n = len(tabla)
|
|
1446
1467
|
E = _get_elements(tabla)
|
|
@@ -1581,24 +1602,6 @@ def _check_explicit_group(elements: list, operation) -> tuple[bool, str]:
|
|
|
1581
1602
|
|
|
1582
1603
|
return True, "Valid Group"
|
|
1583
1604
|
|
|
1584
|
-
def _identity(G):
|
|
1585
|
-
neutro = None
|
|
1586
|
-
for e in range(len(G)):
|
|
1587
|
-
ok = True
|
|
1588
|
-
for a in range(len(G)):
|
|
1589
|
-
if G[e][a] != a:
|
|
1590
|
-
ok = False
|
|
1591
|
-
break
|
|
1592
|
-
if G[a][e] != a:
|
|
1593
|
-
ok = False
|
|
1594
|
-
break
|
|
1595
|
-
if ok:
|
|
1596
|
-
neutro = e
|
|
1597
|
-
break
|
|
1598
|
-
if neutro is None:
|
|
1599
|
-
return (False,"IndentityError – no identity element found")
|
|
1600
|
-
return neutro
|
|
1601
|
-
|
|
1602
1605
|
def _subset(G, elements):
|
|
1603
1606
|
return [[G[r][c] for c in elements] for r in elements]
|
|
1604
1607
|
|
|
@@ -1726,24 +1729,6 @@ def _subgroup_generated_by(cayley, generators_indices):
|
|
|
1726
1729
|
|
|
1727
1730
|
return sorted(list(generated))
|
|
1728
1731
|
|
|
1729
|
-
def _order_preserving_permutations(orders):
|
|
1730
|
-
|
|
1731
|
-
classes = {}
|
|
1732
|
-
|
|
1733
|
-
for i, order in enumerate(orders):
|
|
1734
|
-
classes.setdefault(order, []).append(i)
|
|
1735
|
-
|
|
1736
|
-
classes = list(classes.values())
|
|
1737
|
-
|
|
1738
|
-
for perms in product(*(permutations(c) for c in classes)):
|
|
1739
|
-
result = list(range(len(orders)))
|
|
1740
|
-
|
|
1741
|
-
for domain, image in zip(classes, perms):
|
|
1742
|
-
for x, y in zip(domain, image):
|
|
1743
|
-
result[x] = y
|
|
1744
|
-
|
|
1745
|
-
yield tuple(result)
|
|
1746
|
-
|
|
1747
1732
|
|
|
1748
1733
|
#################### PRODUCTS ####################
|
|
1749
1734
|
|
|
@@ -2010,53 +1995,7 @@ def icosahedral_group():
|
|
|
2010
1995
|
return CayleyGroup((alternating_group(5) * cyclic_group(2)).cayley,_skip_validation=True)
|
|
2011
1996
|
|
|
2012
1997
|
|
|
2013
|
-
####################
|
|
2014
|
-
|
|
2015
|
-
def cayley_table(G, title="", colormap=rainbow, names="", renaming=[], math_mode=True):
|
|
2016
|
-
|
|
2017
|
-
if title=="":
|
|
2018
|
-
if _obtener_nombre(G)==None:
|
|
2019
|
-
title = f"Cayley table"
|
|
2020
|
-
else:
|
|
2021
|
-
title = f"Cayley table of {_obtener_nombre(G)}"
|
|
2022
|
-
if names=="":
|
|
2023
|
-
if len(G)<=20:
|
|
2024
|
-
names=True
|
|
2025
|
-
else:
|
|
2026
|
-
names=False
|
|
2027
|
-
if renaming==[]:
|
|
2028
|
-
if math_mode:
|
|
2029
|
-
renaming = [rf"${e}$" for e in range(len(G))]
|
|
2030
|
-
else:
|
|
2031
|
-
renaming = [rf"{e}" for e in range(len(G))]
|
|
2032
|
-
|
|
2033
|
-
elements = range(len(G))
|
|
2034
|
-
fig, ax = plt.subplots(figsize=(6, 5))
|
|
2035
|
-
im = ax.imshow(G, cmap=colormap)
|
|
2036
|
-
ax.set_xticks(np.arange(len(elements)))
|
|
2037
|
-
ax.set_yticks(np.arange(len(elements)))
|
|
2038
|
-
ax.set_xticklabels(renaming)
|
|
2039
|
-
ax.set_yticklabels(renaming)
|
|
2040
|
-
|
|
2041
|
-
ax.xaxis.tick_top()
|
|
2042
|
-
|
|
2043
|
-
if names:
|
|
2044
|
-
for i in range(len(elements)):
|
|
2045
|
-
for j in range(len(elements)):
|
|
2046
|
-
color_texto = "black"
|
|
2047
|
-
ax.text(
|
|
2048
|
-
i,
|
|
2049
|
-
j,
|
|
2050
|
-
f"{renaming[G[j][i]]}",
|
|
2051
|
-
ha="center",
|
|
2052
|
-
va="center",
|
|
2053
|
-
color=color_texto,
|
|
2054
|
-
fontsize=12,
|
|
2055
|
-
)
|
|
2056
|
-
|
|
2057
|
-
plt.title(title)
|
|
2058
|
-
plt.tight_layout()
|
|
2059
|
-
plt.show()
|
|
1998
|
+
#################### RENAMING HELPERS ####################
|
|
2060
1999
|
|
|
2061
2000
|
def _renaming_C(n):
|
|
2062
2001
|
r = []
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "GroupsMath" # Nombre en PyPI
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "1.0.0"
|
|
8
8
|
description = "The educational Python library for Group Theory"
|
|
9
9
|
readme = "README.md" # Esta será la documentación visible en la portada de PyPI
|
|
10
10
|
requires-python = ">=3.8"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|