mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 07:13:03 +00:00 
			
		
		
		
	Fix pow usage
This commit is contained in:
		| @@ -90,7 +90,7 @@ double var_uraeph(int ura) | |||||||
|             2.4, 3.4, 4.85, 6.85, 9.65, 13.65, 24.0, 48.0, 96.0, 192.0, 384.0, 768.0, 1536.0, |             2.4, 3.4, 4.85, 6.85, 9.65, 13.65, 24.0, 48.0, 96.0, 192.0, 384.0, 768.0, 1536.0, | ||||||
|             3072.0, 6144.0 |             3072.0, 6144.0 | ||||||
|     }; |     }; | ||||||
|     return ura < 0 || 15 < ura ? std::pow(2.0, 6144.0) : std::pow(2.0, ura_value[ura]); |     return ura < 0 || 15 < ura ? std::pow(6144.0, 2.0) : std::pow(ura_value[ura], 2.0); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -98,10 +98,10 @@ double var_uraeph(int ura) | |||||||
| double var_urassr(int ura) | double var_urassr(int ura) | ||||||
| { | { | ||||||
|     double std_; |     double std_; | ||||||
|     if (ura <= 0) return std::pow(2.0, DEFURASSR); |     if (ura <= 0) return std::pow(DEFURASSR, 2.0); | ||||||
|     if (ura >= 63) return std::pow(2.0, 5.4665); |     if (ura >= 63) return std::pow(5.4665, 2.0); | ||||||
|     std_ = (std::pow(3.0, (ura >> 3) & 7) * (1.0 + (ura & 7) / 4.0) - 1.0) * 1e-3; |     std_ = (std::pow((ura >> 3) & 7, 2.0) * (1.0 + (ura & 7) / 4.0) - 1.0) * 1e-3; | ||||||
|     return std::pow(2.0, std_); |     return std::pow(std_, 2.0); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -275,7 +275,7 @@ void eph2pos(gtime_t time, const eph_t *eph, double *rs, double *dts, | |||||||
|     *dts = eph->f0 + eph->f1 * tk + eph->f2 * tk * tk; |     *dts = eph->f0 + eph->f1 * tk + eph->f2 * tk * tk; | ||||||
|  |  | ||||||
|     /* relativity correction */ |     /* relativity correction */ | ||||||
|     *dts -= 2.0 * sqrt(mu * eph->A) * eph-> e* sinE / std::pow(2.0, SPEED_OF_LIGHT); |     *dts -= 2.0 * sqrt(mu * eph->A) * eph-> e* sinE / std::pow(SPEED_OF_LIGHT, 2.0); | ||||||
|  |  | ||||||
|     /* position and clock error variance */ |     /* position and clock error variance */ | ||||||
|     *var = var_uraeph(eph->sva); |     *var = var_uraeph(eph->sva); | ||||||
| @@ -285,7 +285,7 @@ void eph2pos(gtime_t time, const eph_t *eph, double *rs, double *dts, | |||||||
| /* glonass orbit differential equations --------------------------------------*/ | /* glonass orbit differential equations --------------------------------------*/ | ||||||
| void deq(const double *x, double *xdot, const double *acc) | void deq(const double *x, double *xdot, const double *acc) | ||||||
| { | { | ||||||
|     double a, b, c, r2 = dot(x, x, 3), r3 = r2 * sqrt(r2), omg2 = std::pow(2.0, OMGE_GLO); |     double a, b, c, r2 = dot(x, x, 3), r3 = r2 * sqrt(r2), omg2 = std::pow(OMGE_GLO, 2.0); | ||||||
|  |  | ||||||
|     if (r2 <= 0.0) |     if (r2 <= 0.0) | ||||||
|         { |         { | ||||||
| @@ -293,7 +293,7 @@ void deq(const double *x, double *xdot, const double *acc) | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|     /* ref [2] A.3.1.2 with bug fix for xdot[4],xdot[5] */ |     /* ref [2] A.3.1.2 with bug fix for xdot[4],xdot[5] */ | ||||||
|     a = 1.5 * J2_GLO * MU_GLO * std::pow(2.0, RE_GLO) / r2 / r3; /* 3/2*J2*mu*Ae^2/r^5 */ |     a = 1.5 * J2_GLO * MU_GLO * std::pow(RE_GLO, 2.0) / r2 / r3; /* 3/2*J2*mu*Ae^2/r^5 */ | ||||||
|     b = 5.0 * x[2] * x[2] / r2;                    /* 5*z^2/r^2 */ |     b = 5.0 * x[2] * x[2] / r2;                    /* 5*z^2/r^2 */ | ||||||
|     c = -MU_GLO / r3 - a * (1.0 - b);                /* -mu/r^3-a(1-b) */ |     c = -MU_GLO / r3 - a * (1.0 - b);                /* -mu/r^3-a(1-b) */ | ||||||
|     xdot[0] = x[3]; |     xdot[0] = x[3]; | ||||||
| @@ -376,7 +376,7 @@ void geph2pos(gtime_t time, const geph_t *geph, double *rs, double *dts, | |||||||
|         } |         } | ||||||
|     for (i = 0; i < 3; i++) rs[i] = x[i]; |     for (i = 0; i < 3; i++) rs[i] = x[i]; | ||||||
|  |  | ||||||
|     *var = std::pow(2.0, ERREPH_GLO); |     *var = std::pow(ERREPH_GLO, 2.0); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -858,7 +858,7 @@ void satposs(gtime_t teph, const obsd_t *obs, int n, const nav_t *nav, | |||||||
|                 { |                 { | ||||||
|                     if (!ephclk(time[i], teph, obs[i].sat, nav, dts + i * 2)) continue; |                     if (!ephclk(time[i], teph, obs[i].sat, nav, dts + i * 2)) continue; | ||||||
|                     dts[1 + i * 2] = 0.0; |                     dts[1 + i * 2] = 0.0; | ||||||
|                     *var = std::pow(2.0, STD_BRDCCLK); |                     *var = std::pow(STD_BRDCCLK, 2.0); | ||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|     for (i = 0; i < n && i < MAXOBS; i++) |     for (i = 0; i < n && i < MAXOBS; i++) | ||||||
|   | |||||||
| @@ -296,15 +296,15 @@ int readionexb(FILE *fp, const double *lats, const double *lons, | |||||||
|  |  | ||||||
|                     for (m = 0; m < n; m++) |                     for (m = 0; m < n; m++) | ||||||
|                         { |                         { | ||||||
|                             if (m%16 == 0 && !fgets(buff, sizeof(buff), fp)) break; |                             if (m % 16 == 0 && !fgets(buff, sizeof(buff), fp)) break; | ||||||
|  |  | ||||||
|                             j = getindex(lon[0] + lon[2] * m, p->lons); |                             j = getindex(lon[0] + lon[2] * m, p->lons); | ||||||
|                             if ((index = dataindex(i, j, k, p->ndata)) < 0) continue; |                             if ((index = dataindex(i, j, k, p->ndata)) < 0) continue; | ||||||
|  |  | ||||||
|                             if ((x = str2num(buff, m%16*5, 5)) == 9999.0) continue; |                             if ((x = str2num(buff, m % 16 * 5, 5)) == 9999.0) continue; | ||||||
|  |  | ||||||
|                             if (type == 1) p->data[index] = x * pow(10.0, nexp); |                             if (type == 1) p->data[index] = x * std::pow(10.0, nexp); | ||||||
|                             else p->rms[index] = (float)(x * pow(10.0, nexp)); |                             else p->rms[index] = (float)(x * std::pow(10.0, nexp)); | ||||||
|                         } |                         } | ||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -58,9 +58,9 @@ double varerr(const prcopt_t *opt, double el, int sys) | |||||||
| { | { | ||||||
|     double fact, varr; |     double fact, varr; | ||||||
|     fact = sys == SYS_GLO ? EFACT_GLO : (sys == SYS_SBS ? EFACT_SBS : EFACT_GPS); |     fact = sys == SYS_GLO ? EFACT_GLO : (sys == SYS_SBS ? EFACT_SBS : EFACT_GPS); | ||||||
|     varr = std::pow(2.0, opt->err[0]) * (std::pow(2.0, opt->err[1]) + std::pow(2.0, opt->err[2]) / sin(el)); |     varr = std::pow(opt->err[0], 2.0) * (std::pow(opt->err[1], 2.0) + std::pow(opt->err[2], 2.0) / sin(el)); | ||||||
|     if (opt->ionoopt == IONOOPT_IFLC) varr *= std::pow(2.0, 3.0); /* iono-free */ |     if (opt->ionoopt == IONOOPT_IFLC) varr *= std::pow(2, 3.0); /* iono-free */ | ||||||
|     return std::pow(2.0, fact) * varr; |     return std::pow(fact, 2.0) * varr; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -95,7 +95,7 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel, | |||||||
|  |  | ||||||
|  |  | ||||||
|     /* L1-L2 for GPS/GLO/QZS, L1-L5 for GAL/SBS */ |     /* L1-L2 for GPS/GLO/QZS, L1-L5 for GAL/SBS */ | ||||||
|     if (NFREQ >= 3 && (sys & (SYS_GAL | SYS_SBS))) j = 2; |     if (NFREQ>=3&&(sys&(SYS_GAL|SYS_SBS))) j = 2; | ||||||
|  |  | ||||||
|     if (NFREQ<2 || lam[i] == 0.0 || lam[j] == 0.0) |     if (NFREQ<2 || lam[i] == 0.0 || lam[j] == 0.0) | ||||||
|         { |         { | ||||||
| @@ -105,7 +105,7 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel, | |||||||
|         } |         } | ||||||
|  |  | ||||||
|     /* test snr mask */ |     /* test snr mask */ | ||||||
|     if (iter > 0) |     if (iter>0) | ||||||
|         { |         { | ||||||
|             if (testsnr(0, i, azel[1], obs->SNR[i] * 0.25, &opt->snrmask)) |             if (testsnr(0, i, azel[1], obs->SNR[i] * 0.25, &opt->snrmask)) | ||||||
|                 { |                 { | ||||||
| @@ -122,7 +122,7 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel, | |||||||
|                         } |                         } | ||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|     gamma = std::pow(2.0, lam[j]) / std::pow(2.0, lam[i]); /* f1^2/f2^2 */ |     gamma = std::pow(lam[j], 2.0) / std::pow(lam[i], 2.0); /* f1^2/f2^2 */ | ||||||
|     P1 = obs->P[i]; |     P1 = obs->P[i]; | ||||||
|     P2 = obs->P[j]; |     P2 = obs->P[j]; | ||||||
|     P1_P2 = nav->cbias[obs->sat-1][0]; |     P1_P2 = nav->cbias[obs->sat-1][0]; | ||||||
| @@ -153,7 +153,7 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel, | |||||||
|         } |         } | ||||||
|     if (opt->sateph == EPHOPT_SBAS) PC -= P1_C1; /* sbas clock based C1 */ |     if (opt->sateph == EPHOPT_SBAS) PC -= P1_C1; /* sbas clock based C1 */ | ||||||
|  |  | ||||||
|     *var = std::pow(2.0, ERR_CBIAS); |     *var = std::pow(ERR_CBIAS, 2.0); | ||||||
|  |  | ||||||
|     return PC; |     return PC; | ||||||
| } | } | ||||||
| @@ -182,7 +182,7 @@ int ionocorr(gtime_t time, const nav_t *nav, int sat, const double *pos, | |||||||
|     if (ionoopt == IONOOPT_BRDC) |     if (ionoopt == IONOOPT_BRDC) | ||||||
|         { |         { | ||||||
|             *ion = ionmodel(time, nav->ion_gps, pos, azel); |             *ion = ionmodel(time, nav->ion_gps, pos, azel); | ||||||
|             *var = std::pow(2.0, *ion*ERR_BRDCI); |             *var = SQR(*ion*ERR_BRDCI); | ||||||
|             return 1; |             return 1; | ||||||
|         } |         } | ||||||
|     /* sbas ionosphere model */ |     /* sbas ionosphere model */ | ||||||
| @@ -196,10 +196,10 @@ int ionocorr(gtime_t time, const nav_t *nav, int sat, const double *pos, | |||||||
|             return iontec(time, nav, pos, azel, 1, ion, var); |             return iontec(time, nav, pos, azel, 1, ion, var); | ||||||
|         } |         } | ||||||
|     /* qzss broadcast model */ |     /* qzss broadcast model */ | ||||||
|     if (ionoopt == IONOOPT_QZS && norm(nav->ion_qzs, 8) > 0.0) |     if (ionoopt == IONOOPT_QZS && norm(nav->ion_qzs, 8)>0.0) | ||||||
|         { |         { | ||||||
|             *ion = ionmodel(time, nav->ion_qzs, pos, azel); |             *ion = ionmodel(time, nav->ion_qzs, pos, azel); | ||||||
|             *var = std::pow(2.0, *ion * ERR_BRDCI); |             *var = std::pow(*ion * ERR_BRDCI, 2.0); | ||||||
|             return 1; |             return 1; | ||||||
|         } |         } | ||||||
|     /* lex ionosphere model */ |     /* lex ionosphere model */ | ||||||
| @@ -207,7 +207,7 @@ int ionocorr(gtime_t time, const nav_t *nav, int sat, const double *pos, | |||||||
|     //    return lexioncorr(time, nav, pos, azel, ion, var); |     //    return lexioncorr(time, nav, pos, azel, ion, var); | ||||||
|     //} |     //} | ||||||
|     *ion = 0.0; |     *ion = 0.0; | ||||||
|     *var = ionoopt == IONOOPT_OFF ? std::pow(2.0, ERR_ION) : 0.0; |     *var = ionoopt == IONOOPT_OFF ? std::pow(ERR_ION, 2.0) : 0.0; | ||||||
|     return 1; |     return 1; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -234,7 +234,7 @@ int tropcorr(gtime_t time, const nav_t *nav, const double *pos, | |||||||
|     if (tropopt == TROPOPT_SAAS || tropopt == TROPOPT_EST || tropopt == TROPOPT_ESTG) |     if (tropopt == TROPOPT_SAAS || tropopt == TROPOPT_EST || tropopt == TROPOPT_ESTG) | ||||||
|         { |         { | ||||||
|             *trp = tropmodel(time, pos, azel, REL_HUMI); |             *trp = tropmodel(time, pos, azel, REL_HUMI); | ||||||
|             *var = std::pow(2.0, ERR_SAAS / (sin(azel[1]) + 0.1)); |             *var = SQR(ERR_SAAS / (sin(azel[1]) + 0.1)); | ||||||
|             return 1; |             return 1; | ||||||
|         } |         } | ||||||
|     /* sbas troposphere model */ |     /* sbas troposphere model */ | ||||||
| @@ -245,7 +245,7 @@ int tropcorr(gtime_t time, const nav_t *nav, const double *pos, | |||||||
|         } |         } | ||||||
|     /* no correction */ |     /* no correction */ | ||||||
|     *trp = 0.0; |     *trp = 0.0; | ||||||
|     *var = tropopt == TROPOPT_OFF ? std::pow(2.0, ERR_TROP) : 0.0; |     *var = tropopt == TROPOPT_OFF ? std::pow(ERR_TROP, 2.0) : 0.0; | ||||||
|     return 1; |     return 1; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -314,7 +314,7 @@ int rescode(int iter, const obsd_t *obs, int n, const double *rs, | |||||||
|             /* GPS-L1 -> L1/B1 */ |             /* GPS-L1 -> L1/B1 */ | ||||||
|             if ((lam_L1 = nav->lam[obs[i].sat - 1][0]) > 0.0) |             if ((lam_L1 = nav->lam[obs[i].sat - 1][0]) > 0.0) | ||||||
|                 { |                 { | ||||||
|                     dion *= pow(2.0, lam_L1 / lam_carr[0]); |                     dion *= std::pow(lam_L1 / lam_carr[0], 2.0); | ||||||
|                 } |                 } | ||||||
|             /* tropospheric corrections */ |             /* tropospheric corrections */ | ||||||
|             if (!tropcorr(obs[i].time, nav, pos, azel + i*2, |             if (!tropcorr(obs[i].time, nav, pos, azel + i*2, | ||||||
| @@ -517,7 +517,7 @@ int raim_fde(const obsd_t *obs,  int n,  const double *rs, | |||||||
|             for (j = nvsat = 0, rms_e = 0.0; j < n - 1; j++) |             for (j = nvsat = 0, rms_e = 0.0; j < n - 1; j++) | ||||||
|                 { |                 { | ||||||
|                     if (!vsat_e[j]) continue; |                     if (!vsat_e[j]) continue; | ||||||
|                     rms_e += std::pow(2.0, resp_e[j]); |                     rms_e += std::pow(resp_e[j], 2.0); | ||||||
|                     nvsat++; |                     nvsat++; | ||||||
|                 } |                 } | ||||||
|             if (nvsat < 5) |             if (nvsat < 5) | ||||||
|   | |||||||
| @@ -218,7 +218,7 @@ void readsp3b(FILE *fp, char type, int *sats, int ns, double *bfact, | |||||||
|                                         } |                                         } | ||||||
|                                     if ((base = bfact[j < 3 ? 0 : 1]) > 0.0 && std > 0.0) |                                     if ((base = bfact[j < 3 ? 0 : 1]) > 0.0 && std > 0.0) | ||||||
|                                         { |                                         { | ||||||
|                                             peph.std[sat-1][j] = (float)(pow(base, std)*(j < 3 ? 1e-3 : 1e-12)); |                                             peph.std[sat-1][j] = (float)(std::pow(base, std)*(j < 3 ? 1e-3 : 1e-12)); | ||||||
|                                         } |                                         } | ||||||
|                             } |                             } | ||||||
|                             else if (v) { /* velocity */ |                             else if (v) { /* velocity */ | ||||||
| @@ -228,7 +228,7 @@ void readsp3b(FILE *fp, char type, int *sats, int ns, double *bfact, | |||||||
|                                         } |                                         } | ||||||
|                                     if ((base = bfact[j < 3 ? 0 : 1]) > 0.0 && std > 0.0) |                                     if ((base = bfact[j < 3 ? 0 : 1]) > 0.0 && std > 0.0) | ||||||
|                                         { |                                         { | ||||||
|                                             peph.vst[sat-1][j] = (float)(pow(base, std)*(j < 3 ? 1e-7 : 1e-16)); |                                             peph.vst[sat-1][j] = (float)(std::pow(base, std)*(j < 3 ? 1e-7 : 1e-16)); | ||||||
|                                         } |                                         } | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
| @@ -662,9 +662,9 @@ int pephpos(gtime_t time, int sat, const nav_t *nav, double *rs, | |||||||
|             std = norm(s, 3); |             std = norm(s, 3); | ||||||
|  |  | ||||||
|             /* extrapolation error for orbit */ |             /* extrapolation error for orbit */ | ||||||
|             if      (t[0   ] > 0.0) std += EXTERR_EPH * pow(2, t[0   ]) / 2.0; |             if      (t[0   ] > 0.0) std += EXTERR_EPH * std::pow(t[0   ], 2.0) / 2.0; | ||||||
|             else if (t[NMAX] < 0.0) std += EXTERR_EPH * pow(2, t[NMAX]) / 2.0; |             else if (t[NMAX] < 0.0) std += EXTERR_EPH * std::pow(t[NMAX], 2.0) / 2.0; | ||||||
|             *vare = pow(2, std); |             *vare = std::pow(std, 2.0); | ||||||
|         } |         } | ||||||
|     /* linear interpolation for clock */ |     /* linear interpolation for clock */ | ||||||
|     t[0] = timediff(time, nav->peph[index  ].time); |     t[0] = timediff(time, nav->peph[index  ].time); | ||||||
| @@ -696,7 +696,7 @@ int pephpos(gtime_t time, int sat, const nav_t *nav, double *rs, | |||||||
|         { |         { | ||||||
|             dts[0] = 0.0; |             dts[0] = 0.0; | ||||||
|         } |         } | ||||||
|     if (varc) *varc = std::pow(2, std); |     if (varc) *varc = std::pow(std, 2.0); | ||||||
|     return 1; |     return 1; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -752,7 +752,7 @@ int pephclk(gtime_t time, int sat, const nav_t *nav, double *dts, | |||||||
|             trace(3, "prec clock outage %s sat=%2d\n", time_str(time, 0), sat); |             trace(3, "prec clock outage %s sat=%2d\n", time_str(time, 0), sat); | ||||||
|             return 0; |             return 0; | ||||||
|         } |         } | ||||||
|     if (varc) *varc = std::pow(2, std); |     if (varc) *varc = std::pow(std, 2.0); | ||||||
|     return 1; |     return 1; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -795,7 +795,7 @@ void satantoff(gtime_t time, const double *rs, int sat, const nav_t *nav, | |||||||
|  |  | ||||||
|     if (NFREQ < 2 || lam[j] == 0.0 || lam[k] == 0.0) return; |     if (NFREQ < 2 || lam[j] == 0.0 || lam[k] == 0.0) return; | ||||||
|  |  | ||||||
|     gamma = std::pow(2, lam[k]) / std::pow(2, lam[j]); |     gamma = std::pow(lam[k], 2.0) / std::pow(lam[j], 2.0); | ||||||
|     C1 = gamma / (gamma - 1.0); |     C1 = gamma / (gamma - 1.0); | ||||||
|     C2 = -1.0 / (gamma - 1.0); |     C2 = -1.0 / (gamma - 1.0); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez