[hamradio-commits] [gnss-sdr] 72/251: fixing unintended integer division
Carles Fernandez
carles_fernandez-guest at moszumanska.debian.org
Wed Sep 2 00:22:37 UTC 2015
This is an automated email from the git hooks/post-receive script.
carles_fernandez-guest pushed a commit to branch master
in repository gnss-sdr.
commit 63e7cf810c5a622d6c8d829cdcefcfb16ac7e702
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date: Wed May 13 00:26:12 2015 +0200
fixing unintended integer division
---
src/algorithms/PVT/libs/gps_l1_ca_ls_pvt.cc | 22 +++++++++++-----------
src/algorithms/PVT/libs/hybrid_ls_pvt.cc | 18 +++++++++---------
2 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/src/algorithms/PVT/libs/gps_l1_ca_ls_pvt.cc b/src/algorithms/PVT/libs/gps_l1_ca_ls_pvt.cc
index d58cc73..3dde38b 100644
--- a/src/algorithms/PVT/libs/gps_l1_ca_ls_pvt.cc
+++ b/src/algorithms/PVT/libs/gps_l1_ca_ls_pvt.cc
@@ -489,24 +489,24 @@ void gps_l1_ca_ls_pvt::cart2geo(double X, double Y, double Z, int elipsoid_selec
4. World Geodetic System 1984
*/
- const double a[5] = {6378388, 6378160, 6378135, 6378137, 6378137};
- const double f[5] = {1/297, 1/298.247, 1/298.26, 1/298.257222101, 1/298.257223563};
+ const double a[5] = {6378388.0, 6378160.0, 6378135.0, 6378137.0, 6378137.0};
+ const double f[5] = {1.0 / 297.0, 1.0 / 298.247, 1.0 / 298.26, 1.0 / 298.257222101, 1.0 / 298.257223563};
double lambda = atan2(Y,X);
- double ex2 = (2 - f[elipsoid_selection]) * f[elipsoid_selection] / ((1 - f[elipsoid_selection])*(1 - f[elipsoid_selection]));
- double c = a[elipsoid_selection] * sqrt(1 + ex2);
- double phi = atan(Z / ((sqrt(X*X + Y*Y)*(1 - (2 - f[elipsoid_selection])) * f[elipsoid_selection])));
+ double ex2 = (2.0 - f[elipsoid_selection]) * f[elipsoid_selection] / ((1.0 - f[elipsoid_selection]) * (1.0 - f[elipsoid_selection]));
+ double c = a[elipsoid_selection] * sqrt(1.0 + ex2);
+ double phi = atan(Z / ((sqrt(X * X + Y * Y) * (1.0 - (2.0 - f[elipsoid_selection])) * f[elipsoid_selection])));
double h = 0.1;
- double oldh = 0;
+ double oldh = 0.0;
double N;
int iterations = 0;
do
{
oldh = h;
N = c / sqrt(1 + ex2 * (cos(phi) * cos(phi)));
- phi = atan(Z / ((sqrt(X*X + Y*Y) * (1 - (2 -f[elipsoid_selection]) * f[elipsoid_selection] *N / (N + h) ))));
- h = sqrt(X*X + Y*Y) / cos(phi) - N;
+ phi = atan(Z / ((sqrt(X*X + Y*Y) * (1.0 - (2.0 -f[elipsoid_selection]) * f[elipsoid_selection] * N / (N + h) ))));
+ h = sqrt(X * X + Y * Y) / cos(phi) - N;
iterations = iterations + 1;
if (iterations > 100)
{
@@ -516,7 +516,7 @@ void gps_l1_ca_ls_pvt::cart2geo(double X, double Y, double Z, int elipsoid_selec
}
while (std::abs(h - oldh) > 1.0e-12);
d_latitude_d = phi * 180.0 / GPS_PI;
- d_longitude_d = lambda * 180 / GPS_PI;
+ d_longitude_d = lambda * 180.0 / GPS_PI;
d_height_m = h;
}
@@ -586,7 +586,7 @@ void gps_l1_ca_ls_pvt::togeod(double *dphi, double *dlambda, double *h, double a
}
else
{
- sinphi = 0;
+ sinphi = 0.0;
}
*dphi = asin(sinphi);
@@ -605,7 +605,7 @@ void gps_l1_ca_ls_pvt::togeod(double *dphi, double *dlambda, double *h, double a
double N_phi;
double dP;
double dZ;
- double oneesq = 1 - esq;
+ double oneesq = 1.0 - esq;
for (int i = 0; i < maxit; i++)
{
diff --git a/src/algorithms/PVT/libs/hybrid_ls_pvt.cc b/src/algorithms/PVT/libs/hybrid_ls_pvt.cc
index cd644c0..84b6ca3 100644
--- a/src/algorithms/PVT/libs/hybrid_ls_pvt.cc
+++ b/src/algorithms/PVT/libs/hybrid_ls_pvt.cc
@@ -584,24 +584,24 @@ void hybrid_ls_pvt::cart2geo(double X, double Y, double Z, int elipsoid_selectio
4. World Geodetic System 1984
*/
- const double a[5] = {6378388, 6378160, 6378135, 6378137, 6378137};
- const double f[5] = {1/297, 1/298.247, 1/298.26, 1/298.257222101, 1/298.257223563};
+ const double a[5] = {6378388.0, 6378160.0, 6378135.0, 6378137.0, 6378137.0};
+ const double f[5] = {1.0 / 297.0, 1.0 / 298.247, 1.0 / 298.26, 1.0 / 298.257222101, 1.0 / 298.257223563};
double lambda = atan2(Y, X);
- double ex2 = (2 - f[elipsoid_selection]) * f[elipsoid_selection] / ((1 - f[elipsoid_selection])*(1 - f[elipsoid_selection]));
- double c = a[elipsoid_selection] * sqrt(1+ex2);
- double phi = atan(Z / ((sqrt(X*X + Y*Y)*(1 - (2 - f[elipsoid_selection])) * f[elipsoid_selection])));
+ double ex2 = (2.0 - f[elipsoid_selection]) * f[elipsoid_selection] / ((1.0 - f[elipsoid_selection]) * (1.0 - f[elipsoid_selection]));
+ double c = a[elipsoid_selection] * sqrt(1.0 + ex2);
+ double phi = atan(Z / ((sqrt(X * X + Y * Y) * (1.0 - (2.0 - f[elipsoid_selection])) * f[elipsoid_selection])));
double h = 0.1;
- double oldh = 0;
+ double oldh = 0.0;
double N;
int iterations = 0;
do
{
oldh = h;
N = c / sqrt(1 + ex2 * (cos(phi) * cos(phi)));
- phi = atan(Z / ((sqrt(X*X + Y*Y) * (1 - (2 - f[elipsoid_selection]) * f[elipsoid_selection] *N / (N + h) ))));
- h = sqrt(X*X + Y*Y) / cos(phi) - N;
+ phi = atan(Z / ((sqrt(X * X + Y * Y) * (1.0 - (2.0 - f[elipsoid_selection]) * f[elipsoid_selection] * N / (N + h) ))));
+ h = sqrt(X * X + Y * Y) / cos(phi) - N;
iterations = iterations + 1;
if (iterations > 100)
{
@@ -611,7 +611,7 @@ void hybrid_ls_pvt::cart2geo(double X, double Y, double Z, int elipsoid_selectio
}
while (std::abs(h - oldh) > 1.0e-12);
d_latitude_d = phi * 180.0 / GPS_PI;
- d_longitude_d = lambda * 180 / GPS_PI;
+ d_longitude_d = lambda * 180.0 / GPS_PI;
d_height_m = h;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git
More information about the pkg-hamradio-commits
mailing list