Aus dem Nichts bekomme ich ein ziemlich großes Ergebnis für diese Funktion ... Es sollte sehr einfach sein, aber ich kann es jetzt nicht sehen.Schreckliche Nummer kommt aus dem Nichts
double prob_calculator_t::pimpl_t::B_full_term() const
{
double result = 0.0;
for (uint32_t j=0, j_end=U; j<j_end; j++)
{
uint32_t inhabited_columns = doc->row_sums[j];
// DEBUG
cout << "inhabited_columns: " << inhabited_columns << endl;
cout << "log_of_sum[j]: " << log_of_sum[j] << endl;
cout << "sum_of_log[j]: " << sum_of_log[j] << endl;
// end DEBUG
result += (-inhabited_columns * log(log_of_sum[j]) + sum_of_log[ j ]);
cout << "result: " << result << endl;
}
return result;
}
und wo ist die Spur:
inhabited_columns: 1
log_of_sum[j]: 110.56
sum_of_log[j]: -2.81341
result: 2.02102e+10
inhabited_columns: 42
log_of_sum[j]: 110.56
sum_of_log[j]: -143.064
result: 4.04204e+10
Danke für die Hilfe!
Sind diese für 'j' Werte Null und Eins? Sind Sie sicher, dass "log" "std :: log" ist? – aschepler
Ich stimme den 3 Schlussabstimmungen nicht zu. Die Frage ist gut geschrieben: guter Code, gute Ausgangsspur und die Antwort ist subtil. Und es gibt 5 Upvotes zu der Frage. Würden die engsten Wähler näher erläutern? – Bathsheba