Patch in fgGeoc2Geod() to avoid a floating explosion.

point3d.hxx include math.h for FreeBSD
This commit is contained in:
curt 1998-11-20 01:00:36 +00:00
parent 62ca2e0227
commit a644bd2b03
2 changed files with 17 additions and 1 deletions

View File

@ -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()
//

View File

@ -33,6 +33,8 @@
#include <iostream>
#include <assert.h>
#include <math.h>
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()
//