1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-03-04 10:38:17 +00:00

Avoid potential division by zero

This commit is contained in:
Carles Fernandez 2025-01-27 15:19:44 +01:00
parent 003bb82765
commit e1fc5b49df
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
4 changed files with 76 additions and 8 deletions

View File

@ -40,6 +40,7 @@
#include <cstddef>
#include <exception>
#include <iostream>
#include <limits>
#include <memory>
#include <sstream>
#include <utility>
@ -872,9 +873,25 @@ int glonass_l1_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __at
tmp_float = static_cast<float>(d_code_freq_chips);
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// PLL commands
tmp_float = static_cast<float>(1.0 / (d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S));
float aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon())
{
tmp_float = 1.0 / aux;
}
else
{
tmp_float = 0.0;
}
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
tmp_float = static_cast<float>(1.0 / (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S));
aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon())
{
tmp_float = 1.0 / aux;
}
else
{
tmp_float = 0.0;
}
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// DLL commands
tmp_float = static_cast<float>(d_code_error_chips_Ti * CURRENT_INTEGRATION_TIME_S);

View File

@ -38,6 +38,7 @@
#include <cstddef>
#include <exception>
#include <iostream>
#include <limits>
#include <memory>
#include <sstream>
#include <utility>
@ -874,9 +875,25 @@ int glonass_l1_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __at
tmp_float = static_cast<float>(d_code_freq_chips);
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// PLL commands
tmp_float = static_cast<float>(1.0 / (d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S));
float aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon())
{
tmp_float = 1.0 / aux;
}
else
{
tmp_float = 0.0;
}
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
tmp_float = static_cast<float>(1.0 / (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S));
aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon())
{
tmp_float = 1.0 / aux;
}
else
{
tmp_float = 0.0;
}
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// DLL commands
tmp_float = static_cast<float>(d_code_error_chips_Ti * CURRENT_INTEGRATION_TIME_S);

View File

@ -37,6 +37,7 @@
#include <cstddef>
#include <exception>
#include <iostream>
#include <limits>
#include <memory>
#include <sstream>
#include <utility>
@ -867,9 +868,25 @@ int glonass_l2_ca_dll_pll_c_aid_tracking_cc::general_work(int noutput_items __at
tmp_float = static_cast<float>(d_code_freq_chips);
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// PLL commands
tmp_float = static_cast<float>(1.0 / (d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S));
float aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon())
{
tmp_float = 1.0 / aux;
}
else
{
tmp_float = 0.0;
}
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
tmp_float = static_cast<float>(1.0 / (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S));
aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon())
{
tmp_float = 1.0 / aux;
}
else
{
tmp_float = 0.0;
}
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// DLL commands
tmp_float = static_cast<float>(d_code_error_chips_Ti * CURRENT_INTEGRATION_TIME_S);

View File

@ -36,6 +36,7 @@
#include <cstddef>
#include <exception>
#include <iostream>
#include <limits>
#include <memory>
#include <sstream>
#include <utility>
@ -871,9 +872,25 @@ int glonass_l2_ca_dll_pll_c_aid_tracking_sc::general_work(int noutput_items __at
tmp_float = static_cast<float>(d_code_freq_chips);
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// PLL commands
tmp_float = static_cast<float>(1.0 / (d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S));
float aux = static_cast<float>(d_carr_phase_error_secs_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon())
{
tmp_float = 1.0 / aux;
}
else
{
tmp_float = 0.0;
}
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
tmp_float = static_cast<float>(1.0 / (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S));
aux = (d_code_error_filt_chips_Ti * CURRENT_INTEGRATION_TIME_S);
if (std::fabs(aux) > std::numeric_limits<float>::epsilon())
{
tmp_float = 1.0 / aux;
}
else
{
tmp_float = 0.0;
}
d_dump_file.write(reinterpret_cast<char *>(&tmp_float), sizeof(float));
// DLL commands
tmp_float = static_cast<float>(d_code_error_chips_Ti * CURRENT_INTEGRATION_TIME_S);