Skip to content

Add controlled fine-grained steps to Double default mutator#59

Open
Abhishek21g wants to merge 1 commit into
doordash-oss:mainfrom
Abhishek21g:fix/double-mutator-fine-steps
Open

Add controlled fine-grained steps to Double default mutator#59
Abhishek21g wants to merge 1 commit into
doordash-oss:mainfrom
Abhishek21g:fix/double-mutator-fine-steps

Conversation

@Abhishek21g

Copy link
Copy Markdown

Summary

Fixes #49.

Double.defaultMutator.mutate had no controlled fine-grained step in the normal path (nextUp/nextDown only in the extreme-magnitude fallback), and ±0.1 accumulates binary float noise. The candidate set now includes ULP neighbors, relative deltas, and snapped tenths, while keeping coarse ±1 / ×2 / ÷2 / negate.

Verification

  • Added doubleDefaultMutatorReachesULPNeighbors; existing never-identity test retained
  • Local full swift test blocked by package-benchmark/jemalloc on stock Xcode; please run mutator tests in CI

Include ULP nextUp/nextDown and relative deltas in the normal mutate
candidate set, and replace binary-inexact ±0.1 with snapped tenths so
fine exploration does not accumulate mantissa noise.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Improve the Double default mutator: no controlled fine-grained additive step (±0.1 accumulates float noise)

1 participant