Make.Domain
val shifts :
'n Degree_bound.t ->
shifts:( log2_size:int -> Impl.Field.Constant.t array ) ->
Impl.Field.t Pickles_types.Plonk_types.Shifts.t
Compute the 'shifts' used by the kimchi permutation argument.
These values are selected deterministically-randomly to appear outside of the domain, so that every choice of i
and shift
results in a distinct value for shift * domain_generator ^ i
.
val generator :
'n Degree_bound.t ->
domain_generator:( log2_size:int -> Impl.Field.t ) ->
Impl.Field.t
type nonrec 'n t = ( Plonk_checks.Domain.t, 'n ) t
val to_domain :
shifts:( log2_size:int -> Impl.Field.Constant.t array ) ->
domain_generator:( log2_size:int -> Impl.Field.t ) ->
'n t ->
Impl.Field.t Plonk_checks.plonk_domain