68 using COMPLEX = std::complex<float>;
73 void laprop(antenna& ant_data,
103 bool use_surface_height,
104 double surface_height,
105 double soil_moisture,
108 static void first(std::vector<double>& dratio,
115 const std::vector<double>& xprofl,
117 const std::vector<double>& zprofl);
119 static void second(
double deltag,
120 const std::vector<double>& elvmsl,
127 static void linfit(
double& aline0,
double& aline1,
double deltag,
const std::vector<double>& elvmsl,
int nprofl);
132 void sediff(antenna& ant_data,
138 const std::vector<double>& dratio,
139 const std::vector<double>& elvmsl,
149 const std::vector<double>& xprofl,
150 const std::vector<double>& zprofl);
152 void kediff(antenna& ant_data,
154 std::vector<double>& dratio,
161 const std::vector<double>& xprofl,
163 const std::vector<double>& zprofl,
166 static COMPLEX airy(
const COMPLEX& zargmt);
168 static COMPLEX conect(
const COMPLEX& zargmt);
170 static COMPLEX gaussq(
const COMPLEX& zargmt);
172 static COMPLEX powers(
const COMPLEX& zargmt);
175 parfit(
double& apara0,
double& apara1,
double& apara2,
double deltag,
const std::vector<double>& elvmsl,
int nprofl);
177 static void deygou(antenna& ant_data,
179 const std::vector<double>& dratio,
188 const std::vector<double>& xprofl,
190 const std::vector<double>& zprofl,
193 static void fresnl(
double& cosint,
double& sinint,
double xargmt);
198 void mltpth(antenna& ant_data,
204 std::vector<int>& iend,
206 std::vector<int>& istart,
215 const std::vector<double>& tanepp,
217 std::vector<bool>& visibl,
219 const std::vector<double>& xprofl,
221 const std::vector<double>& zprofl,
223 const std::vector<double>& elvmsl,
224 bool use_surface_height,
225 double surface_height,
226 double soil_moisture,
230 static void rflect(
double gamma,
int ipolar, COMPLEX& rcoeff, COMPLEX ysquar);
232 static COMPLEX water_dielectric(
double freq,
bool sea_water,
double water_temp);
234 static COMPLEX soil_dielectric(
double freq,
double soil_moisture);
236 static double stddev(
int n,
const std::vector<double>& a);
241 static void GetLandCoverData(
int aLandCover,
double& aDielectricConstant,
double& aConductivity);
246 static double RoughSurfaceReflection(
int aLandForm,
bool aOnWater,
int aSeaState,
double aWavelength,
double aPsi);
249 std::string water_type;
250 double soil_moisture;
251 double surface_height;
256 double sea_relaxation;
262 bool use_surface_height;
273 static std::vector<double> dratio;
274 static std::vector<double> elvmsl;
275 static std::vector<int> iend;
276 static std::vector<int> istart;
277 static std::vector<double> tanepp;
278 static std::vector<bool> visibl;
279 static std::vector<double> xprofl;
280 static std::vector<double> zprofl;
282 static int indxmx_size;
283 static std::vector<int> indxmx;
286 bool mUseMIT_LL_DataTables;
287 bool mAllowCalculationShortcuts;