jprob Instruction ¶This instruction has the following forms:
jprob number, loc_label
var_def jprob number, loc_label
jprob var_use, loc_label
The instruction specifies control transfer to a location label loc_label with probability number or with profile probability stored in a previously defined variable var_use. A data label var_def defines a probability variable var_def with initial value number. The parameter number must be in the range 0 to 1 inclusive. The assembler supports fixed-point and exponential notation for number.
The jprob instruction effectively sets a profile probability in the action emission matrix or at least one profile probability in the state transition matrix:
stt instruction precedes a contiguous block of jprob instructions, they set profile probabilities in the action emission matrix;
stt instruction does not precede a contiguous block of jprob instructions, and the state transition matrix has the restriction to define only deterministic state transitions, the jprob instructions set profile probabilities in the action emission matrix;
stt instruction does not precede a contiguous block of jprob instructions, and the state transition matrix does not have the restriction to define only deterministic state transitions, the jprob instructions set profile probabilities in the state transition matrix.
Let us consider a block of jprob instructions like this:
jprob prob1, L1
jprob prob2, L2
jprob prob3, L3
The probabilities of jumps to various destinations are the following:
| Jump Destination | Probability Value |
|---|---|
The location label L1 | prob1 |
The second jprob instruction | 1−prob1 |
The location label L2 | (1−prob1)*prob2 |
The third jprob instruction | (1−prob1)*(1−prob2) |
The location label L3 | (1−prob1)*(1−prob2)*prob3 |
An instruction following the third jprob instruction | (1−prob1)*(1−prob2)*(1−prob3) |