mirror of
https://git.gfz-potsdam.de/naaice/poet.git
synced 2025-12-15 20:38:23 +01:00
stuff in computeStats
This commit is contained in:
parent
48b6b992bf
commit
e58423ff0b
@ -182,36 +182,48 @@ void poet::ChemistryModule::computeStats(const std::vector<double> &pqc_vector,
|
||||
{
|
||||
double err_sum = 0.0;
|
||||
double sqr_err_sum = 0.0;
|
||||
int count = 0;
|
||||
|
||||
for (uint32_t j = 0; j < size_per_prop; j++)
|
||||
{
|
||||
|
||||
double pqc_value = pqc_vector[i * size_per_prop + j];
|
||||
double sur_value = sur_vector[i * size_per_prop + j];
|
||||
const double &pqc_value = pqc_vector[i * size_per_prop + j];
|
||||
const double &sur_value = sur_vector[i * size_per_prop + j];
|
||||
|
||||
if (pqc_value != 0)
|
||||
{
|
||||
double rel_err = (pqc_value - sur_value) / pqc_value;
|
||||
err_sum += std::abs(rel_err);
|
||||
sqr_err_sum += rel_err * rel_err;
|
||||
count++;
|
||||
}
|
||||
if (pqc_value == 0 && sur_value != 0)
|
||||
{
|
||||
err_sum += 1.0;
|
||||
sqr_err_sum += 1.0;
|
||||
count++;
|
||||
if (pqc_value == 0 && sur_value == 0) {
|
||||
//
|
||||
} else if (pqc_value == 0 && sur_value != 0) {
|
||||
std::cout << "NOOOO! pqc = " << pqc_value << ", sur = " << sur_value << "\n";
|
||||
err_sum += 1.;
|
||||
sqr_err_sum += 1.;
|
||||
} else {
|
||||
const double alpha = 1 - (sur_value/pqc_value);
|
||||
err_sum += std::abs(alpha);
|
||||
sqr_err_sum += alpha * alpha;
|
||||
}
|
||||
|
||||
// if (pqc_value != 0)
|
||||
// {
|
||||
// double rel_err = (pqc_value - sur_value) / pqc_value;
|
||||
// err_sum += std::abs(rel_err);
|
||||
// sqr_err_sum += rel_err * rel_err;
|
||||
// }
|
||||
// if (pqc_value == 0 && sur_value != 0)
|
||||
// {
|
||||
// err_sum += 1.0;
|
||||
// sqr_err_sum += 1.0;
|
||||
// }
|
||||
// else: both cases are zero, skip (no error)
|
||||
if (i == 6 && (j % 1000 == 0)) {
|
||||
std::cout << "pqc = " << pqc_value << ", sur = " << sur_value << "\n";
|
||||
}
|
||||
}
|
||||
if (i == 0)
|
||||
{
|
||||
std::cout << "computeStats, i==0, err_sum: " << err_sum << std::endl;
|
||||
std::cout << "computeStats, i==0, sqr_err_sum: " << sqr_err_sum << std::endl;
|
||||
}
|
||||
stats.mape[i] = (count > 0) ? (100.0 / count) * err_sum : 0.0;
|
||||
stats.rrsme[i] = (count > 0) ? std::sqrt(sqr_err_sum / count) : 0.0;
|
||||
stats.mape[i] = 100.0 * (err_sum / size_per_prop);
|
||||
stats.rrsme[i] = (size_per_prop > 0) ? std::sqrt(sqr_err_sum / size_per_prop) : 0.0;
|
||||
}
|
||||
|
||||
}
|
||||
@ -636,4 +648,4 @@ void poet::ChemistryModule::masterSetField(Field field)
|
||||
PropagateFunctionType(ftype);
|
||||
|
||||
ChemBCast(&this->prop_count, 1, MPI_UINT32_T);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user