# Bounded duplicate review — 13 September 2026

Repository: https://github.com/nntrainer/nntrainer

The GitHub API returned main commit
`a7ea056e79ab8e14447ea305c1b634e233343258`. Five saved issue/PR searches produced
35 distinct records (including eight of the author's earlier reports/PR).
The full search responses and discussion comments are retained in the local
working evidence. The portable publication package includes an index of
queries, record URLs/titles/statuses and source-response hashes under
`upstream/public-index.json`; `screen_upstream.py` can retrieve the public
records again. Relevant original code is frozen under `source/`.

| Query inside nntrainer/nntrainer | Results |
|---|---:|
| `pow` | 22 |
| `"PowLayer"` | 0 |
| `"exponent=0"` | 4 |
| `"power" "gradient"` | 3 |
| `author:kadyrbekovhamit-cyber` | 8 |

No direct report of `PowLayer`'s zero-exponent backward producing NaN was found
within this search. This is a bounded finding, not proof of absolute priority.
The search also covered closed issues/PRs. The older GERO catalogue was checked:
it contains twelve nntrainer-related articles/overviews, with no dedicated
nntrainer zero-exponent PowLayer report.

## Closest records and distinctions

- [#4326](https://github.com/nntrainer/nntrainer/issues/4326), open: the author's
  five unary-layer report concerns discarded functional Tensor results and a
  missing cosine sign in sqrt, negative, sine, cosine and tangent. PowLayer
  keeps its returned tensors; its new defect is a singular intermediate when
  the fixed exponent is zero. The report does not describe this case.
- [#2801](https://github.com/nntrainer/nntrainer/pull/2801), merged 23 January
  2025: introduces the Pow operation layer and the same unspecialized backward
  expression. Its tests use exponent 3 and check layer semantics. The saved
  body, files and comments do not report the zero-exponent backward issue.
- [#2173](https://github.com/nntrainer/nntrainer/pull/2173), closed without merge:
  NHWC support for Tensor add/pow/subtract; points to #2238. This is tensor
  layout/forward work, not this fixed-exponent layer derivative.
- [#3896](https://github.com/nntrainer/nntrainer/pull/3896), closed without merge:
  public tensor API redesign; comments refer to #3915. It is not this backward
  calculation.
- [#4096](https://github.com/nntrainer/nntrainer/pull/4096), open: LayerNorm
  inference fast-path layout error. Different operator and contract.
- Other zero-exponent search hits #2908, #3001 and #4262 concern numeric
  conversion, FP16 validity checks and HVX exp/softmax, respectively.
- Other `pow` matches concern inference/ONNX mapping, LayerNorm, example-layer
  weight sharing and CI logs. They do not establish a direct duplicate of the
  tested zero-exponent PowLayer backward.

The source-path history API lists the original operation-layer commit
`091c4969cb1eb8a9d1b41ac4e309a19e844402af` and a later repository-URL update
`5faedb939e524745eb8594313695d7f7c4a80d5c`. The inspected current main retains
the derivative expression from the introducing PR. The introducing version
was reviewed statically, not separately built or tested in this audit.

No upstream issue/PR was submitted in this preparation task. Before eventual
external publication or submission, recheck main and the focused searches.
