From: curt Date: Fri, 20 Nov 1998 01:00:36 +0000 (+0000) Subject: Patch in fgGeoc2Geod() to avoid a floating explosion. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=a644bd2b03169483da74f476b17a8fc41ad0d85c;p=simgear.git Patch in fgGeoc2Geod() to avoid a floating explosion. point3d.hxx include math.h for FreeBSD --- 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() //