docs: def _m_to_e(cls, e, M):
          """Conversion from Mean Anomaly to Eccentric anomaly
  
          Procedures for solving Kepler's Equation, A. W. Odell and  R. H. Gooding,
          Celestial Mechanics 38 (1986) 307-334
          """
  
          k1 = 3 * np.pi + 2
          k2 = np.pi - 1
          k3 = 6 * np.pi - 1
          A = 3 * k2 ** 2 / k1
          B = k3 ** 2 / (6 * k1)
  
          m1 = float(M)
          if abs(m1) < 1 / 6:
              E = m1 + e * (6 * m1) ** (1 / 3) - m1
          elif m1 < 0:
              w = np.pi + m1
              E = m1 + e * (A * w / (B - w) - np.pi - m1)
          else:
              w = np.pi - m1
              E = m1 + e * (np.pi - A * w / (B - w) - m1)
  
          e1 = 1 - e
          risk_disabler = (e1 + E ** 2 / 6) >= 0.1
  
          for i in range(2):
              fdd = e * sin(E)
              fddd = e * cos(E)
  
              if risk_disabler:
                  f = (E - fdd) - m1
                  fd = 1 - fddd
              else:
                  f = cls._e_e_sin_e(e, E) - m1
                  s = sin(E / 2)
                  fd = e1 + 2 * e * s ** 2
              dee = f * fd / (0.5 * f * fdd - fd ** 2)
  
              w = fd + 0.5 * dee * (fdd + dee * fddd / 3)
              fd += dee * (fdd + 0.5 * dee * fddd)
              E -= (f - dee * (fd - w)) / fd
  
          E += M - m1
  
          return E