# Example table layout Let's say that the below table is responsible for supporting i/o's to the `EcAdd`, `EcMul` and `EcPairing` operations. We have: ```rust= pub enum OpTag { EcAdd = 1, EcMul, EcPairing, } ``` The column `io` is boolean since entries can either be `input` or `output`. For simplicity we assign `input = 0` and `output = 1`. Let's say we have for an `EcAdd` operation: `P + Q == R` where `P`, `Q` and `R` are all EC points, such that: - `P -> input_bytes[0..64]` - `Q -> input_bytes[64..128]` - `R -> output_bytes[0..32]` | id | tag | length | io | index | value | |----|-------|--------|-------|-------|----------------| | 1 | EcAdd | 128 | INPUT | 1 | input_bytes[0] | | 2 | EcAdd | 128 | INPUT | 2 | input_bytes[1] | | 3 | EcAdd | 128 | INPUT | 3 | input_bytes[2] | | .. | ..... | ...... | ..... | ..... | .............. | | 126 | EcAdd | 128 | INPUT | 126 | input_bytes[125] | | 127 | EcAdd | 128 | INPUT | 127 | input_bytes[126] | | 128 | EcAdd | 128 | INPUT | 128 | input_bytes[127] | | 129 | EcAdd | 64 | OUTPUT | 1 | output_bytes[0] | | 130 | EcAdd | 64 | OUTPUT | 2 | output_bytes[1] | | 131 | EcAdd | 64 | OUTPUT | 3 | output_bytes[2] | | .. | ..... | ...... | ..... | ..... | .............. | | 190 | EcAdd | 64 | OUTPUT | 62 | output_bytes[61] | | 191 | EcAdd | 64 | OUTPUT | 63 | output_bytes[62] | | 192 | EcAdd | 64 | OUTPUT | 64 | output_bytes[63] |