Special case rsm <-> summary comparison for zero values
This commit is contained in:
parent
d53984c72d
commit
8821b27556
@ -322,13 +322,23 @@ bool cmp(const ESmry& smry, const ERsm& rsm) {
|
||||
const auto& smry_vector = smry.get(node);
|
||||
const auto& rsm_vector = rsm.get(key);
|
||||
for (std::size_t index = 0; index < smry_vector.size(); index++) {
|
||||
const double eps = 5e-5;
|
||||
const double diff = static_cast<double>(smry_vector[index]) - rsm_vector[index];
|
||||
const double sum = std::fabs(static_cast<double>(smry_vector[index])) + std::fabs(rsm_vector[index]);
|
||||
const auto smry_value = static_cast<double>(smry_vector[index]);
|
||||
const auto rsm_value = rsm_vector[index];
|
||||
if (std::fabs(rsm_value) < 1e-4) {
|
||||
const double zero_eps = 1e-6;
|
||||
if (std::fabs(smry_value) > zero_eps) {
|
||||
fmt::print(stderr, "time_index: {} key: {} summary: {} rsm: {}\n", index, key, smry_value, rsm_value);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
const double eps = 5e-5;
|
||||
const double diff = std::fabs(smry_value - rsm_value);
|
||||
const double sum = std::fabs(smry_value) + std::fabs(rsm_value);
|
||||
|
||||
if (diff > eps * sum) {
|
||||
fmt::print(stderr, "time_index: {} key: {} summary: {} rsm: {}\n", index, key, smry_vector[index], rsm_vector[index]);
|
||||
return false;
|
||||
if (diff > eps * sum) {
|
||||
fmt::print(stderr, "time_index: {} key: {} summary: {} rsm: {}\n", index, key, smry_value, rsm_value);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user