logprob
This crate defines a basic LogProb wrapper for floats. The struct is designed
so that only values that are coherent for a log-probability are acceptable. This
means that LogProb can store:
- Any finite negative float value (e.g. -0.23, -32535.05, -66.0).
- Negative infinity (corresponding to 0.0 probability)
- 0.0 and -0.0.
The crate is intended for careful implementations of computations involving log-probabilities.
Features
- A way to add
LogProbs (equivalent to taking the product of their corresponding raw probabilities) - Take the product of a
LogProband an unsigned integer (e.g. equivalent to $p^n$). Ord,EqandHashtrait onLogProbas there is noNaN.- A relatively efficient implementation of LogSumExp for slices and iterators.
no_stdsupport by disabling thestdfeature flag (allocations are required for some functions, which can be enabled with theallocfeature flag).
For examples, see the documentation.