{"abstract":"Complex exponential subtracts a binary exponent as though natural.","category":"Floating-point arithmetic","checks":8,"contract":"Compute exp(x+iy) for finite components using binary exponent splitting. Fixtures keep each final component finite or zero, including cases where exp(x) alone overflows. Return two rendered components; exact trigonometric zeros are preserved. Finite results are rendered to eleven significant decimal digits; modeled domain violations and arithmetic errors are explicit strings.","evaluation_group":"s3-float-complex-exp-scaled","failed_approach":"The attempted local correction f=x/k if k else x still violates the explicit regression fixtures.","family":"s3-floating_point_arithmetic-complex-exp-scaled-split-residual","id":"FA-17276","implementations":{"attempt":{"sha256":"481c8f97e5ddf7749b010d9938fa5d5f7468e10ed3a64e67af992b9d156dc44b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport struct\ndef render(x):\n    if math.isnan(x): return 'nan'\n    if math.isinf(x): return '-infinity' if x<0 else '+infinity'\n    return format(x,'.11g')\n\nN = 1\nobservations = []\ndef solve(x,y):\n    try:\n        k=math.floor(x/math.log(2))\n        f=x/k if k else x\n        scale=math.exp(f)\n        c=math.cos(y); s=math.sin(y)\n        real=math.ldexp(scale*c,k)\n        imag=math.ldexp(scale*s,k)\n        return [render(real),render(imag)]\n    except (ValueError, OverflowError, ZeroDivisionError, TypeError):\n        return \"arithmetic-error\"\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('overflowing common factor', solve(710.0,math.pi/4), [render(math.exp(710-math.log(2))*(2*math.cos(math.pi/4))),render(math.exp(710-math.log(2))*(2*math.sin(math.pi/4)))])\ncheck('negative real projection', solve(float(N),2.0), [render(math.exp(N)*math.cos(2)),render(math.exp(N)*math.sin(2))])\ncheck('ordinary', solve(float(N),0.25), [render(math.exp(N)*math.cos(0.25)),render(math.exp(N)*math.sin(0.25))])\ncheck('negative phase', solve(float(N),-0.25), [render(math.exp(N)*math.cos(-0.25)),render(math.exp(N)*math.sin(-0.25))])\ncheck('negative real', solve(-float(N),0.25), [render(math.exp(-N)*math.cos(0.25)),render(math.exp(-N)*math.sin(0.25))])\ncheck('negative zero phase', solve(float(N),-0.0), [render(math.exp(N)),\"-0\"])\ncheck('zero', solve(0.0,0.0), [\"1\",\"0\"])\ncheck('tiny common factor', solve(-744.0,0.25), [render(math.exp(-744)*math.cos(0.25)),render(math.exp(-744)*math.sin(0.25))])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"422b92bc28a797426fb049b47cbb89d5b928226feb51de61802e4e3e8979620e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport struct\ndef render(x):\n    if math.isnan(x): return 'nan'\n    if math.isinf(x): return '-infinity' if x<0 else '+infinity'\n    return format(x,'.11g')\n\nN = 1\nobservations = []\ndef solve(x,y):\n    try:\n        k=math.floor(x/math.log(2))\n        f=x-k\n        scale=math.exp(f)\n        c=math.cos(y); s=math.sin(y)\n        real=math.ldexp(scale*c,k)\n        imag=math.ldexp(scale*s,k)\n        return [render(real),render(imag)]\n    except (ValueError, OverflowError, ZeroDivisionError, TypeError):\n        return \"arithmetic-error\"\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('overflowing common factor', solve(710.0,math.pi/4), [render(math.exp(710-math.log(2))*(2*math.cos(math.pi/4))),render(math.exp(710-math.log(2))*(2*math.sin(math.pi/4)))])\ncheck('negative real projection', solve(float(N),2.0), [render(math.exp(N)*math.cos(2)),render(math.exp(N)*math.sin(2))])\ncheck('ordinary', solve(float(N),0.25), [render(math.exp(N)*math.cos(0.25)),render(math.exp(N)*math.sin(0.25))])\ncheck('negative phase', solve(float(N),-0.25), [render(math.exp(N)*math.cos(-0.25)),render(math.exp(N)*math.sin(-0.25))])\ncheck('negative real', solve(-float(N),0.25), [render(math.exp(-N)*math.cos(0.25)),render(math.exp(-N)*math.sin(0.25))])\ncheck('negative zero phase', solve(float(N),-0.0), [render(math.exp(N)),\"-0\"])\ncheck('zero', solve(0.0,0.0), [\"1\",\"0\"])\ncheck('tiny common factor', solve(-744.0,0.25), [render(math.exp(-744)*math.cos(0.25)),render(math.exp(-744)*math.sin(0.25))])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"89198c78290ab9a83ddcd2c3e75088ee557eeb226ffc27747f970eb6f8bb402b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport struct\ndef render(x):\n    if math.isnan(x): return 'nan'\n    if math.isinf(x): return '-infinity' if x<0 else '+infinity'\n    return format(x,'.11g')\n\nN = 1\nobservations = []\ndef solve(x,y):\n    try:\n        k=math.floor(x/math.log(2))\n        f=x-k*math.log(2)\n        scale=math.exp(f)\n        c=math.cos(y); s=math.sin(y)\n        real=math.ldexp(scale*c,k)\n        imag=math.ldexp(scale*s,k)\n        return [render(real),render(imag)]\n    except (ValueError, OverflowError, ZeroDivisionError, TypeError):\n        return \"arithmetic-error\"\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('overflowing common factor', solve(710.0,math.pi/4), [render(math.exp(710-math.log(2))*(2*math.cos(math.pi/4))),render(math.exp(710-math.log(2))*(2*math.sin(math.pi/4)))])\ncheck('negative real projection', solve(float(N),2.0), [render(math.exp(N)*math.cos(2)),render(math.exp(N)*math.sin(2))])\ncheck('ordinary', solve(float(N),0.25), [render(math.exp(N)*math.cos(0.25)),render(math.exp(N)*math.sin(0.25))])\ncheck('negative phase', solve(float(N),-0.25), [render(math.exp(N)*math.cos(-0.25)),render(math.exp(N)*math.sin(-0.25))])\ncheck('negative real', solve(-float(N),0.25), [render(math.exp(-N)*math.cos(0.25)),render(math.exp(-N)*math.sin(0.25))])\ncheck('negative zero phase', solve(float(N),-0.0), [render(math.exp(N)),\"-0\"])\ncheck('zero', solve(0.0,0.0), [\"1\",\"0\"])\ncheck('tiny common factor', solve(-744.0,0.25), [render(math.exp(-744)*math.cos(0.25)),render(math.exp(-744)*math.sin(0.25))])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Controlled binary64 or explicitly stipulated miniature format; no hardware exception flags or platform floating environment are modeled. 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-floating_point_arithmetic-complex-exp-scaled-split-residual","generated_at":"2026-09-29T14:39:44.730375+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline floating representation model isolates a reproducible arithmetic fault.","repair":"Apply the contract at this fault site using f=x-k*math.log(2).","root_cause":"Complex exponential subtracts a binary exponent as though natural. The faulty expression is f=x-k.","sha256":"030b7fdce425ccc584e678eedbc793e2c8e0749bf662656b7b2327d204dc7132","title":"Complex exponential subtracts a binary exponent as though natural · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.165,"exit_code":1,"observations":[{"actual":"arithmetic-error","check":"overflowing common factor","expected":["1.5796728483e+308","1.5796728483e+308"],"passed":false},{"actual":["-2.2624087675","4.943453344"],"check":"negative real projection","expected":["-1.1312043838","2.471726672"],"passed":false},{"actual":["5.2675540586","1.3450273735"],"check":"ordinary","expected":["2.6337770293","0.67251368673"],"passed":false},{"actual":["5.2675540586","-1.3450273735"],"check":"negative phase","expected":["2.6337770293","-0.67251368673"],"passed":false},{"actual":["0.39936662978","0.10197504252"],"check":"negative real","expected":["0.35644296024","0.091014830274"],"passed":false},{"actual":["5.4365636569","-0"],"check":"negative zero phase","expected":["2.7182818285","-0"],"passed":false},{"actual":["1","0"],"check":"zero","expected":["1","0"],"passed":true},{"actual":["9.8813129168e-324","0"],"check":"tiny common factor","expected":["9.8813129168e-324","0"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"overflowing common factor\", \"actual\": \"arithmetic-error\", \"expected\": [\"1.5796728483e+308\", \"1.5796728483e+308\"], \"passed\": false}, {\"check\": \"negative real projection\", \"actual\": [\"-2.2624087675\", \"4.943453344\"], \"expected\": [\"-1.1312043838\", \"2.471726672\"], \"passed\": false}, {\"check\": \"ordinary\", \"actual\": [\"5.2675540586\", \"1.3450273735\"], \"expected\": [\"2.6337770293\", \"0.67251368673\"], \"passed\": false}, {\"check\": \"negative phase\", \"actual\": [\"5.2675540586\", \"-1.3450273735\"], \"expected\": [\"2.6337770293\", \"-0.67251368673\"], \"passed\": false}, {\"check\": \"negative real\", \"actual\": [\"0.39936662978\", \"0.10197504252\"], \"expected\": [\"0.35644296024\", \"0.091014830274\"], \"passed\": false}, {\"check\": \"negative zero phase\", \"actual\": [\"5.4365636569\", \"-0\"], \"expected\": [\"2.7182818285\", \"-0\"], \"passed\": false}, {\"check\": \"zero\", \"actual\": [\"1\", \"0\"], \"expected\": [\"1\", \"0\"], \"passed\": true}, {\"check\": \"tiny common factor\", \"actual\": [\"9.8813129168e-324\", \"0\"], \"expected\": [\"9.8813129168e-324\", \"0\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.207,"exit_code":1,"observations":[{"actual":["5.4416830713e+171","5.4416830713e+171"],"check":"overflowing common factor","expected":["1.5796728483e+308","1.5796728483e+308"],"passed":false},{"actual":["-0.83229367309","1.8185948537"],"check":"negative real projection","expected":["-1.1312043838","2.471726672"],"passed":false},{"actual":["1.9378248434","0.49480791851"],"check":"ordinary","expected":["2.6337770293","0.67251368673"],"passed":false},{"actual":["1.9378248434","-0.49480791851"],"check":"negative phase","expected":["2.6337770293","-0.67251368673"],"passed":false},{"actual":["0.65844425733","0.16812842168"],"check":"negative real","expected":["0.35644296024","0.091014830274"],"passed":false},{"actual":["2","-0"],"check":"negative zero phase","expected":["2.7182818285","-0"],"passed":false},{"actual":["1","0"],"check":"zero","expected":["1","0"],"passed":true},{"actual":["9.936837979e-181","2.5372913004e-181"],"check":"tiny common factor","expected":["9.8813129168e-324","0"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"overflowing common factor\", \"actual\": [\"5.4416830713e+171\", \"5.4416830713e+171\"], \"expected\": [\"1.5796728483e+308\", \"1.5796728483e+308\"], \"passed\": false}, {\"check\": \"negative real projection\", \"actual\": [\"-0.83229367309\", \"1.8185948537\"], \"expected\": [\"-1.1312043838\", \"2.471726672\"], \"passed\": false}, {\"check\": \"ordinary\", \"actual\": [\"1.9378248434\", \"0.49480791851\"], \"expected\": [\"2.6337770293\", \"0.67251368673\"], \"passed\": false}, {\"check\": \"negative phase\", \"actual\": [\"1.9378248434\", \"-0.49480791851\"], \"expected\": [\"2.6337770293\", \"-0.67251368673\"], \"passed\": false}, {\"check\": \"negative real\", \"actual\": [\"0.65844425733\", \"0.16812842168\"], \"expected\": [\"0.35644296024\", \"0.091014830274\"], \"passed\": false}, {\"check\": \"negative zero phase\", \"actual\": [\"2\", \"-0\"], \"expected\": [\"2.7182818285\", \"-0\"], \"passed\": false}, {\"check\": \"zero\", \"actual\": [\"1\", \"0\"], \"expected\": [\"1\", \"0\"], \"passed\": true}, {\"check\": \"tiny common factor\", \"actual\": [\"9.936837979e-181\", \"2.5372913004e-181\"], \"expected\": [\"9.8813129168e-324\", \"0\"], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.526,"exit_code":0,"observations":[{"actual":["1.5796728483e+308","1.5796728483e+308"],"check":"overflowing common factor","expected":["1.5796728483e+308","1.5796728483e+308"],"passed":true},{"actual":["-1.1312043838","2.471726672"],"check":"negative real projection","expected":["-1.1312043838","2.471726672"],"passed":true},{"actual":["2.6337770293","0.67251368673"],"check":"ordinary","expected":["2.6337770293","0.67251368673"],"passed":true},{"actual":["2.6337770293","-0.67251368673"],"check":"negative phase","expected":["2.6337770293","-0.67251368673"],"passed":true},{"actual":["0.35644296024","0.091014830274"],"check":"negative real","expected":["0.35644296024","0.091014830274"],"passed":true},{"actual":["2.7182818285","-0"],"check":"negative zero phase","expected":["2.7182818285","-0"],"passed":true},{"actual":["1","0"],"check":"zero","expected":["1","0"],"passed":true},{"actual":["9.8813129168e-324","0"],"check":"tiny common factor","expected":["9.8813129168e-324","0"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"overflowing common factor\", \"actual\": [\"1.5796728483e+308\", \"1.5796728483e+308\"], \"expected\": [\"1.5796728483e+308\", \"1.5796728483e+308\"], \"passed\": true}, {\"check\": \"negative real projection\", \"actual\": [\"-1.1312043838\", \"2.471726672\"], \"expected\": [\"-1.1312043838\", \"2.471726672\"], \"passed\": true}, {\"check\": \"ordinary\", \"actual\": [\"2.6337770293\", \"0.67251368673\"], \"expected\": [\"2.6337770293\", \"0.67251368673\"], \"passed\": true}, {\"check\": \"negative phase\", \"actual\": [\"2.6337770293\", \"-0.67251368673\"], \"expected\": [\"2.6337770293\", \"-0.67251368673\"], \"passed\": true}, {\"check\": \"negative real\", \"actual\": [\"0.35644296024\", \"0.091014830274\"], \"expected\": [\"0.35644296024\", \"0.091014830274\"], \"passed\": true}, {\"check\": \"negative zero phase\", \"actual\": [\"2.7182818285\", \"-0\"], \"expected\": [\"2.7182818285\", \"-0\"], \"passed\": true}, {\"check\": \"zero\", \"actual\": [\"1\", \"0\"], \"expected\": [\"1\", \"0\"], \"passed\": true}, {\"check\": \"tiny common factor\", \"actual\": [\"9.8813129168e-324\", \"0\"], \"expected\": [\"9.8813129168e-324\", \"0\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}