{"abstract":"Elliptic time of flight is scaled by sqrt(z).","category":"Orbital propagation","checks":7,"contract":"Input z. For z>1e-6: C=(1-cos s)/z, S=(s-sin s)/s^3 with s=sqrt z; for z<-1e-6: C=(cosh s-1)/(-z), S=(sinh s-s)/s^3 with s=sqrt(-z); otherwise series C=1/2-z/24+z^2/720, S=1/6-z/120+z^2/5040. Return [C,S] rounded to 10.","evaluation_group":"w2-orbital_propagation-stumpff","failed_approach":"Dividing by z^2 over-corrects.","family":"w2-orbital_propagation-stumpff-elliptic-s-denominator","id":"FA-69626","implementations":{"attempt":{"sha256":"38416f3b7d0704cca4dae0d81e8af4fdd0fad45b511bba1376bde5389235854a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    z=x\n    if z>1e-6:\n        s=math.sqrt(z)\n        c=(1-math.cos(s))/z; S=(s-math.sin(s))/z**2\n    elif z<-1e-6:\n        s=math.sqrt(-z)\n        c=(math.cosh(s)-1)/(-z); S=(math.sinh(s)-s)/s**3\n    else:\n        c=1/2-z/24+z*z/720; S=1/6-z/120+z*z/5040\n    return [round(c,10),round(S,10)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658]), ('stumpff functions for universal variables 0.0', 0.0, [0.5, 0.1666666667]), ('stumpff functions for universal variables -1e-07', -1e-07, [0.5000000042, 0.1666666675]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825])], [('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658]), ('stumpff functions for universal variables 0.0', 0.0, [0.5, 0.1666666667]), ('stumpff functions for universal variables -1e-07', -1e-07, [0.5000000042, 0.1666666675]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825]), ('stumpff functions for universal variables -4.0', -4.0, [0.6905489228, 0.203357551]), ('stumpff functions for universal variables -25.0', -25.0, [2.928397941, 0.5536256846])], [('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825]), ('stumpff functions for universal variables -4.0', -4.0, [0.6905489228, 0.203357551]), ('stumpff functions for universal variables -25.0', -25.0, [2.928397941, 0.5536256846]), ('stumpff functions for universal variables 9.8696', 9.8696, [0.2026424576, 0.1013212062]), ('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables -0.05', -0.05, [0.5020868087, 0.1670838297])], [('stumpff functions for universal variables 9.8696', 9.8696, [0.2026424576, 0.1013212062]), ('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables -0.05', -0.05, [0.5020868087, 0.1670838297]), ('stumpff functions for universal variables 2e-06', 2e-06, [0.4999999167, 0.16666665]), ('stumpff functions for universal variables -3e-06', -3e-06, [0.500000125, 0.1666666917]), ('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603])], [('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables 2e-06', 2e-06, [0.4999999167, 0.16666665]), ('stumpff functions for universal variables -3e-06', -3e-06, [0.500000125, 0.1666666917]), ('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\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":"43246ec396cd8e55ca09c650aadcd049e8be4a789b0d16d11a1a2ff50d27eab1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    z=x\n    if z>1e-6:\n        s=math.sqrt(z)\n        c=(1-math.cos(s))/z; S=(s-math.sin(s))/s**2\n    elif z<-1e-6:\n        s=math.sqrt(-z)\n        c=(math.cosh(s)-1)/(-z); S=(math.sinh(s)-s)/s**3\n    else:\n        c=1/2-z/24+z*z/720; S=1/6-z/120+z*z/5040\n    return [round(c,10),round(S,10)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658]), ('stumpff functions for universal variables 0.0', 0.0, [0.5, 0.1666666667]), ('stumpff functions for universal variables -1e-07', -1e-07, [0.5000000042, 0.1666666675]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825])], [('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658]), ('stumpff functions for universal variables 0.0', 0.0, [0.5, 0.1666666667]), ('stumpff functions for universal variables -1e-07', -1e-07, [0.5000000042, 0.1666666675]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825]), ('stumpff functions for universal variables -4.0', -4.0, [0.6905489228, 0.203357551]), ('stumpff functions for universal variables -25.0', -25.0, [2.928397941, 0.5536256846])], [('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825]), ('stumpff functions for universal variables -4.0', -4.0, [0.6905489228, 0.203357551]), ('stumpff functions for universal variables -25.0', -25.0, [2.928397941, 0.5536256846]), ('stumpff functions for universal variables 9.8696', 9.8696, [0.2026424576, 0.1013212062]), ('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables -0.05', -0.05, [0.5020868087, 0.1670838297])], [('stumpff functions for universal variables 9.8696', 9.8696, [0.2026424576, 0.1013212062]), ('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables -0.05', -0.05, [0.5020868087, 0.1670838297]), ('stumpff functions for universal variables 2e-06', 2e-06, [0.4999999167, 0.16666665]), ('stumpff functions for universal variables -3e-06', -3e-06, [0.500000125, 0.1666666917]), ('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603])], [('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables 2e-06', 2e-06, [0.4999999167, 0.16666665]), ('stumpff functions for universal variables -3e-06', -3e-06, [0.500000125, 0.1666666917]), ('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\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":"88b68575813c67854d2018c05b4ba7ed7440f1adeb6d3393388fb2a0de43302f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    z=x\n    if z>1e-6:\n        s=math.sqrt(z)\n        c=(1-math.cos(s))/z; S=(s-math.sin(s))/s**3\n    elif z<-1e-6:\n        s=math.sqrt(-z)\n        c=(math.cosh(s)-1)/(-z); S=(math.sinh(s)-s)/s**3\n    else:\n        c=1/2-z/24+z*z/720; S=1/6-z/120+z*z/5040\n    return [round(c,10),round(S,10)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658]), ('stumpff functions for universal variables 0.0', 0.0, [0.5, 0.1666666667]), ('stumpff functions for universal variables -1e-07', -1e-07, [0.5000000042, 0.1666666675]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825])], [('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658]), ('stumpff functions for universal variables 0.0', 0.0, [0.5, 0.1666666667]), ('stumpff functions for universal variables -1e-07', -1e-07, [0.5000000042, 0.1666666675]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825]), ('stumpff functions for universal variables -4.0', -4.0, [0.6905489228, 0.203357551]), ('stumpff functions for universal variables -25.0', -25.0, [2.928397941, 0.5536256846])], [('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables -0.5', -0.5, [0.521183673, 0.1708832825]), ('stumpff functions for universal variables -4.0', -4.0, [0.6905489228, 0.203357551]), ('stumpff functions for universal variables -25.0', -25.0, [2.928397941, 0.5536256846]), ('stumpff functions for universal variables 9.8696', 9.8696, [0.2026424576, 0.1013212062]), ('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables -0.05', -0.05, [0.5020868087, 0.1670838297])], [('stumpff functions for universal variables 9.8696', 9.8696, [0.2026424576, 0.1013212062]), ('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables -0.05', -0.05, [0.5020868087, 0.1670838297]), ('stumpff functions for universal variables 2e-06', 2e-06, [0.4999999167, 0.16666665]), ('stumpff functions for universal variables -3e-06', -3e-06, [0.500000125, 0.1666666917]), ('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603])], [('stumpff functions for universal variables 0.05', 0.05, [0.4979201358, 0.1662504957]), ('stumpff functions for universal variables 2e-06', 2e-06, [0.4999999167, 0.16666665]), ('stumpff functions for universal variables -3e-06', -3e-06, [0.500000125, 0.1666666917]), ('stumpff functions for universal variables 4.0', 4.0, [0.3540367091, 0.1363378216]), ('stumpff functions for universal variables 0.5', 0.5, [0.4795108058, 0.1625492603]), ('stumpff functions for universal variables 30.0', 30.0, [0.0102526963, 0.0377242152]), ('stumpff functions for universal variables 1e-07', 1e-07, [0.4999999958, 0.1666666658])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\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":"A deterministic toy two-body model with stipulated constants and conventions; not flight dynamics software or a validated SGP4 implementation. 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":"w2-orbital_propagation-stumpff-elliptic-s-denominator","generated_at":"2026-09-29T14:48:13.198921+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Orbit determination and mission planning chain many small conversions; one wrong branch or unit silently moves a spacecraft by kilometres.","repair":"Divide by s^3.","root_cause":"The elliptic S denominator is s^2 instead of s^3.","sha256":"b77f0b701476ee0d14de05519453f0e5228e812082a54bf24ef78ee0e6d68757","title":"Stumpff functions for universal variables: Elliptic S divides by s^2 · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.541,"exit_code":1,"observations":[{"actual":[0.3540367091,0.0681689108],"check":"stumpff functions for universal variables 4.0","expected":[0.3540367091,0.1363378216],"passed":false},{"actual":[0.4795108058,0.2298793684],"check":"stumpff functions for universal variables 0.5","expected":[0.4795108058,0.1625492603],"passed":false},{"actual":[0.0102526963,0.0068874679],"check":"stumpff functions for universal variables 30.0","expected":[0.0102526963,0.0377242152],"passed":false},{"actual":[0.4999999958,0.1666666658],"check":"stumpff functions for universal variables 1e-07","expected":[0.4999999958,0.1666666658],"passed":true},{"actual":[0.5,0.1666666667],"check":"stumpff functions for universal variables 0.0","expected":[0.5,0.1666666667],"passed":true},{"actual":[0.5000000042,0.1666666675],"check":"stumpff functions for universal variables -1e-07","expected":[0.5000000042,0.1666666675],"passed":true},{"actual":[0.521183673,0.1708832825],"check":"stumpff functions for universal variables -0.5","expected":[0.521183673,0.1708832825],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stumpff functions for universal variables 4.0\", \"actual\": [0.3540367091, 0.0681689108], \"expected\": [0.3540367091, 0.1363378216], \"passed\": false}, {\"check\": \"stumpff functions for universal variables 0.5\", \"actual\": [0.4795108058, 0.2298793684], \"expected\": [0.4795108058, 0.1625492603], \"passed\": false}, {\"check\": \"stumpff functions for universal variables 30.0\", \"actual\": [0.0102526963, 0.0068874679], \"expected\": [0.0102526963, 0.0377242152], \"passed\": false}, {\"check\": \"stumpff functions for universal variables 1e-07\", \"actual\": [0.4999999958, 0.1666666658], \"expected\": [0.4999999958, 0.1666666658], \"passed\": true}, {\"check\": \"stumpff functions for universal variables 0.0\", \"actual\": [0.5, 0.1666666667], \"expected\": [0.5, 0.1666666667], \"passed\": true}, {\"check\": \"stumpff functions for universal variables -1e-07\", \"actual\": [0.5000000042, 0.1666666675], \"expected\": [0.5000000042, 0.1666666675], \"passed\": true}, {\"check\": \"stumpff functions for universal variables -0.5\", \"actual\": [0.521183673, 0.1708832825], \"expected\": [0.521183673, 0.1708832825], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.593,"exit_code":1,"observations":[{"actual":[0.3540367091,0.2726756433],"check":"stumpff functions for universal variables 4.0","expected":[0.3540367091,0.1363378216],"passed":false},{"actual":[0.4795108058,0.1149396842],"check":"stumpff functions for universal variables 0.5","expected":[0.4795108058,0.1625492603],"passed":false},{"actual":[0.0102526963,0.2066240362],"check":"stumpff functions for universal variables 30.0","expected":[0.0102526963,0.0377242152],"passed":false},{"actual":[0.4999999958,0.1666666658],"check":"stumpff functions for universal variables 1e-07","expected":[0.4999999958,0.1666666658],"passed":true},{"actual":[0.5,0.1666666667],"check":"stumpff functions for universal variables 0.0","expected":[0.5,0.1666666667],"passed":true},{"actual":[0.5000000042,0.1666666675],"check":"stumpff functions for universal variables -1e-07","expected":[0.5000000042,0.1666666675],"passed":true},{"actual":[0.521183673,0.1708832825],"check":"stumpff functions for universal variables -0.5","expected":[0.521183673,0.1708832825],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stumpff functions for universal variables 4.0\", \"actual\": [0.3540367091, 0.2726756433], \"expected\": [0.3540367091, 0.1363378216], \"passed\": false}, {\"check\": \"stumpff functions for universal variables 0.5\", \"actual\": [0.4795108058, 0.1149396842], \"expected\": [0.4795108058, 0.1625492603], \"passed\": false}, {\"check\": \"stumpff functions for universal variables 30.0\", \"actual\": [0.0102526963, 0.2066240362], \"expected\": [0.0102526963, 0.0377242152], \"passed\": false}, {\"check\": \"stumpff functions for universal variables 1e-07\", \"actual\": [0.4999999958, 0.1666666658], \"expected\": [0.4999999958, 0.1666666658], \"passed\": true}, {\"check\": \"stumpff functions for universal variables 0.0\", \"actual\": [0.5, 0.1666666667], \"expected\": [0.5, 0.1666666667], \"passed\": true}, {\"check\": \"stumpff functions for universal variables -1e-07\", \"actual\": [0.5000000042, 0.1666666675], \"expected\": [0.5000000042, 0.1666666675], \"passed\": true}, {\"check\": \"stumpff functions for universal variables -0.5\", \"actual\": [0.521183673, 0.1708832825], \"expected\": [0.521183673, 0.1708832825], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.766,"exit_code":0,"observations":[{"actual":[0.3540367091,0.1363378216],"check":"stumpff functions for universal variables 4.0","expected":[0.3540367091,0.1363378216],"passed":true},{"actual":[0.4795108058,0.1625492603],"check":"stumpff functions for universal variables 0.5","expected":[0.4795108058,0.1625492603],"passed":true},{"actual":[0.0102526963,0.0377242152],"check":"stumpff functions for universal variables 30.0","expected":[0.0102526963,0.0377242152],"passed":true},{"actual":[0.4999999958,0.1666666658],"check":"stumpff functions for universal variables 1e-07","expected":[0.4999999958,0.1666666658],"passed":true},{"actual":[0.5,0.1666666667],"check":"stumpff functions for universal variables 0.0","expected":[0.5,0.1666666667],"passed":true},{"actual":[0.5000000042,0.1666666675],"check":"stumpff functions for universal variables -1e-07","expected":[0.5000000042,0.1666666675],"passed":true},{"actual":[0.521183673,0.1708832825],"check":"stumpff functions for universal variables -0.5","expected":[0.521183673,0.1708832825],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stumpff functions for universal variables 4.0\", \"actual\": [0.3540367091, 0.1363378216], \"expected\": [0.3540367091, 0.1363378216], \"passed\": true}, {\"check\": \"stumpff functions for universal variables 0.5\", \"actual\": [0.4795108058, 0.1625492603], \"expected\": [0.4795108058, 0.1625492603], \"passed\": true}, {\"check\": \"stumpff functions for universal variables 30.0\", \"actual\": [0.0102526963, 0.0377242152], \"expected\": [0.0102526963, 0.0377242152], \"passed\": true}, {\"check\": \"stumpff functions for universal variables 1e-07\", \"actual\": [0.4999999958, 0.1666666658], \"expected\": [0.4999999958, 0.1666666658], \"passed\": true}, {\"check\": \"stumpff functions for universal variables 0.0\", \"actual\": [0.5, 0.1666666667], \"expected\": [0.5, 0.1666666667], \"passed\": true}, {\"check\": \"stumpff functions for universal variables -1e-07\", \"actual\": [0.5000000042, 0.1666666675], \"expected\": [0.5000000042, 0.1666666675], \"passed\": true}, {\"check\": \"stumpff functions for universal variables -0.5\", \"actual\": [0.521183673, 0.1708832825], \"expected\": [0.521183673, 0.1708832825], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}