MCPcopy Create free account
hub / github.com/PolyhedraZK/ExpanderCompilerCollection / Check

Method Check

ecgo/examples/log_up/main.go:215–241  ·  view source on GitHub ↗
(api ecgo.API, column_combine_option ColumnCombineOptions)

Source from the content-addressed store, hash-verified

213}
214
215func (c *LogUpCircuit) Check(api ecgo.API, column_combine_option ColumnCombineOptions) error {
216
217 // The challenge used to complete polynomial identity check
218 alpha := api.GetRandomValue()
219 // The randomness used to combine the columns
220 column_combine_randomness := GetColumnRandomness(api, uint(len(c.TableKeys[0])+len(c.TableValues[0])), column_combine_option)
221
222 // Table Polynomial
223 table_combined := CombineVecAt2d(c.TableKeys, c.TableValues)
224 table_single_column := CombineColumn(api, table_combined, column_combine_randomness)
225 table_poly_at_alpha := LogUpPolyValsAtAlpha(api, table_single_column, c.QueryCount, alpha)
226
227 // Query Polynomial
228 query_combined := CombineVecAt2d(c.QueryKeys, c.QueryResult)
229 query_single_column := CombineColumn(api, query_combined, column_combine_randomness)
230 dummy_count := make([]frontend.Variable, len(query_single_column))
231 for i := 0; i < len(dummy_count); i++ {
232 dummy_count[i] = 1
233 }
234 query_poly_at_alpha := LogUpPolyValsAtAlpha(api, query_single_column, dummy_count, alpha)
235
236 api.AssertIsEqual(
237 api.Mul(table_poly_at_alpha.Numerator, query_poly_at_alpha.Denominator),
238 api.Mul(query_poly_at_alpha.Numerator, table_poly_at_alpha.Denominator),
239 )
240 return nil
241}
242
243const ColumnCombineOption ColumnCombineOptions = FullRandom
244

Callers 1

DefineMethod · 0.95

Calls 7

CombineVecAt2dFunction · 0.85
LogUpPolyValsAtAlphaFunction · 0.85
AssertIsEqualMethod · 0.80
GetColumnRandomnessFunction · 0.70
CombineColumnFunction · 0.70
GetRandomValueMethod · 0.65
MulMethod · 0.45

Tested by

no test coverage detected