Skip to content

Commit

Permalink
implement GetUsedDilutedCheckUnits for Bitwise and Keccak
Browse files Browse the repository at this point in the history
  • Loading branch information
TAdev0 committed Sep 9, 2024
1 parent fb9b871 commit 6214354
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 3 deletions.
10 changes: 7 additions & 3 deletions pkg/runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -366,9 +366,13 @@ func (runner *ZeroRunner) getPermRangeCheckLimits() (uint16, uint16) {
}

func (runner *ZeroRunner) checkDilutedCheckUsage() error {
// for _, builtin := range runner.program.Builtins {
// }
// return fmt.Errorf("check for diluted pool instance failed")
if runner.layout.DilutedPoolInstanceDef.IsNone() {
return nil
}

// dilutedPoolInstance := runner.layout.DilutedPoolInstanceDef.Unwrap()
// usedUnitsByBuiltins := 0

return nil
}

Expand Down
24 changes: 24 additions & 0 deletions pkg/vm/builtins/bitwise.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,27 @@ func (b *Bitwise) String() string {
func (b *Bitwise) GetAllocatedSize(segmentUsedSize uint64, vmCurrentStep uint64) (uint64, error) {
return getBuiltinAllocatedSize(segmentUsedSize, vmCurrentStep, b.ratio, inputCellsPerBitwise, instancesPerComponentBitwise, cellsPerBitwise)
}

func (b *Bitwise) GetUsedDilutedCheckUnits(dilutedSpacing uint32, dilutedNBits uint32) uint64 {
totalNBits := uint32(251)
partition := make([]uint32, 0, totalNBits)

for i := uint32(0); i < totalNBits; i += dilutedSpacing * dilutedNBits {
for j := uint32(0); j < dilutedSpacing; j++ {
if i+j < totalNBits {
partition = append(partition, i+j)
}
}
}

partitionLength := uint64(len(partition))
numTrimmed := uint64(0)

for _, elem := range partition {
if elem+dilutedSpacing*(dilutedNBits-1)+1 > totalNBits {
numTrimmed++
}
}

return 4*partitionLength + numTrimmed
}
8 changes: 8 additions & 0 deletions pkg/vm/builtins/keccak.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,11 @@ func (k *Keccak) String() string {
func (k *Keccak) GetAllocatedSize(segmentUsedSize uint64, vmCurrentStep uint64) (uint64, error) {
return getBuiltinAllocatedSize(segmentUsedSize, vmCurrentStep, k.ratio, inputCellsPerKeccak, instancesPerComponentKeccak, cellsPerKeccak)
}

func (k *Keccak) GetUsedDilutedCheckUnits(dilutedNBits uint32) uint64 {
totalCells := uint64(262144)
if dilutedNBits == 0 {
return 0
}
return totalCells / uint64(dilutedNBits)
}

0 comments on commit 6214354

Please sign in to comment.