FAILURE MAP
← Case archive

FA-48951 / PCM sample encoding / Open access

Sign magnitude pcm: negative mapping · case 01

Sign-magnitude negatives are decoded as complement negatives.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Sign-magnitude negatives are decoded as complement negatives.

VERIFIED REPAIR

Use the stated conversion contract at negative mapping.

Unsuccessful approach: Adding a negative bias destroys the separate negative-zero code.

Case contract

Decode sign-magnitude PCM with configurable physical sign-bit polarity and preserve numerical negative zero as a Boolean sideband.

Why this case matters

Offline PCM interchange uses these exact bounded packet and sample representation decisions.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(codes, width, invert_sign):
    mask=(1<<(width-1))-1
    sign=1<<(width-1)
    values=[]
    zeros=[]
    for code in codes:
        magnitude=code&mask
        negative=bool(code&sign)^invert_sign
        values.append(magnitude-(1<<width) if negative else magnitude)
        zeros.append(bool(negative and magnitude==0))
    return [values,zeros]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([0, 1, 7, 8, 9, 15], 4, False)), [[0, 1, 7, 0, -1, -7], [False, False, False, True, False, False]])
check('oracle 2', solve(*([0, 8, 1, 9], 4, True)), [[0, 0, -1, 1], [True, False, False, False]])
check('oracle 3', solve(*([], 4, False)), [[], []])
check('oracle 4', solve(*([0, 3, 4, 7], 3, False)), [[0, 3, 0, -3], [False, False, True, False]])
check('oracle 5', solve(*([0, 128, 255, 127], 8, False)), [[0, 0, -127, 127], [False, True, False, False]])
check('oracle 6', solve(*([1, 2, 3], 4, True)), [[-1, -2, -3], [False, False, False]])
check('oracle 7', solve(*([0, 4], 3, True)), [[0, 0], [True, False]])
if N == 1: check('variant packet 1', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 2: check('variant packet 2', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 3: check('variant packet 3', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 4: check('variant packet 4', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 5: check('variant packet 5', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
oracle 1[[0, 1, 7, -16, -15, -9], [False, False, False, True, False, False]][[0, 1, 7, 0, -1, -7], [False, False, False, True, False, False]]Failed
oracle 2[[-16, 0, -15, 1], [True, False, False, False]][[0, 0, -1, 1], [True, False, False, False]]Failed
oracle 3[[], []][[], []]Passed
oracle 4[[0, 3, -8, -5], [False, False, True, False]][[0, 3, 0, -3], [False, False, True, False]]Failed
oracle 5[[0, -256, -129, 127], [False, True, False, False]][[0, 0, -127, 127], [False, True, False, False]]Failed
oracle 6[[-15, -14, -13], [False, False, False]][[-1, -2, -3], [False, False, False]]Failed
oracle 7[[-8, 0], [True, False]][[0, 0], [True, False]]Failed
variant packet 1[[0, 1, 7, -16, -15, -9, 0, 1, 7, -16, -15, -9], [False, False, False, True, False, False, False, False, False, True, False, False]][[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False]]Failed

SHA-256 / 98ec4547a247f9cc4de0067d61dac3988b1687368d6186de83747cabc5f1b383

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(codes, width, invert_sign):
    mask=(1<<(width-1))-1
    sign=1<<(width-1)
    values=[]
    zeros=[]
    for code in codes:
        magnitude=code&mask
        negative=bool(code&sign)^invert_sign
        values.append(-magnitude-1 if negative else magnitude)
        zeros.append(bool(negative and magnitude==0))
    return [values,zeros]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([0, 1, 7, 8, 9, 15], 4, False)), [[0, 1, 7, 0, -1, -7], [False, False, False, True, False, False]])
check('oracle 2', solve(*([0, 8, 1, 9], 4, True)), [[0, 0, -1, 1], [True, False, False, False]])
check('oracle 3', solve(*([], 4, False)), [[], []])
check('oracle 4', solve(*([0, 3, 4, 7], 3, False)), [[0, 3, 0, -3], [False, False, True, False]])
check('oracle 5', solve(*([0, 128, 255, 127], 8, False)), [[0, 0, -127, 127], [False, True, False, False]])
check('oracle 6', solve(*([1, 2, 3], 4, True)), [[-1, -2, -3], [False, False, False]])
check('oracle 7', solve(*([0, 4], 3, True)), [[0, 0], [True, False]])
if N == 1: check('variant packet 1', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 2: check('variant packet 2', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 3: check('variant packet 3', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 4: check('variant packet 4', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 5: check('variant packet 5', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
oracle 1[[0, 1, 7, -1, -2, -8], [False, False, False, True, False, False]][[0, 1, 7, 0, -1, -7], [False, False, False, True, False, False]]Failed
oracle 2[[-1, 0, -2, 1], [True, False, False, False]][[0, 0, -1, 1], [True, False, False, False]]Failed
oracle 3[[], []][[], []]Passed
oracle 4[[0, 3, -1, -4], [False, False, True, False]][[0, 3, 0, -3], [False, False, True, False]]Failed
oracle 5[[0, -1, -128, 127], [False, True, False, False]][[0, 0, -127, 127], [False, True, False, False]]Failed
oracle 6[[-2, -3, -4], [False, False, False]][[-1, -2, -3], [False, False, False]]Failed
oracle 7[[-1, 0], [True, False]][[0, 0], [True, False]]Failed
variant packet 1[[0, 1, 7, -1, -2, -8, 0, 1, 7, -1, -2, -8], [False, False, False, True, False, False, False, False, False, True, False, False]][[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False]]Failed

SHA-256 / 72f7a11aef2b66ad6f78ef3bb4034d2b8383d0d4a552442d168379e2822a19db

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(codes, width, invert_sign):
    mask=(1<<(width-1))-1
    sign=1<<(width-1)
    values=[]
    zeros=[]
    for code in codes:
        magnitude=code&mask
        negative=bool(code&sign)^invert_sign
        values.append(-magnitude if negative else magnitude)
        zeros.append(bool(negative and magnitude==0))
    return [values,zeros]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([0, 1, 7, 8, 9, 15], 4, False)), [[0, 1, 7, 0, -1, -7], [False, False, False, True, False, False]])
check('oracle 2', solve(*([0, 8, 1, 9], 4, True)), [[0, 0, -1, 1], [True, False, False, False]])
check('oracle 3', solve(*([], 4, False)), [[], []])
check('oracle 4', solve(*([0, 3, 4, 7], 3, False)), [[0, 3, 0, -3], [False, False, True, False]])
check('oracle 5', solve(*([0, 128, 255, 127], 8, False)), [[0, 0, -127, 127], [False, True, False, False]])
check('oracle 6', solve(*([1, 2, 3], 4, True)), [[-1, -2, -3], [False, False, False]])
check('oracle 7', solve(*([0, 4], 3, True)), [[0, 0], [True, False]])
if N == 1: check('variant packet 1', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 2: check('variant packet 2', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 3: check('variant packet 3', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 4: check('variant packet 4', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
if N == 5: check('variant packet 5', solve(*[[0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15, 0, 1, 7, 8, 9, 15], 4, False]), [[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False, False, False, False, True, False, False]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
oracle 1[[0, 1, 7, 0, -1, -7], [False, False, False, True, False, False]][[0, 1, 7, 0, -1, -7], [False, False, False, True, False, False]]Passed
oracle 2[[0, 0, -1, 1], [True, False, False, False]][[0, 0, -1, 1], [True, False, False, False]]Passed
oracle 3[[], []][[], []]Passed
oracle 4[[0, 3, 0, -3], [False, False, True, False]][[0, 3, 0, -3], [False, False, True, False]]Passed
oracle 5[[0, 0, -127, 127], [False, True, False, False]][[0, 0, -127, 127], [False, True, False, False]]Passed
oracle 6[[-1, -2, -3], [False, False, False]][[-1, -2, -3], [False, False, False]]Passed
oracle 7[[0, 0], [True, False]][[0, 0], [True, False]]Passed
variant packet 1[[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False]][[0, 1, 7, 0, -1, -7, 0, 1, 7, 0, -1, -7], [False, False, False, True, False, False, False, False, False, True, False, False]]Passed

SHA-256 / a33c066e7eed7956b343ff7323fac4d926c00b17f09c5e607cc2355dfb5d0dd7

Verification & scope

Stipulated finite model; no claim of hardware timing or full file-format conformance. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:44:55.313716+00:00.

Case digest / 7cee5531235d57aa5a5a34d89b9a77b8b8cab4919add3802f124640acd074d4b