34#ifndef GNSS_SDR_RTKLIB_PPP_H
35#define GNSS_SDR_RTKLIB_PPP_H
40#define MIN_PPP(x, y) ((x) <= (y) ? (x) : (y))
41#define ROUND_PPP(x) static_cast<int>(floor((x) + 0.5))
60const double MIN_ARC_GAP = 300.0;
61const double CONST_AMB = 0.001;
62const double THRES_RES = 0.3;
63const double LOG_PI = 1.14472988584940017;
64const double SQRT2 = 1.41421356237309510;
66const double VAR_POS_PPP = std::pow(100.0, 2.0);
67const double VAR_CLK = std::pow(100.0, 2.0);
68const double VAR_ZTD = std::pow(0.3, 2.0);
69const double VAR_GRA_PPP = std::pow(0.001, 2.0);
70const double VAR_BIAS = std::pow(100.0, 2.0);
72const double VAR_IONO_OFF = std::pow(10.0, 2.0);
76double lam_LC(
int i,
int j,
int k);
78double L_LC(
int i,
int j,
int k,
const double *L);
80double P_LC(
int i,
int j,
int k,
const double *P);
82double var_LC(
int i,
int j,
int k,
double sig);
84double q_gamma(
double a,
double x,
double log_gamma_a);
86double p_gamma(
double a,
double x,
double log_gamma_a);
88double f_erfc(
double x);
90double conffunc(
int N,
double B,
double sig);
92void average_LC(
rtk_t *rtk,
const obsd_t *obs,
int n,
const nav_t *nav,
const double *azel);
94int fix_amb_WL(
rtk_t *rtk,
const nav_t *nav,
int sat1,
int sat2,
int *NW);
96int is_depend(
int sat1,
int sat2,
int *flgs,
int *max_flg);
98int sel_amb(
int *sat1,
int *sat2,
double *N,
double *var,
int n);
100int fix_sol(
rtk_t *rtk,
const int *sat1,
const int *sat2,
const double *NC,
int n);
102int fix_amb_ROUND(
rtk_t *rtk,
int *sat1,
int *sat2,
const int *NW,
int n);
104int fix_amb_ILS(
rtk_t *rtk,
int *sat1,
int *sat2,
int *NW,
int n);
106int pppamb(
rtk_t *rtk,
const obsd_t *obs,
int n,
const nav_t *nav,
const double *azel);
110void pppoutsolstat(
rtk_t *rtk,
int level, FILE *fp);
112void testeclipse(
const obsd_t *obs,
int n,
const nav_t *nav,
double *rs);
114double varerr(
int sat,
int sys,
double el,
int type,
const prcopt_t *opt);
116void initx(
rtk_t *rtk,
double xi,
double var,
int i);
118int ifmeas(
const obsd_t *obs,
const nav_t *nav,
const double *azel,
119 const prcopt_t *opt,
const double *dantr,
const double *dants,
120 double phw,
double *meas,
double *var);
122double gettgd_ppp(
int sat,
const nav_t *nav);
124int corr_ion(
gtime_t time,
const nav_t *nav,
int sat,
const double *pos,
125 const double *azel,
int ionoopt,
double *ion,
double *var,
128int corrmeas(
const obsd_t *obs,
const nav_t *nav,
const double *pos,
129 const double *azel,
const prcopt_t *opt,
130 const double *dantr,
const double *dants,
double phw,
131 double *meas,
double *var,
int *brk);
135void udpos_ppp(
rtk_t *rtk);
137void udclk_ppp(
rtk_t *rtk);
139void udtrop_ppp(
rtk_t *rtk);
141void detslp_ll(
rtk_t *rtk,
const obsd_t *obs,
int n);
149void satantpcv(
const double *rs,
const double *rr,
const pcv_t *pcv,
double *dant);
151double prectrop(
gtime_t time,
const double *pos,
const double *azel,
152 const prcopt_t *opt,
const double *x,
double *dtdx,
155int res_ppp(
int iter,
const obsd_t *obs,
int n,
const double *rs,
156 const double *dts,
const double *vare,
const int *svh,
157 const nav_t *nav,
const double *x,
rtk_t *rtk,
double *v,
158 double *H,
double *R,
double *azel);
main header file for the rtklib library