Groups of imaginary elements - Groups

Skip to content
Back to top
View this page
Edit this page

# 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)

  Bases: `AdditiveGroupElement`

  An element of `ImaginaryGroup`.

  INPUT:

  - `parent` – a SageMath parent

  - `imag` – an element of parent’s base

  imag()

    Return the imaginary part of this imaginary element.

    EXAMPLES:

    Sage

        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

    Python

        >>> 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()

    Return the real part (\(=0\)) of this imaginary element.

    EXAMPLES:

    Sage

        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

    Python

        >>> 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)

  Bases: `UniqueRepresentation`, `Parent`

  A group whose elements are purely imaginary.

  INPUT:

  - `base` – a SageMath parent

  - `category` – a category

  EXAMPLES:

  Sage

      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

  Python

      >>> 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

    alias of `ImaginaryElement`