5.7.2 Possible Error Messages

The functions qsmm_node_asm and qsmm_get_prg_nstate_v2 can generate the following error messages.

controlled var ‘name’ is for action emission matrix backed by large actor

QSMM 1.19 does not support using controlled probability variables for the action emission matrix if the instruction emission engine is a large actor. Here name is a controlled probability variable for the action emission matrix.

controlled var ‘name’ is for state transition matrix backed by large actor

QSMM 1.19 does not support using controlled probability variables for the state transition matrix if the environment state identification engine is a large actor. Here name is a controlled probability variable for the state transition matrix.

deterministic action emission matrix disallows the probabilistic jump

The action emission matrix has the restriction to define only deterministic action emissions, but a block of jprob instructions or a choice instruction block specifies profile probabilities of action emissions. The assembler considers that the block specifies profile probabilities of action emissions, because it goes after an stt instruction, or because the state transition matrix has the restriction to define only deterministic state transitions.

deterministic state transition matrix disallows the probabilistic jump

The state transition matrix has the restriction to define only deterministic state transitions, but a block of jprob instructions or a choice instruction block specifies profile probabilities of state transitions. The assembler considers that the block specifies profile probabilities of state transitions because the action emission matrix has the restriction to define only deterministic action emissions.

infinite looping

A jmp instruction or a jprob or case instruction with jump probability 1 transfers control to a chain of jmp instructions circularly transferring control to a jmp instruction in the chain or the jprob instruction.

infinite looping is possible

A joe instruction or a jprob or case instruction with a jump probability greater than 0 but less than 1 transfers control to a chain of jmp instructions circularly transferring control a jmp instruction in the chain or the joe instruction.

Alternatively, a chain of unconditional jumps executed after a joe instruction that does not transfer control to the next instruction transfers control to the joe instruction.

instruction class ‘name’ not found

An assembler program contains an assembler instruction belonging to an instruction class name, but it does not exist in the instruction class set of the node.

output probabilities array ‘name’ has ambiguous context

A probabilities array name specifies profile probabilities for both the state transition matrix and action emission matrix.

output probability variable ‘name’ is duplicate or has ambiguous context

A probability variable name is not controlled one, flags include QSMM_ASM_VAR_OUT but do not include QSMM_ASM_VAR_AUX, and at least one of the following conditions is true for the probability variable:

  • it has another occurrence;
  • it belongs to different contiguous blocks of jprob instructions;
  • it specifies a profile probability for both the state transition matrix and action emission matrix;
  • it is another output probability variable for the same cell of the state transition matrix.
recursive jump to beginning of ‘choice’ instruction block not allowed

A case instruction with a positive jump probability transfers control via an optional chain of jmp instructions to a choice instruction block containing the case instruction.

state contains another emission of “name_and_parameters” instruction here

A block of jprob instructions or a choice instruction block located at the beginning of a state already contains a jprob or case instruction transferring control to an instruction name_and_parameters.

state contains another emission of this instruction sequence

A block of jprob instructions or a choice instruction block located at the beginning of a state already contains a jprob or case instruction transferring control to the same instruction sequence.

unexpected probability variable ‘name

A probability variable name is not controlled one, and flags do not include QSMM_ASM_VAR_OUT and QSMM_ASM_VAR_AUX.

user or mixed-type instruction expected

The assembler expects a user or mixed-type instruction at this location because it is the beginning of a state or because the location is a jump target of a jprob or case instruction contained in a block of jprob instructions or a choice instruction block at the beginning of a state.