本文整理汇总了Python中sage.structure.element.parent函数的典型用法代码示例。如果您正苦于以下问题:Python parent函数的具体用法?Python parent怎么用?Python parent使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了parent函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _element_constructor_
def _element_constructor_(self, vectors):
"""
Construct an element of ``self`` from ``vectors``.
TESTS::
sage: E.<x,y> = ExteriorAlgebra(QQ)
sage: H = E.hochschild_complex(E)
sage: H(0)
Trivial chain
sage: H(2)
Chain(0: 2)
sage: H(x+2*y)
Chain(0: x + 2*y)
sage: H({0: H.module(0).an_element()})
Chain(0: 2 + 2*x + 3*y)
sage: H({2: H.module(2).an_element()})
Chain(2: 2*1 # 1 # 1 + 2*1 # 1 # x + 3*1 # 1 # y)
sage: H({0:x-y, 2: H.module(2).an_element()})
Chain with 2 nonzero terms over Rational Field
sage: H([2])
Traceback (most recent call last):
...
ValueError: cannot construct an element from [2]
"""
if not vectors: # special case: the zero chain
return self.element_class(self, {})
# special case: an element of the defining module
if self._M.has_coerce_map_from(parent(vectors)):
vectors = self._M(vectors)
if parent(vectors) is self._M:
mc = vectors.monomial_coefficients(copy=False)
vec = self.module(0)._from_dict({(k,): mc[k] for k in mc})
return self.element_class(self, {0: vec})
if isinstance(vectors, (Chain_class, self.element_class)):
vectors = vectors._vec
data = dict()
if not isinstance(vectors, dict):
raise ValueError("cannot construct an element from {}".format(vectors))
# Special handling for the 0 free module
# FIXME: Allow coercions between the 0 free module and the defining module
if 0 in vectors:
vec = vectors.pop(0)
if parent(vec) is self._M:
mc = vec.monomial_coefficients(copy=False)
data[0] = self.module(0)._from_dict({(k,): mc[k] for k in mc})
else:
data[0] = self.module(0)(vec)
for degree in vectors:
vec = self.module(degree)(vectors[degree])
if not vec:
continue
data[degree] = vec
return self.element_class(self, data)
示例2: __ge__
def __ge__(self, other):
"""
TESTS::
sage: A = crystals.KirillovReshetikhin(['C',2,1], 1,2).affinization()
sage: S = A.subcrystal(max_depth=2)
sage: ([(i,j) for i in range(len(S)) for j in range(len(S)) if S[i]>=S[j]]
....: == [(i,j) for i in range(len(S)) for j in range(len(S)) if
....: S[i].value>=S[j].value])
True
"""
return parent(self) is parent(other) and self.value >= other.value
示例3: __cmp__
def __cmp__(self, other):
"""
TESTS::
sage: A = crystals.KirillovReshetikhin(['C',2,1], 1,2).affinization()
sage: S = A.subcrystal(max_depth=2)
sage: ([(i,j,cmp(S[i],S[j])) for i in range(len(S)) for j in range(len(S))]
....: == [(i,j,cmp(S[i].value,S[j].value)) for i in range(len(S)) for j in range(len(S))])
True
"""
if parent(self) is parent(other):
return cmp(self.value, other.value)
else:
return cmp(parent(self), parent(other))
示例4: __lt__
def __lt__(self, other):
""""
EXAMPLES::
sage: K = crystals.KirillovReshetikhin(['A',2,1],1,1)
sage: b = K(rows=[[1]])
sage: c = K(rows=[[2]])
sage: c<b
False
sage: b<b
False
sage: b<c
True
"""
return parent(self) is parent(other) and self.value < other.value
示例5: __ge__
def __ge__(self, other):
""""
EXAMPLES::
sage: K = crystals.KirillovReshetikhin(['A',2,1],1,1)
sage: b = K(rows=[[1]])
sage: c = K(rows=[[2]])
sage: c>=b
True
sage: b>=b
True
sage: b>=c
False
"""
return parent(self) is parent(other) and self.value >= other.value
示例6: is_parent_of
def is_parent_of(self, element):
"""
Returns whether ``self`` is the parent of ``element``
INPUT:
- ``element`` -- any object
EXAMPLES::
sage: S = ZZ
sage: S.is_parent_of(1)
True
sage: S.is_parent_of(2/1)
False
This method differs from :meth:`__contains__` because it
does not attempt any coercion::
sage: 2/1 in S, S.is_parent_of(2/1)
(True, False)
sage: int(1) in S, S.is_parent_of(int(1))
(True, False)
"""
from sage.structure.element import parent
return parent(element) == self
示例7: index_of_object
def index_of_object(self, i):
"""
Try to return the node of the Dynkin diagram indexing the object `i`.
OUTPUT: a node of the Dynkin diagram or ``None``
EXAMPLES::
sage: L = RootSystem(["A",3]).root_lattice()
sage: alpha = L.simple_roots()
sage: omega = RootSystem(["A",3]).weight_lattice().fundamental_weights()
sage: options = L.plot_parse_options(labels=False)
sage: options.index_of_object(3)
3
sage: options.index_of_object(alpha[1])
1
sage: options.index_of_object(omega[2])
2
sage: options.index_of_object(omega[2]+omega[3])
sage: options.index_of_object(30)
sage: options.index_of_object("bla")
"""
if parent(i) in RootLatticeRealizations and len(i) == 1 and i.leading_coefficient().is_one():
i = i.leading_support()
if i in self.space.cartan_type().index_set():
return i
return None
示例8: _evalf_
def _evalf_(self, n, x, parent=None, algorithm=None):
"""
EXAMPLES::
sage: bessel_J(0.0, 1.0)
0.765197686557967
sage: bessel_J(0, 1).n(digits=20)
0.76519768655796655145
sage: bessel_J(0.5, 1.5)
0.649838074753747
Check for correct rounding (:trac:`17122`)::
sage: R = RealField(113)
sage: a = R("8.935761195587725798762818805462843676e-01")
sage: aa = RealField(200)(a)
sage: for n in [-10..10]:
....: b = bessel_J(R(n), a)
....: bb = R(bessel_J(n, aa))
....: if b != bb:
....: print n, b-bb
"""
if parent is not None:
x = parent(x)
try:
return x.jn(Integer(n))
except Exception:
pass
n, x = get_coercion_model().canonical_coercion(n, x)
import mpmath
return mpmath_utils.call(mpmath.besselj, n, x, parent=parent)
示例9: _cmp_
def _cmp_(self, other):
"""
EXAMPLES::
sage: one = lisp(1); two = lisp(2)
sage: one == one
True
sage: one != two
True
sage: one < two
True
sage: two > one
True
sage: one < 1
False
sage: two == 2
True
"""
P = self._check_valid()
if parent(other) is not P:
other = P(other)
if P.eval('(= %s %s)'%(self.name(), other.name())) == P._true_symbol():
return 0
elif P.eval('(< %s %s)'%(self.name(), other.name())) == P._true_symbol():
return -1
else:
return 1
示例10: __pow__
def __pow__(self, n):
"""
EXAMPLES::
sage: a = maxima('2')
sage: a^(3/4)
2^(3/4)
::
sage: f = maxima.function('x','sin(x)')
sage: g = maxima('-cos(x)')
sage: f^g
1/sin(x)^cos(x)
::
sage: f = maxima.function('x','sin(x)')
sage: g = maxima('-cos(x)') # not a function
sage: g^f
(-cos(x))^sin(x)
"""
P = self._check_valid()
if parent(n) is not P:
n = P(n)
return self._operation("^", n)
示例11: __contains__
def __contains__(self, x):
r"""
Test if x is an element of this group. This checks that x defines (is?) a 2x2 integer matrix of determinant 1, and
then hands over to the routine _contains_sl2, which derived classes should implement.
EXAMPLES::
sage: [1,2] in SL2Z # indirect doctest
False
sage: [1,2,0,1] in SL2Z # indirect doctest
True
sage: SL2Z([1,2,0,1]) in Gamma(3) # indirect doctest
False
sage: -1 in SL2Z
True
sage: 2 in SL2Z
False
"""
# Do not override this function! Derived classes should override
# _contains_sl2.
if isinstance(x, list) and len(x) == 4:
if not (x[0] in ZZ and x[1] in ZZ and x[2] in ZZ and x[3] in ZZ):
return False
a,b,c,d = map(ZZ, x)
if a*d - b*c != 1: return False
return self._contains_sl2(a,b,c,d)
else:
if parent(x) is not SL2Z:
try:
y = SL2Z(x)
except TypeError:
return False
x = y
return self._contains_sl2(x.a(),x.b(),x.c(),x.d())
示例12: strongly_finer
def strongly_finer(self):
"""
Return the set of ordered set partitions which are strongly
finer than ``self``.
See :meth:`is_strongly_finer` for the definition of "strongly
finer".
EXAMPLES::
sage: C = OrderedSetPartition([[1, 3], [2]]).strongly_finer()
sage: C.cardinality()
2
sage: C.list()
[[{1}, {3}, {2}], [{1, 3}, {2}]]
sage: OrderedSetPartition([]).strongly_finer()
{[]}
sage: W = OrderedSetPartition([[4, 9], [-1, 2]])
sage: W.strongly_finer().list()
[[{4}, {9}, {-1}, {2}],
[{4}, {9}, {-1, 2}],
[{4, 9}, {-1}, {2}],
[{4, 9}, {-1, 2}]]
"""
par = parent(self)
if not self:
return FiniteEnumeratedSet([self])
else:
buo = OrderedSetPartition.bottom_up_osp
return FiniteEnumeratedSet([par(sum((list(P) for P in C), []))
for C in cartesian_product([[buo(X, comp) for comp in Compositions(len(X))] for X in self])])
示例13: _element_constructor_
def _element_constructor_(self, element):
"""
Coerce ``element`` into ``self``
INPUT:
- ``element`` -- any object
This default implementation returns ``element`` if
``self`` is a facade for ``parent(element)`. Otherwise it
attempts in turn to coerce ``element`` into each parent
``self`` is a facade for.
This implementation is only valid for a facade parent
which models the full union of the parents it is a facade
for. Other facade parents should redefine
:meth:`element_constructor` appropriately.
EXAMPLES::
sage: S = Sets().Facades().example("union"); S
An example of a facade set: the integers completed by +-infinity
sage: S(1)
1
sage: S(1/2)
Traceback (most recent call last):
...
ValueError: Can't coerce `1/2` in any parent `An example of a facade set: the integers completed by +-infinity` is a facade for
sage: S(2/1)
2
sage: S(2/1).parent()
Integer Ring
sage: S(int(1))
1
sage: S(int(1)).parent()
Integer Ring
Facade parents that model strict subsets should redefine
:meth:`element_constructor`::
sage: S = Sets().Facades().example(); S
An example of facade set: the monoid of positive integers
sage: S(-1)
Traceback (most recent call last):
...
ValueError: %s should be positive
"""
if self.is_parent_of(element):
return element
else:
parents = self.facade_for()
if parents is True:
return NotImplementedError
for parent in self.facade_for():
try:
return parent(element)
except Exception:
pass
raise ValueError, "Can't coerce `%s` in any parent `%s` is a facade for"%(element, self)
示例14: __cmp__
def __cmp__(self, other):
""""
EXAMPLES::
sage: K = crystals.KirillovReshetikhin(['A',2,1],1,1)
sage: b = K(rows=[[1]])
sage: c = K(rows=[[2]])
sage: cmp(b,c)
-1
sage: cmp(b,b)
0
If the parent are different, it uses comparison of the parents::
sage: cmp(b,1) == cmp(b.parent(), ZZ)
True
"""
return cmp(parent(self), parent(other)) or cmp(self.value, other.value)
示例15: __ne__
def __ne__(self, other):
r"""
TESTS::
sage: from flatsurf import *
sage: t = translation_surfaces.square_torus()
sage: F = t.fundamental_group()
sage: a,b = F.gens()
sage: a != b
True
sage: a*b != b*a
True
sage: a*b != a*b
False
"""
return parent(self) is not parent(other) or \
self._polys != other._polys or \
self._edges != other._edges