class_docstr: The Recurrence Operators are defined by a list of polynomials
  in the base ring and the parent ring of the Operator.
  
  Explanation
  ===========
  
  Takes a list of polynomials for each power of Sn and the
  parent ring which must be an instance of RecurrenceOperatorAlgebra.
  
  A Recurrence Operator can be created easily using
  the operator `Sn`. See examples below.
  
  Examples
  ========
  
  >>> from sympy.holonomic.recurrence import RecurrenceOperator, RecurrenceOperators
  >>> from sympy import ZZ
  >>> from sympy import symbols
  >>> n = symbols('n', integer=True)
  >>> R, Sn = RecurrenceOperators(ZZ.old_poly_ring(n),'Sn')
  
  >>> RecurrenceOperator([0, 1, n**2], R)
  (1)Sn + (n**2)Sn**2
  
  >>> Sn*n
  (n + 1)Sn
  
  >>> n*Sn*n + 1 - Sn**2*n
  (1) + (n**2 + n)Sn + (-n - 2)Sn**2
  
  See Also
  ========
  
  DifferentialOperatorAlgebra
class_docstr_tok: ["The","Recurrence","Operators","are","defined","by","a","list","of","polynomials","in","the","base","ring","and","the","parent","ring","of","the","Operator",".","Explanation","===========","Takes","a","list","of","polynomials","for","each","power","of","Sn","and","the","parent","ring","which","must","be","an","instance","of","RecurrenceOperatorAlgebra",".","A","Recurrence","Operator","can","be","created","easily","using","the","operator","`","Sn","`",".","See","examples","below",".","Examples","========",">",">",">","from","sympy.holonomic.recurrence","import","RecurrenceOperator",",","RecurrenceOperators",">",">",">","from","sympy","import","ZZ",">",">",">","from","sympy","import","symbols",">",">",">","n","=","symbols","(","'n","'",",","integer=True",")",">",">",">","R",",","Sn","=","RecurrenceOperators","(","ZZ.old_poly_ring","(","n",")",",","'Sn","'",")",">",">",">","RecurrenceOperator","(","[","0",",","1",",","n","*","*","2","]",",","R",")","(","1",")","Sn","+","(","n","*","*","2",")","Sn","*","*","2",">",">",">","Sn","*","n","(","n","+","1",")","Sn",">",">",">","n","*","Sn","*","n","+","1","-","Sn","*","*","2","*","n","(","1",")","+","(","n","*","*","2","+","n",")","Sn","+","(","-n","-","2",")","Sn","*","*","2","See","Also","========","DifferentialOperatorAlgebra"]
code: def __eq__(self, other):
      if isinstance(other, RecurrenceOperator):
          if (
              self.listofpoly == other.listofpoly
              and self.parent == other.parent
          ):
              return True
          else:
              return False
      else:
          if self.listofpoly[0] == other:
              for i in self.listofpoly[1:]:
                  if i is not self.parent.base.zero:
                      return False
              return True
          else:
              return False
  
imports: from sympy.core.singleton import S
  from sympy.core.symbol import Symbol, symbols
  from sympy.printing import sstr
  from sympy.core.sympify import sympify
label_desc: Use image node_id 9 for calling the RecurrenceOperator obj's underlying member method code with example usage: obj.__eq__(other) and returns: True, False, True, False, False