phaseAngleEq function

double phaseAngleEq(
  1. double ra,
  2. double dec,
  3. double delta,
  4. double ra0,
  5. double dec0,
  6. double r,
)

Phase angle from equatorial coordinates.

ra, dec, delta are Moon's geocentric RA, Dec, and distance. ra0, dec0, r are Sun's geocentric RA, Dec, and distance. Distances must be in the same units.

Implementation

double phaseAngleEq(double ra, double dec, double delta,
    double ra0, double dec0, double r) {
  final cPsi = math.sin(dec0) * math.sin(dec) +
      math.cos(dec0) * math.cos(dec) * math.cos(ra0 - ra);
  final sPsi = math.sin(math.acos(cPsi));
  return math.atan2(r * sPsi, delta - r * cPsi);
}