Skip to content

Commit

Permalink
Fix unidentified hints bug
Browse files Browse the repository at this point in the history
  • Loading branch information
har777 committed Jul 8, 2024
1 parent 4b60964 commit f8c9d6e
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
4 changes: 2 additions & 2 deletions pkg/hintrunner/zero/hintcode.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,8 @@ ids.multiplicities = segments.gen_arg([len(positions_dict[k]) for k in output])`
vmEnterScopeCode string = "vm_enter_scope()"
vmExitScopeCode string = "vm_exit_scope()"
findElementCode string = "array_ptr = ids.array_ptr\nelm_size = ids.elm_size\nassert isinstance(elm_size, int) and elm_size > 0, \\\n f'Invalid value for elm_size. Got: {elm_size}.'\nkey = ids.key\n\nif '__find_element_index' in globals():\n ids.index = __find_element_index\n found_key = memory[array_ptr + elm_size * __find_element_index]\n assert found_key == key, \\\n f'Invalid index found in __find_element_index. index: {__find_element_index}, ' \\\n f'expected key {key}, found key: {found_key}.'\n # Delete __find_element_index to make sure it's not used for the next calls.\n del __find_element_index\nelse:\n n_elms = ids.n_elms\n assert isinstance(n_elms, int) and n_elms >= 0, \\\n f'Invalid value for n_elms. Got: {n_elms}.'\n if '__find_element_max_size' in globals():\n assert n_elms <= __find_element_max_size, \\\n f'find_element() can only be used with n_elms<={__find_element_max_size}. ' \\\n f'Got: n_elms={n_elms}.'\n\n for i in range(n_elms):\n if memory[array_ptr + elm_size * i] == key:\n ids.index = i\n break\n else:\n raise ValueError(f'Key {key} was not found.')"
nondetElementsOverTWoCode string = "memory[ap] = to_felt_or_relocatable(ids.n >= 2)"
nondetElementsOverTenCode string = "memory[ap] = to_felt_or_relocatable(ids.n >= 10)"
nondetElementsOverTwoCode string = "memory[ap] = to_felt_or_relocatable(ids.elements_end - ids.elements >= 2)"
nondetElementsOverTenCode string = "memory[ap] = to_felt_or_relocatable(ids.elements_end - ids.elements >= 10)"
setAddCode string = "assert ids.elm_size > 0\nassert ids.set_ptr <= ids.set_end_ptr\nelm_list = memory.get_range(ids.elm_ptr, ids.elm_size)\nfor i in range(0, ids.set_end_ptr - ids.set_ptr, ids.elm_size):\n if memory.get_range(ids.set_ptr + i, ids.elm_size) == elm_list:\n ids.index = i // ids.elm_size\n ids.is_elm_in_set = 1\n break\nelse:\n ids.is_elm_in_set = 0"
searchSortedLowerCode string = `array_ptr = ids.array_ptr
elm_size = ids.elm_size
Expand Down
4 changes: 2 additions & 2 deletions pkg/hintrunner/zero/zerohint.go
Original file line number Diff line number Diff line change
Expand Up @@ -258,8 +258,8 @@ func GetHintFromCode(program *zero.ZeroProgram, rawHint zero.Hint, hintPC uint64
return createTestAssignHinter(resolver)
case findElementCode:
return createFindElementHinter(resolver)
case nondetElementsOverTWoCode:
return createNondetElementsOverTWoHinter(resolver)
case nondetElementsOverTwoCode:
return createNondetElementsOverTwoHinter(resolver)
case nondetElementsOverTenCode:
return createNondetElementsOverTenHinter(resolver)
default:
Expand Down
10 changes: 5 additions & 5 deletions pkg/hintrunner/zero/zerohint_others.go
Original file line number Diff line number Diff line change
Expand Up @@ -608,14 +608,14 @@ func createSearchSortedLowerHinter(resolver hintReferenceResolver) (hinter.Hinte
return newSearchSortedLowerHint(arrayPtr, elmSize, nElms, key, index), nil
}

// NondetElementsOverTWo hint compares the offset difference between two memory address and
// NondetElementsOverTwo hint compares the offset difference between two memory address and
// writes 1 or 0 at `ap` memory address, depending on whether the difference is greater or
// equal to 2 or not
//
// `newNondetElementsOverTWoHint` takes 2 operanders as arguments
// `newNondetElementsOverTwoHint` takes 2 operanders as arguments
// - `elementsEnd` represents the address in memory right after the last element of the array
// - `elements` represents the address in memory of the first element of the array
func newNondetElementsOverTWoHint(n hinter.ResOperander) hinter.Hinter {
func newNondetElementsOverTwoHint(n hinter.ResOperander) hinter.Hinter {
return &GenericZeroHinter{
Name: "NondetElementsOverTWo",
Op: func(vm *VM.VirtualMachine, ctx *hinter.HintRunnerContext) error {
Expand All @@ -641,13 +641,13 @@ func newNondetElementsOverTWoHint(n hinter.ResOperander) hinter.Hinter {
}
}

func createNondetElementsOverTWoHinter(resolver hintReferenceResolver) (hinter.Hinter, error) {
func createNondetElementsOverTwoHinter(resolver hintReferenceResolver) (hinter.Hinter, error) {
n, err := resolver.GetResOperander("n")
if err != nil {
return nil, err
}

return newNondetElementsOverTWoHint(n), nil
return newNondetElementsOverTwoHint(n), nil
}

// NondetElementsOverTen hint compares the offset difference between two memory address and
Expand Down

0 comments on commit f8c9d6e

Please sign in to comment.