KhronosGroup / KhronosGroup/OpenCL-CTS
math bruteforce is not testing edge case behavior
- Dominant language
- C++
- Stars
- 232
- Forks
- 235
- Avg merge
- 8d 7h
- Merged PRs (30d)
- 18
Description
Both the OpenCL C spec and the OpenCL SPIR-V environment spec describe required edge case behavior for certain math functions. These sections also reference the C99 specifications, which describe required edge case behavior for other math functions:
* https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_C.html#edge-case-behavior
* https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_Env.html#_edge_case_behavior
Note that these sections both say: "Those values shall produce exactly the prescribed answers, and no other."
As far as I can tell, though, these edge case behaviors are not tested for in the math bruteforce tests or elsewhere. Instead, for these inputs, the usual tests for math accuracy apply. Do we need dedicated tests for these edge case values?
@shajder EDIT: Issue partially addressed through [PR 2665](https://github.com/KhronosGroup/OpenCL-CTS/pull/2665). There is still an open discussion on remaining edge cases [here](https://github.com/KhronosGroup/OpenCL-Docs/issues/1538). Leaving this issue open until we will have clarity how this will evolve.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the math bruteforce tests alongside the OpenCL C and OpenCL SPIR-V edge-case sections linked in the issue. Check PR 2665 and the remaining discussion in OpenCL-Docs issue 1538 to identify which cases are still unresolved. Done means the agreed prescribed answers are covered by dedicated conformance tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100