fixed AirspaceAircraftPerformance::SolutionHorizontal(fixed distance_min, fixed distance_max, fixed altitude, fixed h, fixed &intercept_distance) const { if (!SolutionExists(distance_max, altitude, h, h)) return fixed(-1); const fixed dh = altitude - h; if (distance_max <= distance_min) { // unique solution fixed t_this = SolutionGeneral(distance_max, dh); if (t_this != fixed_big) { intercept_distance = distance_max; return t_this; } return fixed(-1); } AirspaceAircraftInterceptHorizontal aaih(*this, distance_min, distance_max, dh); return aaih.solve(intercept_distance); }
double AirspaceAircraftPerformance::SolutionHorizontal(double distance_min, double distance_max, double altitude, double h, double &intercept_distance) const { if (!SolutionExists(distance_max, altitude, h, h)) return -1; const auto dh = altitude - h; if (distance_max <= distance_min) { // unique solution auto t_this = SolutionGeneral(distance_max, dh); if (t_this != BIG) { intercept_distance = distance_max; return t_this; } return -1; } AirspaceAircraftInterceptHorizontal aaih(*this, distance_min, distance_max, dh); return aaih.solve(intercept_distance); }