63 double aOMEGAdot,
double aAhalf,
double aOMEGA0,
64 double aw,
double aM0,
double aAF0,
double aAF1,
65 long aToa,
long axmit_time,
short aweek,
67 : PRN(prn), ecc(aEcc), i_offset(ai_offset), OMEGAdot(aOMEGAdot), Ahalf(aAhalf),
68 OMEGA0(aOMEGA0), w(aw), M0(aM0), AF0(aAF0), AF1(aAF1), Toa(aToa),
69 xmit_time(axmit_time), week(aweek), SV_health(aSV_health)
84 double f,g,delea,q,gsta,gcta;
87 double sinea,cosea,sinu,cosu;
93 double xip,yip,can,san,cinc,sinc,xef,yef,zef,dek,dlk,div,domk,duv,
94 drv,dxp,dyp,vxef,vyef,vzef;
95 double sqrtgm = ::sqrt(ell.
gm());
102 n = sqrtgm / (
Ahalf * A);
105 meana =
M0 + elapt * n;
106 meana = ::fmod(meana, 2.0 *
PI);
119 }
while ( ::fabs(delea) > 1.0e-11 && (loop <= 20));
126 q = ::sqrt (1.0e0 -
ecc *
ecc);
131 ta = ::atan2(gsta,gcta);
132 g = 1.0 -
ecc * cosea;
139 r = A * (1.0 -
ecc * cosea);
159 xef = xip * can - yip * cinc * san;
160 yef = xip * san + yip * cinc * can;
173 drv = A *
ecc * dek * sinea;
175 dxp = drv * cosu - r * sinu * duv;
176 dyp = drv * sinu + r * cosu * duv;
178 vxef = dxp * can - xip * san * domk - dyp * cinc * san
179 + yip * (sinc * san * div - cinc * can * domk);
180 vyef = dxp * san + xip * can * domk + dyp * cinc * can
181 - yip * (sinc * can * div + cinc * san * domk);
182 vzef = dyp * sinc + yip * cinc * div;
200 short xmit_week =
week;
220 s << std::setprecision(4);
221 s.setf(std::ios::scientific);
252 <<
" Ahalf:" <<
Ahalf
262 s <<
"PRN: " <<
PRN << endl
263 <<
"Toa: " <<
Toa << endl
265 <<
"week: " <<
week << endl
267 <<
"AFO: " << setw(12) <<
AF0 <<
" sec" << endl
268 <<
"AF1: " << setw(12) <<
AF1 <<
" sec/sec" << endl
269 <<
"Sqrt A: " << setw(12) <<
Ahalf <<
" sqrt meters" << endl
270 <<
"Eccentricity: " << setw(12) <<
ecc << endl
271 <<
"Arg of perigee: " << setw(12) <<
w <<
" rad" << endl
272 <<
"Mean anomaly at epoch: " << setw(12) <<
M0 <<
" rad" << endl
273 <<
"Right ascension: " << setw(12) <<
OMEGA0 <<
" rad " << setw(16) <<
OMEGAdot <<
" rad/sec" << endl
274 <<
"Inclination offset: " << setw(12) <<
i_offset <<
" rad " << endl;