limb function

double limb(
  1. double ra,
  2. double dec,
  3. double ra0,
  4. double dec0,
)

Position angle of the Moon's bright limb.

ra, dec are Moon coordinates; ra0, dec0 are Sun coordinates. All in radians. Returns position angle in radians.

Implementation

double limb(double ra, double dec, double ra0, double dec0) {
  final sDa = math.sin(ra0 - ra);
  return math.atan2(
      math.cos(dec0) * sDa,
      math.sin(dec0) * math.cos(dec) - math.cos(dec0) * math.sin(dec) * math.cos(ra0 - ra));
}