From a644bd2b03169483da74f476b17a8fc41ad0d85c Mon Sep 17 00:00:00 2001 From: curt Date: Fri, 20 Nov 1998 01:00:36 +0000 Subject: [PATCH] Patch in fgGeoc2Geod() to avoid a floating explosion. point3d.hxx include math.h for FreeBSD --- Math/fg_geodesy.cxx | 12 +++++++++++- Math/point3d.hxx | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Math/fg_geodesy.cxx b/Math/fg_geodesy.cxx index ac7fa9bb..b6d1a214 100644 --- a/Math/fg_geodesy.cxx +++ b/Math/fg_geodesy.cxx @@ -48,7 +48,9 @@ void fgGeocToGeod( double lat_geoc, double radius, double } else { t_lat = tan(lat_geoc); x_alpha = E*EQUATORIAL_RADIUS_M/sqrt(t_lat*t_lat + E*E); - mu_alpha = atan2(sqrt(RESQ_M - x_alpha*x_alpha),E*x_alpha); + double tmp = RESQ_M - x_alpha * x_alpha; + if ( tmp < 0.0 ) { tmp = 0.0; } + mu_alpha = atan2(sqrt(tmp),E*x_alpha); if (lat_geoc < 0) mu_alpha = - mu_alpha; sin_mu_a = sin(mu_alpha); delt_lambda = mu_alpha - lat_geoc; @@ -154,6 +156,10 @@ void fgGeodToGeoc( double lat_geod, double alt, double *sl_radius, $Header$ $Log$ +Revision 1.4 1998/11/20 01:00:36 curt +Patch in fgGeoc2Geod() to avoid a floating explosion. +point3d.hxx include math.h for FreeBSD + Revision 1.3 1998/11/11 00:18:36 curt Check for domain error in fgGeoctoGeod() @@ -236,6 +242,10 @@ Initial Flight Gear revision. // $Log$ +// Revision 1.4 1998/11/20 01:00:36 curt +// Patch in fgGeoc2Geod() to avoid a floating explosion. +// point3d.hxx include math.h for FreeBSD +// // Revision 1.3 1998/11/11 00:18:36 curt // Check for domain error in fgGeoctoGeod() // diff --git a/Math/point3d.hxx b/Math/point3d.hxx index ba43a8c0..30054bd0 100644 --- a/Math/point3d.hxx +++ b/Math/point3d.hxx @@ -33,6 +33,8 @@ #include #include +#include + const double fgPoint3_Epsilon = 0.0000001; @@ -293,6 +295,10 @@ Point3D::distance3D(const Point3D& a ) const // $Log$ +// Revision 1.5 1998/11/20 01:00:38 curt +// Patch in fgGeoc2Geod() to avoid a floating explosion. +// point3d.hxx include math.h for FreeBSD +// // Revision 1.4 1998/11/11 00:18:38 curt // Check for domain error in fgGeoctoGeod() // -- 2.39.5