I might be wrong, but this line doesn't seem to be setting the right elements of perClass to 1.
|
set(perClass+perClass_length, (T)1.0, totClasses-perClass_length); |
I suggest to do:
if (*den == 0.0)
{
// Set accuracy =1 on classes with no sampless
perClass[i] = (T)1.0;
}
else
{
perClass[i] = ((T)(*num))/((*den) + std::numeric_limits<T>::epsilon());
}