class_docstr: Floor is a univariate function which returns the largest integer
  value not greater than its argument. This implementation
  generalizes floor to complex numbers by taking the floor of the
  real and imaginary parts separately.
  
  Examples
  ========
  
  >>> from sympy import floor, E, I, S, Float, Rational
  >>> floor(17)
  17
  >>> floor(Rational(23, 10))
  2
  >>> floor(2*E)
  5
  >>> floor(-Float(0.567))
  -1
  >>> floor(-I/2)
  -I
  >>> floor(S(5)/2 + 5*I/2)
  2 + 2*I
  
  See Also
  ========
  
  sympy.functions.elementary.integers.ceiling
  
  References
  ==========
  
  .. [1] "Concrete mathematics" by Graham, pp. 87
  .. [2] https://mathworld.wolfram.com/FloorFunction.html
class_docstr_tok: ["Floor","is","a","univariate","function","which","returns","the","largest","integer","value","not","greater","than","its","argument",".","This","implementation","generalizes","floor","to","complex","numbers","by","taking","the","floor","of","the","real","and","imaginary","parts","separately",".","Examples","========",">",">",">","from","sympy","import","floor",",","E",",","I",",","S",",","Float",",","Rational",">",">",">","floor","(","17",")","17",">",">",">","floor","(","Rational","(","23",",","10",")",")","2",">",">",">","floor","(","2","*","E",")","5",">",">",">","floor","(","-Float","(","0.567",")",")","-1",">",">",">","floor","(","-I\/2",")","-I",">",">",">","floor","(","S","(","5",")","\/2","+","5","*","I\/2",")","2","+","2","*","I","See","Also","========","sympy.functions.elementary.integers.ceiling","References","==========","..","[","1","]","``","Concrete","mathematics","''","by","Graham",",","pp",".","87","..","[","2","]","https",":","\/\/mathworld.wolfram.com\/FloorFunction.html"]
code: def __ge__(self, other):
      other = S(other)
      if self.args[0].is_real:
          if other.is_integer:
              return self.args[0] >= other
          if other.is_number and other.is_real:
              return self.args[0] >= ceiling(other)
      if self.args[0] == other and other.is_real:
          return S.false
      if other is S.NegativeInfinity and self.is_finite:
          return S.true
  
      return Ge(self, other, evaluate=False)
  
imports: from typing import Tuple
  from sympy.core.basic import Basic
  from sympy.core.expr import Expr
  from sympy.core import Add, S
  from sympy.core.evalf import get_integer_part, PrecisionExhausted
  from sympy.core.function import Function
  from sympy.core.logic import fuzzy_or
  from sympy.core.numbers import Integer, int_valued
  from sympy.core.relational import Gt, Lt, Ge, Le, Relational, is_eq
  from sympy.core.sympify import _sympify
  from sympy.functions.elementary.complexes import im, re
  from sympy.multipledispatch import dispatch
label_desc: Use image node_id 9 for calling the floor obj's underlying member method code with example usage: obj.__ge__(other) and returns: Ge, S, S, unknown, unknown