#include <Prob.h>

**Prob**- A floating point number representing a probability.
**LogP**- Logarithm to base 10 of a probability.

**LogP_Zero**- Log of probability 0.
**LogP_Inf**- Log of probability infinity (not a legal probability, of course).
**LogP_One**- Log of probability 1.
**LogP_Precision**- The number of significant digits in a LogP
**Prob_Epsilon**- A positive value close to 0; probability sums less than this should be considered effectively zero.

**Boolean parseLogP(const char ****string*, LogP &*prob*)-
Converts a floating point string representation into a LogP.
Returns
**true**iff the number was parsed correctly. This function should be much faster than generic C library functions for floating point parsing. Also, it parses singular LogP's (plus/minus infinity) correctly. **Prob LogPtoPPL(LogP***prob*)- Converts a LogP into a perplexity (PPL).
**ProbToLogP(Prob \fPprob\fP)**- Converts a probability into a LogP.
**LogP MixLogP(LogP***prob1*, LogP*prob2*, double*lambda*)-
Computes the LogP resulting from interpolating two LogP's.
If
*p1*and*p2*are probabilities corresponding to*prob1*and*prob2*, respectively, then the result is the LogP corresponding to*lambda***p1*+ (1 -*lambda*) **p2*.

The following functions deal with *bytelogs*.
Bytelogs are logarithms scaled to represent probabilties and likelihoods
as a short integer in SRI's DECIPHER(TM) recognizer
(bytelog(*p*) = log(*p*) * 10000.5 / 1024).

**double ProbToBytelog(Prob***prob*)- Converts a probability to a bytelog.
**double LogPtoBytelog(LogP***prob*)- Convert a LogP to a bytelog.
**LogP BytelogToLogP(double***bytelog*)- Convert a bytelog to a LogP.

Copyright 1995, 1996 SRI International