65 double CorrectedEphemerisRange::ComputeAtReceiveTime(
79 std::tie(success, rawrange, svPosVel) =
80 RawRange::fromReceive(Rx, trNom, navLib,
85 InvalidRequest ir(
"getXvt failed");
90 return (rawrange-svclkbias-relativity);
102 double CorrectedEphemerisRange::ComputeAtTransmitTime(
115 std::tie(success, rawrange, svPosVel) =
116 RawRange::fromNominalReceiveWithObs(Rx, trNom, pr, navLib,
120 InvalidRequest ir(
"getXvt failed");
125 return (rawrange-svclkbias-relativity);
133 double CorrectedEphemerisRange::ComputeAtTransmitTime(
145 std::tie(success, rawrange, svPosVel) =
146 RawRange::fromNominalReceive(Rx, trNom, navLib,
151 InvalidRequest ir(
"getXvt failed");
157 return (rawrange - svclkbias - relativity);
165 double CorrectedEphemerisRange::ComputeAtTransmitSvTime(
179 std::tie(success, rawrange, svPosVel)
180 = RawRange::fromSvTransmitWithObs(rx, pr, navLib,
186 InvalidRequest ir(
"getXvt failed");
192 return rawrange - svclkbias - relativity;
200 void CorrectedEphemerisRange::updateCER(
const Position& Rx)
202 relativity = svPosVel.computeRelativityCorrection() *
C_MPS;
204 svclkbias = svPosVel.clkbias *
C_MPS;
205 svclkdrift = svPosVel.clkdrift *
C_MPS;
207 cosines[0] = (Rx.
X()-svPosVel.x[0])/rawrange;
208 cosines[1] = (Rx.
Y()-svPosVel.x[1])/rawrange;
209 cosines[2] = (Rx.
Z()-svPosVel.x[2])/rawrange;
223 double dtr = ( -2.0 *( svPosVel.
x[0] * svPosVel.
v[0]
224 + svPosVel.
x[1] * svPosVel.
v[1]