Groups of imaginary elements¶
Note
One main purpose of such groups is in an
asymptotic ring's
growth group
when an element like \(n^z\)
(for some constant \(z\)) is split into
\(n^{\Re z + I\Im z}\).
(Note that the first summand in the exponent determines the growth,
the second does not influence the growth.)
AUTHORS:
- Daniel Krenn (2018) 
Classes and Methods¶
- class sage.groups.misc_gps.imaginary_groups.ImaginaryElement(parent, imag)[source]¶
- Bases: - AdditiveGroupElement- An element of - ImaginaryGroup.- INPUT: - parent– a SageMath parent
- imag– an element of parent’s base
 - imag()[source]¶
- Return the imaginary part of this imaginary element. - EXAMPLES: - sage: from sage.groups.misc_gps.imaginary_groups import ImaginaryGroup sage: J = ImaginaryGroup(ZZ) sage: J(I).imag() # needs sage.symbolic 1 sage: imag_part(J(I)) # indirect doctest # needs sage.symbolic 1 - >>> from sage.all import * >>> from sage.groups.misc_gps.imaginary_groups import ImaginaryGroup >>> J = ImaginaryGroup(ZZ) >>> J(I).imag() # needs sage.symbolic 1 >>> imag_part(J(I)) # indirect doctest # needs sage.symbolic 1 
 - real()[source]¶
- Return the real part (\(=0\)) of this imaginary element. - EXAMPLES: - sage: from sage.groups.misc_gps.imaginary_groups import ImaginaryGroup sage: J = ImaginaryGroup(ZZ) sage: J(I).real() # needs sage.symbolic 0 sage: real_part(J(I)) # indirect doctest # needs sage.symbolic 0 - >>> from sage.all import * >>> from sage.groups.misc_gps.imaginary_groups import ImaginaryGroup >>> J = ImaginaryGroup(ZZ) >>> J(I).real() # needs sage.symbolic 0 >>> real_part(J(I)) # indirect doctest # needs sage.symbolic 0 
 
- class sage.groups.misc_gps.imaginary_groups.ImaginaryGroup(base, category)[source]¶
- Bases: - UniqueRepresentation,- Parent- A group whose elements are purely imaginary. - INPUT: - base– a SageMath parent
- category– a category
 - EXAMPLES: - sage: from sage.groups.misc_gps.imaginary_groups import ImaginaryGroup sage: J = ImaginaryGroup(ZZ) sage: J(0) 0 sage: J(imag=100) 100*I sage: J(3*I) # needs sage.symbolic 3*I sage: J(1 + 2*I) # needs sage.symbolic Traceback (most recent call last): ... ValueError: 2*I + 1 is not in Imaginary Group over Integer Ring because it is not purely imaginary - >>> from sage.all import * >>> from sage.groups.misc_gps.imaginary_groups import ImaginaryGroup >>> J = ImaginaryGroup(ZZ) >>> J(Integer(0)) 0 >>> J(imag=Integer(100)) 100*I >>> J(Integer(3)*I) # needs sage.symbolic 3*I >>> J(Integer(1) + Integer(2)*I) # needs sage.symbolic Traceback (most recent call last): ... ValueError: 2*I + 1 is not in Imaginary Group over Integer Ring because it is not purely imaginary - Element[source]¶
- alias of - ImaginaryElement