Sequence DiagramScroll down (bug in rendering)pntpos()estpos()rescode()estvel()resdop()alt[iter>0]Set valid satellite and count satelliteloop[(MAXOBS)]loop[(MAXITR)]alt[norm(dx,NX)<1E-4][(i >= MAXITR)]loop[(MAXOBS)]satposs() satellite positons, velocities and clocks1estimate receiver position and time with pseudorange2pseudorange residuals (prefit residuals)3satsys() (valid satellite system)4reject duplicated observation data5satexclude() excluded satellite6geodist() geometric distance7satazel() elevation mask8snrmask() test SNR mask9ionocorr() ionospheric correction10sat2freq() (check for valid frequency)11tropcorr() tropospheric correction12prange() psendorange with code bias correction13pseudorange residual (prefit residuals)14design matrix15time system offset and receiver bias correction16varerr() variance of pseudorange error17constraint to avoid rank-deficient18return nv (Number of valid measurements)19weight by variance (lsq uses sqrt of weight)20lsq() least square estimation21norm(dx,NX)<1E-4 Update state terms22valsol() validate solution23return stat24return 0 iteration divergent25return stat26raim_fde() RAIM FDE (failure detection and exclution)27estimate receiver velocity with Doppler28range rate residuals29LOS (line-of-sight) vector in ECEF30satellite velocity relative to receiver in ECEF31range rate with earth rotation correction32Std of range rate error (m/s)33range rate residual (m/s)34design matrix35return stat36lsq() least square estimation37(norm(dx,4)<1E-6) (Update state terms)38return39return40return stat41pntpos()estpos()rescode()estvel()resdop()Reference : https://mermaid.js.org/syntax/sequenceDiagram.html