fixed AirspaceAircraftPerformance::SolutionVertical(fixed distance, fixed altitude, fixed base, fixed top, fixed &intercept_alt) const { if (!SolutionExists(distance, altitude, base, top)) return fixed(-1); if (top <= base) { // unique solution fixed t_this = SolutionGeneral(distance, altitude - top); if (t_this < fixed_big) { intercept_alt = top; return t_this; } return fixed(-1); } AirspaceAircraftInterceptVertical aaiv(*this, distance, altitude, base, top); return aaiv.solve(intercept_alt); }
double AirspaceAircraftPerformance::SolutionVertical(double distance, double altitude, double base, double top, double &intercept_alt) const { if (!SolutionExists(distance, altitude, base, top)) return -1; if (top <= base) { // unique solution auto t_this = SolutionGeneral(distance, altitude - top); if (t_this < BIG) { intercept_alt = top; return t_this; } return -1; } AirspaceAircraftInterceptVertical aaiv(*this, distance, altitude, base, top); return aaiv.solve(intercept_alt); }