@@ -691,12 +691,6 @@ def _mul_(self, other_dynamical_semigroup):
691
691
ValueError: left dynamical semigroup's domain must equal right dynamical semigroup's codomain
692
692
693
693
"""
694
- # if isinstance(self, DynamicalSemigroup_projective) and \
695
- # not isinstance(other_dynamical_semigroup, DynamicalSemigroup_projective):
696
- # raise TypeError("can only multiply `DynamicalSemigroup_projective` objects")
697
- # if isinstance(self, DynamicalSemigroup_affine) and \
698
- # not isinstance(other_dynamical_semigroup, DynamicalSemigroup_affine):
699
- # raise TypeError("can only multiply `DynamicalSemigroup_projective` objects")
700
694
if type (self ) != type (other_dynamical_semigroup ):
701
695
raise TypeError ("can only multiply dynamical semigroups with other dynamical semigroups of the same type" )
702
696
if self .domain () != other_dynamical_semigroup .codomain ():
@@ -1035,175 +1029,6 @@ def dehomogenize(self, n):
1035
1029
new_systems .append (new_system )
1036
1030
return DynamicalSemigroup_affine (new_systems )
1037
1031
1038
- # def _mul_(self, other_dynamical_semigroup):
1039
- # r"""
1040
- # Return a new :class:`DynamicalSemigroup_projective` that is the result of multiplying
1041
- # this dynamical semigroup with another dynamical semigroup using the * operator.
1042
-
1043
- # Let `f` be a dynamical semigroup with generators `\{ f_1, f_2, \dots, f_m \}`
1044
- # and `g` be a dynamical semigroup with generators `\{ g_1, g_2, \dots, g_n \}`.
1045
- # The product `f * g` has generators
1046
- # `\{ f_i(g_j) : 1 \leq i \leq m, 1 \leq j \leq n \} \cup \{ g_j(f_i) : 1 \leq i \leq m, 1 \leq j \leq n \}`.
1047
-
1048
- # INPUT:
1049
-
1050
- # - ``other_dynamical_semigroup`` -- a dynamical semigroup over projective space
1051
-
1052
- # OUTPUT: :class:`DynamicalSemigroup_projective`
1053
-
1054
- # EXAMPLES::
1055
-
1056
- # sage: P.<x,y> = ProjectiveSpace(QQ, 1)
1057
- # sage: f1 = DynamicalSystem([x, y], P)
1058
- # sage: f2 = DynamicalSystem([x^2, y^2], P)
1059
- # sage: g1 = DynamicalSystem([x^3, y^3], P)
1060
- # sage: g2 = DynamicalSystem([x^4, y^4], P)
1061
- # sage: f = DynamicalSemigroup((f1, f2))
1062
- # sage: g = DynamicalSemigroup((g1, g2))
1063
- # sage: f*g
1064
- # Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 8 dynamical systems:
1065
- # Dynamical System of Projective Space of dimension 1 over Rational Field
1066
- # Defn: Defined on coordinates by sending (x : y) to
1067
- # (x^3 : y^3)
1068
- # Dynamical System of Projective Space of dimension 1 over Rational Field
1069
- # Defn: Defined on coordinates by sending (x : y) to
1070
- # (x^4 : y^4)
1071
- # Dynamical System of Projective Space of dimension 1 over Rational Field
1072
- # Defn: Defined on coordinates by sending (x : y) to
1073
- # (x^6 : y^6)
1074
- # Dynamical System of Projective Space of dimension 1 over Rational Field
1075
- # Defn: Defined on coordinates by sending (x : y) to
1076
- # (x^8 : y^8)
1077
- # Dynamical System of Projective Space of dimension 1 over Rational Field
1078
- # Defn: Defined on coordinates by sending (x : y) to
1079
- # (x^3 : y^3)
1080
- # Dynamical System of Projective Space of dimension 1 over Rational Field
1081
- # Defn: Defined on coordinates by sending (x : y) to
1082
- # (x^6 : y^6)
1083
- # Dynamical System of Projective Space of dimension 1 over Rational Field
1084
- # Defn: Defined on coordinates by sending (x : y) to
1085
- # (x^4 : y^4)
1086
- # Dynamical System of Projective Space of dimension 1 over Rational Field
1087
- # Defn: Defined on coordinates by sending (x : y) to
1088
- # (x^8 : y^8)
1089
-
1090
- # TESTS::
1091
-
1092
- # sage: P.<x,y> = ProjectiveSpace(QQ, 1)
1093
- # sage: f1 = DynamicalSystem([x, y], P)
1094
- # sage: f2 = DynamicalSystem([x^2, y^2], P)
1095
- # sage: g1 = DynamicalSystem([x^3, y^3], P)
1096
- # sage: g2 = DynamicalSystem([x^4, y^4], P)
1097
- # sage: f = DynamicalSemigroup((f1, f2))
1098
- # sage: g = DynamicalSemigroup((g1, g2))
1099
- # sage: f*g == g*f
1100
- # True
1101
-
1102
- # ::
1103
-
1104
- # sage: P.<x,y> = ProjectiveSpace(QQ, 1)
1105
- # sage: Q.<z,w> = ProjectiveSpace(QQ, 1)
1106
- # sage: f1 = DynamicalSystem([x, y], P)
1107
- # sage: f2 = DynamicalSystem([x^2, y^2], P)
1108
- # sage: g1 = DynamicalSystem([z^3, w^3], Q)
1109
- # sage: g2 = DynamicalSystem([z^4, w^4], Q)
1110
- # sage: f = DynamicalSemigroup((f1, f2))
1111
- # sage: g = DynamicalSemigroup((g1, g2))
1112
- # sage: f*g == g*f
1113
- # True
1114
-
1115
- # ::
1116
-
1117
- # sage: P.<x,y> = ProjectiveSpace(QQ, 1)
1118
- # sage: f1 = DynamicalSystem([x, y], P)
1119
- # sage: f2 = DynamicalSystem([x^2, y^2], P)
1120
- # sage: g1 = DynamicalSystem([x^3, y^3], P)
1121
- # sage: g2 = DynamicalSystem([x^4, y^4], P)
1122
- # sage: h1 = DynamicalSystem([x^5, y^5], P)
1123
- # sage: h2 = DynamicalSystem([x^6, y^6], P)
1124
- # sage: f = DynamicalSemigroup((f1, f2))
1125
- # sage: g = DynamicalSemigroup((g1, g2))
1126
- # sage: h = DynamicalSemigroup((h1, h2))
1127
- # sage: f*(g*h) == (f*g)*h
1128
- # True
1129
-
1130
- # ::
1131
-
1132
- # sage: P.<x,y> = ProjectiveSpace(QQ, 1)
1133
- # sage: Q.<z,w> = ProjectiveSpace(QQ, 1)
1134
- # sage: R.<u,v> = ProjectiveSpace(QQ, 1)
1135
- # sage: f1 = DynamicalSystem([x, y], P)
1136
- # sage: f2 = DynamicalSystem([x^2, y^2], P)
1137
- # sage: g1 = DynamicalSystem([z^3, z^3], Q)
1138
- # sage: g2 = DynamicalSystem([z^4, w^4], Q)
1139
- # sage: h1 = DynamicalSystem([u^5, v^5], R)
1140
- # sage: h2 = DynamicalSystem([u^6, v^6], R)
1141
- # sage: f = DynamicalSemigroup((f1, f2))
1142
- # sage: g = DynamicalSemigroup((g1, g2))
1143
- # sage: h = DynamicalSemigroup((h1, h2))
1144
- # sage: f*(g*h) == (f*g)*h
1145
- # True
1146
-
1147
- # ::
1148
-
1149
- # sage: P.<x,y> = ProjectiveSpace(QQ, 1)
1150
- # sage: A.<z> = AffineSpace(QQ, 1)
1151
- # sage: f1 = DynamicalSystem([x, y], P)
1152
- # sage: f2 = DynamicalSystem([x^2, y^2], P)
1153
- # sage: g1 = DynamicalSystem(z^3, A)
1154
- # sage: g2 = DynamicalSystem(z^4, A)
1155
- # sage: f = DynamicalSemigroup((f1, f2))
1156
- # sage: g = DynamicalSemigroup((g1, g2))
1157
- # sage: f*g
1158
- # Traceback (most recent call last):
1159
- # ...
1160
- # TypeError: can only multiply `DynamicalSemigroup_projective` objects
1161
-
1162
- # ::
1163
-
1164
- # sage: P.<x,y> = ProjectiveSpace(QQ, 1)
1165
- # sage: Q.<u, v, w> = ProjectiveSpace(QQ, 2)
1166
- # sage: f1 = DynamicalSystem([x, y], P)
1167
- # sage: f2 = DynamicalSystem([x^2, y^2], P)
1168
- # sage: g1 = DynamicalSystem([u^3, v^3, w^3], Q)
1169
- # sage: g2 = DynamicalSystem([u^4, v^4, w^4], Q)
1170
- # sage: f = DynamicalSemigroup((f1, f2))
1171
- # sage: g = DynamicalSemigroup((g1, g2))
1172
- # sage: f*g
1173
- # Traceback (most recent call last):
1174
- # ...
1175
- # ValueError: cannot multiply dynamical semigroups of different dimensions
1176
- # """
1177
- # if isinstance(self, DynamicalSemigroup_projective) and \
1178
- # not isinstance(other_dynamical_semigroup, DynamicalSemigroup_projective):
1179
- # raise TypeError("can only multiply `DynamicalSemigroup_projective` objects")
1180
- # if isinstance(self, DynamicalSemigroup_affine) and \
1181
- # not isinstance(other_dynamical_semigroup, DynamicalSemigroup_affine):
1182
- # raise TypeError("can only multiply `DynamicalSemigroup_projective` objects")
1183
- # if self.domain() != other_dynamical_semigroup.codomain():
1184
- # raise ValueError("left dynamical semigroup's domain must equal right dynamical semigroup's codomain")
1185
- # composite_systems = []
1186
- # my_polys = self.defining_polynomials()
1187
- # other_polys = other_dynamical_semigroup.defining_polynomials()
1188
- # for my_poly in my_polys:
1189
- # for other_poly in other_polys:
1190
- # composite_poly = []
1191
- # for coordinate_poly in my_poly:
1192
- # composite_poly.append(coordinate_poly(other_poly))
1193
- # composite_system = DynamicalSystem_projective(composite_poly)
1194
- # composite_systems.append(composite_system)
1195
- # for other_poly in other_polys:
1196
- # for my_poly in my_polys:
1197
- # composite_poly = []
1198
- # for coordinate_poly in other_poly:
1199
- # composite_poly.append(coordinate_poly(my_poly))
1200
- # composite_system = DynamicalSystem_projective(composite_poly)
1201
- # composite_systems.append(composite_system)
1202
- # for f in self.defining_systems():
1203
- # for g in other_dynamical_semigroup.defining_systems():
1204
- # composite_systems.append(f*g)
1205
- # return DynamicalSemigroup_projective(composite_systems)
1206
-
1207
1032
class DynamicalSemigroup_projective_field (DynamicalSemigroup_projective ):
1208
1033
pass
1209
1034
0 commit comments