Skip to content

Commit cb5e1af

Browse files
author
Release Manager
committed
Trac #34493: Make TrivialFamily.map return a TrivialFamily
calling the `map` method of a `TrivialFamily` should give a `TrivialFamily` again. URL: https://trac.sagemath.org/34493 Reported by: mkoeppe Ticket author(s): Matthias Koeppe Reviewer(s): Travis Scrimshaw
2 parents c036ccc + 60b1d54 commit cb5e1af

File tree

5 files changed

+23
-7
lines changed

5 files changed

+23
-7
lines changed

src/sage/categories/additive_magmas.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ def algebra_generators(self):
519519
An example of a commutative semigroup: the free commutative semigroup generated by ('a', 'b', 'c', 'd')
520520
sage: A = S.algebra(QQ)
521521
sage: A.algebra_generators()
522-
Finite family {0: B[a], 1: B[b], 2: B[c], 3: B[d]}
522+
Family (B[a], B[b], B[c], B[d])
523523
524524
.. TODO::
525525

src/sage/categories/additive_semigroups.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ def algebra_generators(self):
153153
An example of a commutative semigroup: the free commutative semigroup generated by ('a', 'b', 'c', 'd')
154154
sage: A = S.algebra(QQ)
155155
sage: A.algebra_generators()
156-
Finite family {0: B[a], 1: B[b], 2: B[c], 3: B[d]}
156+
Family (B[a], B[b], B[c], B[d])
157157
"""
158158
return self.basis().keys().additive_semigroup_generators().map(self.monomial)
159159

src/sage/categories/monoids.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -556,18 +556,17 @@ def algebra_generators(self):
556556
sage: Z12.semigroup_generators()
557557
Family (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
558558
sage: Z12.algebra(QQ).algebra_generators()
559-
Finite family {0: B[0], 1: B[1], 2: B[2], 3: B[3], 4: B[4], 5: B[5],
560-
6: B[6], 7: B[7], 8: B[8], 9: B[9], 10: B[10], 11: B[11]}
559+
Family (B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7], B[8], B[9], B[10], B[11])
561560
562561
563562
sage: GroupAlgebras(QQ).example(AlternatingGroup(10)).algebra_generators()
564-
Finite family {0: (8,9,10), 1: (1,2,3,4,5,6,7,8,9)}
563+
Family ((8,9,10), (1,2,3,4,5,6,7,8,9))
565564
566565
sage: A = DihedralGroup(3).algebra(QQ); A
567566
Algebra of Dihedral group of order 6 as a permutation group
568567
over Rational Field
569568
sage: A.algebra_generators()
570-
Finite family {0: (1,2,3), 1: (1,3)}
569+
Family ((1,2,3), (1,3))
571570
"""
572571
monoid = self.basis().keys()
573572
try:

src/sage/categories/semigroups.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -882,7 +882,7 @@ def algebra_generators(self):
882882
sage: M.semigroup_generators()
883883
Family ('a', 'b', 'c', 'd')
884884
sage: M.algebra(ZZ).algebra_generators()
885-
Finite family {0: B['a'], 1: B['b'], 2: B['c'], 3: B['d']}
885+
Family (B['a'], B['b'], B['c'], B['d'])
886886
"""
887887
return self.basis().keys().semigroup_generators().map(self.monomial)
888888

src/sage/sets/family.py

+17
Original file line numberDiff line numberDiff line change
@@ -1380,6 +1380,23 @@ def __setstate__(self, state):
13801380
"""
13811381
self.__init__(state['_enumeration'])
13821382

1383+
def map(self, f, name=None):
1384+
r"""
1385+
Return the family `( f(\mathtt{self}[i]) )_{i \in I}`,
1386+
where `I` is the index set of ``self``.
1387+
1388+
The result is again a :class:`TrivialFamily`.
1389+
1390+
EXAMPLES::
1391+
1392+
sage: from sage.sets.family import TrivialFamily
1393+
sage: f = TrivialFamily(['a', 'b', 'd'])
1394+
sage: g = f.map(lambda x: x + '1'); g
1395+
Family ('a1', 'b1', 'd1')
1396+
"""
1397+
# tuple([... for ...]) is faster than tuple(... for ...)
1398+
return Family(tuple([f(x) for x in self._enumeration]), name=name)
1399+
13831400

13841401
from sage.sets.non_negative_integers import NonNegativeIntegers
13851402
from sage.rings.infinity import Infinity

0 commit comments

Comments
 (0)