kepler2b function

double kepler2b(
  1. double e,
  2. double m, {
  3. int places = 8,
})

Kepler2 with Steele limiting to avoid divergence.

Implementation

double kepler2b(double e, double m, {int places = 8}) {
  return decimalPlaces(
    (e0) {
      final se = math.sin(e0);
      final ce = math.cos(e0);
      var d = (m + e * se - e0) / (1 - e * ce);
      if (d > 0.5) {
        d = 0.5;
      } else if (d < -0.5) {
        d = -0.5;
      }
      return e0 + d;
    },
    m,
    places: places,
    maxIterations: places,
  );
}