sep function

double sep(
  1. double ra1,
  2. double dec1,
  3. double ra2,
  4. double dec2,
)

Angular separation between two equatorial positions.

ra1, dec1, ra2, dec2 all in radians. Result in radians.

Implementation

double sep(double ra1, double dec1, double ra2, double dec2) {
  final sd1 = math.sin(dec1), cd1 = math.cos(dec1);
  final sd2 = math.sin(dec2), cd2 = math.cos(dec2);
  final cDra = math.cos(ra1 - ra2);
  return math.acos(sd1 * sd2 + cd1 * cd2 * cDra);
}