Computes the row values for the Straus MSM columns of the ECCVM.
For a detailed description of the Straus algorithm and its relation to the ECCVM, please see https://hackmd.io/@aztec-network/rJ5xhuCsn
- Parameters
-
| msms | |
| point_table_read_counts | |
| total_number_of_muls | |
- Returns
- std::vector<MSMState>
When computing point_table_read_counts, we need the table index that a given point belongs to. the slice value is in compressed windowed-non-adjacent-form format: A non-compressed WNAF slice is in the range: -15, -13, ..., 15 In compressed form, tney become 0, ..., 15 The point table format is the following: (for positive point table) T[0] = P, T[1] = PT, ..., T[7] = 15P (for negative point table) T[0] = -P, T[1] = -3P, ..., T[15] = -15P i.e. if the slice value is negative, we can use the compressed WNAF directly as the table index if the slice value is positive, we must take 15 - compressedWNAF to get the table index