The current implementation of Gaussian Mixture clusterer uses probabilities directly instead of taking the log as is a convention used in other Gaussian/probability-based estimators in Rubix. When computing probabilities, numerical instability issues arise when such probabilities are very high or (more commonly) very low. By entering log space, we push the precision of the floating point number from the exponent to the mantissa, which has more precision and therefore avoids numerical under/overflows.
The current implementation of Gaussian Mixture clusterer uses probabilities directly instead of taking the log as is a convention used in other Gaussian/probability-based estimators in Rubix. When computing probabilities, numerical instability issues arise when such probabilities are very high or (more commonly) very low. By entering log space, we push the precision of the floating point number from the exponent to the mantissa, which has more precision and therefore avoids numerical under/overflows.