Condition Tables & State

  1. Decision Tables
    1. Table of data or booleans
    2. Combine columns according to rules
      • Execute or call function on true
  2. Condition Table
    1. Process components to generate
      • Compact access vs. iteration over entities
    2. Tables of true/false/null (= don't care or missing)
      • In SoA form: array for each column
    3. Combine condition table columns with boolean logic (to avoid branches)
      • Iterate over input or output based on data expectation
    4. Condition tables guide data transform
      1. Generate filtered output list
      2. Generate multiple output lists
      3. Generate messages
      4. Log for debugging
  3. Data transformation
    1. Traverse data, generating render list(s)
    2. Traverse list to render
    3. Multi-core, can generate lists on one core, consume on another
  4. State
    1. State variables in a class have low information density
    2. State implies conditional tests
    3. Existence in table = state
      1. Component table
      2. Condition table
    4. State transition = insert/emit row into table
      1. Add component for item
      2. Add table for injured/healthy
      3. Add row to condition table
    5. Processing
      1. On transition
      2. As process over table