class_docstr: Compute the powers of an algebraic integer.
  
  Explanation
  ===========
  
  Given an algebraic integer $\theta$ by its monic irreducible polynomial
  ``T`` over :ref:`ZZ`, this class computes representations of arbitrarily
  high powers of $\theta$, as :ref:`ZZ`-linear combinations over
  $\{1, \theta, \ldots, \theta^{n-1}\}$, where $n = \deg(T)$.
  
  The representations are computed using the linear recurrence relations for
  powers of $\theta$, derived from the polynomial ``T``. See [1], Sec. 4.2.2.
  
  Optionally, the representations may be reduced with respect to a modulus.
  
  Examples
  ========
  
  >>> from sympy import Poly, cyclotomic_poly
  >>> from sympy.polys.numberfields.utilities import AlgIntPowers
  >>> T = Poly(cyclotomic_poly(5))
  >>> zeta_pow = AlgIntPowers(T)
  >>> print(zeta_pow[0])
  [1, 0, 0, 0]
  >>> print(zeta_pow[1])
  [0, 1, 0, 0]
  >>> print(zeta_pow[4])  # doctest: +SKIP
  [-1, -1, -1, -1]
  >>> print(zeta_pow[24])  # doctest: +SKIP
  [-1, -1, -1, -1]
  
  References
  ==========
  
  .. [1] Cohen, H. *A Course in Computational Algebraic Number Theory.*
class_docstr_tok: ["Compute","the","powers","of","an","algebraic","integer",".","Explanation","===========","Given","an","algebraic","integer","$","\\theta","$","by","its","monic","irreducible","polynomial","``","T","``","over",":","ref",":","`","ZZ","`",",","this","class","computes","representations","of","arbitrarily","high","powers","of","$","\\theta","$",",","as",":","ref",":","`","ZZ","`","-linear","combinations","over","$","\\","{","1",",","\\theta",",","\\ldots",",","\\theta^","{","n-1","}","\\","}","$",",","where","$","n","=","\\deg","(","T",")","$",".","The","representations","are","computed","using","the","linear","recurrence","relations","for","powers","of","$","\\theta","$",",","derived","from","the","polynomial","``","T","``",".","See","[","1","]",",","Sec",".","4.2.2",".","Optionally",",","the","representations","may","be","reduced","with","respect","to","a","modulus",".","Examples","========",">",">",">","from","sympy","import","Poly",",","cyclotomic_poly",">",">",">","from","sympy.polys.numberfields.utilities","import","AlgIntPowers",">",">",">","T","=","Poly","(","cyclotomic_poly","(","5",")",")",">",">",">","zeta_pow","=","AlgIntPowers","(","T",")",">",">",">","print","(","zeta_pow","[","0","]",")","[","1",",","0",",","0",",","0","]",">",">",">","print","(","zeta_pow","[","1","]",")","[","0",",","1",",","0",",","0","]",">",">",">","print","(","zeta_pow","[","4","]",")","#","doctest",":","+SKIP","[","-1",",","-1",",","-1",",","-1","]",">",">",">","print","(","zeta_pow","[","24","]",")","#","doctest",":","+SKIP","[","-1",",","-1",",","-1",",","-1","]","References","==========","..","[","1","]","Cohen",",","H.","*","A","Course","in","Computational","Algebraic","Number","Theory",".","*"]
code: def __getitem__(self, item):
      return self.get(item)
  
imports: from sympy.core.sympify import sympify
  from sympy.ntheory.factor_ import factorint
  from sympy.polys.domains.rationalfield import QQ
  from sympy.polys.domains.integerring import ZZ
  from sympy.polys.matrices.exceptions import DMRankError
  from sympy.polys.numberfields.minpoly import minpoly
  from sympy.printing.lambdarepr import IntervalPrinter
  from sympy.utilities.decorator import public
  from sympy.utilities.lambdify import lambdify
  from mpmath import mp
label_desc: Use image node_id 6 for calling the AlgIntPowers obj's underlying member method code with example usage: obj.__getitem__(item) and returns: self