{
  "generated_utc": "2026-09-22T06:16:49.774047+00:00",
  "reproduction": "python scripts/diagnose_phenomt_precession.py --backend torch jax --case baseline single_spin equal_mass high_mass_ratio --sample-rate 2048 --backward-steps 2048 --output receipt.json",
  "versions": {
    "python": "3.13.7",
    "numpy": "2.5.3",
    "lalsimulation": "6.2.1",
    "torch": "2.14.0",
    "jax": "0.11.2"
  },
  "dtype": "float64",
  "device": "cpu",
  "precession_version": 300,
  "final_spin_mod": 4,
  "parameters": {
    "baseline": {
      "mass1": 40.0,
      "mass2": 15.0,
      "spin1": [
        0.2,
        0.1,
        0.3
      ],
      "spin2": [
        0.0,
        0.1,
        -0.2
      ],
      "distance_mpc": 100.0,
      "inclination": 0.8,
      "phic": 0.3,
      "f_lower_hz": 20.0,
      "f_ref_hz": 20.0
    },
    "single_spin": {
      "mass1": 35.0,
      "mass2": 20.0,
      "spin1": [
        0.3,
        0.0,
        0.4
      ],
      "spin2": [
        0.0,
        0.0,
        0.0
      ],
      "distance_mpc": 100.0,
      "inclination": 1.1,
      "phic": 0.2,
      "f_lower_hz": 20.0,
      "f_ref_hz": 30.0
    },
    "equal_mass": {
      "mass1": 30.0,
      "mass2": 30.0,
      "spin1": [
        0.2,
        -0.1,
        0.4
      ],
      "spin2": [
        -0.12,
        0.08,
        -0.3
      ],
      "distance_mpc": 100.0,
      "inclination": 0.8,
      "phic": 0.3,
      "f_lower_hz": 20.0,
      "f_ref_hz": 20.0
    },
    "high_mass_ratio": {
      "mass1": 60.0,
      "mass2": 6.0,
      "spin1": [
        0.2,
        0.1,
        0.8
      ],
      "spin2": [
        0.1,
        0.0,
        0.1
      ],
      "distance_mpc": 100.0,
      "inclination": 1.2,
      "phic": 0.1,
      "f_lower_hz": 20.0,
      "f_ref_hz": 20.0
    }
  },
  "conventions": {
    "coprec22": "Native h22 uses the native evolved final spin. One phase rotation fixes the first sample to the reference phase; no time shift, amplitude scaling, or fit.",
    "polarizations": "IMRPhenomTP hplus-i*hcross; no alignment or scaling.",
    "relative_l2": "norm(actual-reference)/norm(reference)",
    "mismatch": "1-abs(vdot(actual,reference))/(norm(actual)*norm(reference)); unweighted, constant-phase maximization only, no time shift",
    "beta": "Native minus reference opening angle at the listed sample times.",
    "resolution": "Forward step count is half the backward count; both cover the full intrinsic interval. Consecutive native waveforms use the same output grid."
  },
  "results": [
    {
      "case": "baseline",
      "backend": "torch",
      "sample_rate_hz": 2048,
      "backward_steps": 2048,
      "forward_steps": 1024,
      "native_final_spin": 0.6899451892684745,
      "samples": 2935,
      "epoch_seconds": -1.297896538,
      "mode_phase_anchor_radians": 4.270168574294076e-08,
      "coprec22": {
        "all": {
          "relative_l2": 0.00013758777776704892,
          "mismatch": 9.362300934512291e-09
        },
        "inspiral": {
          "relative_l2": 4.297924371606228e-06,
          "mismatch": 8.313905119905485e-12
        },
        "ringdown": {
          "relative_l2": 0.00088800214726383,
          "mismatch": 2.466091950648064e-07
        }
      },
      "coprec22_amplitude_relative_l2": 1.8100011968328492e-05,
      "beta_sample_times_seconds": [
        -1.297896538,
        -1.0000449755,
        -0.10014263175000004,
        -4.497550000004402e-05
      ],
      "beta_difference_radians": [
        -9.049217156603673e-05,
        -0.0005228009945562467,
        0.0004469687906811515,
        -0.012807367518354734
      ],
      "polarizations": {
        "relative_l2": 0.02337772092825259,
        "mismatch": 0.00026742164939985713
      },
      "invariant_absolute_errors": {
        "lhat": 2.220446049250313e-16,
        "tangent": 2.220446049250313e-16,
        "spin1": 5.551115123125783e-17,
        "spin2": 6.938893903907228e-18,
        "lhat_dot_tangent": 8.326672684688674e-17
      }
    },
    {
      "case": "baseline",
      "backend": "jax",
      "sample_rate_hz": 2048,
      "backward_steps": 2048,
      "forward_steps": 1024,
      "native_final_spin": 0.6899451892684747,
      "samples": 2935,
      "epoch_seconds": -1.297896538,
      "mode_phase_anchor_radians": 4.2700776248238974e-08,
      "coprec22": {
        "all": {
          "relative_l2": 0.0001375877777642203,
          "mismatch": 9.362301600646106e-09
        },
        "inspiral": {
          "relative_l2": 4.297924300864861e-06,
          "mismatch": 8.314460231417797e-12
        },
        "ringdown": {
          "relative_l2": 0.0008880021472594899,
          "mismatch": 2.466091951758287e-07
        }
      },
      "coprec22_amplitude_relative_l2": 1.8100011968840903e-05,
      "beta_sample_times_seconds": [
        -1.297896538,
        -1.0000449755,
        -0.10014263175000004,
        -4.497550000004402e-05
      ],
      "beta_difference_radians": [
        -9.049217156598122e-05,
        -0.0005228009945562051,
        0.00044696879068148454,
        -0.012807367518355928
      ],
      "polarizations": {
        "relative_l2": 0.023377720928341273,
        "mismatch": 0.0002674216493996351
      },
      "invariant_absolute_errors": {
        "lhat": 2.220446049250313e-16,
        "tangent": 2.220446049250313e-16,
        "spin1": 5.551115123125783e-17,
        "spin2": 6.938893903907228e-18,
        "lhat_dot_tangent": 5.551115123125783e-17
      }
    },
    {
      "case": "single_spin",
      "backend": "torch",
      "sample_rate_hz": 2048,
      "backward_steps": 2048,
      "forward_steps": 1024,
      "native_final_spin": 0.7644909237911822,
      "samples": 2646,
      "epoch_seconds": -1.156740842,
      "mode_phase_anchor_radians": -2.3019134687357426e-06,
      "coprec22": {
        "all": {
          "relative_l2": 5.150959062888982e-06,
          "mismatch": 1.156008622160698e-11
        },
        "inspiral": {
          "relative_l2": 4.713266567013321e-06,
          "mismatch": 9.950040791295578e-12
        },
        "ringdown": {
          "relative_l2": 1.3405562603640093e-05,
          "mismatch": 8.881784197001252e-16
        }
      },
      "coprec22_amplitude_relative_l2": 1.4067243829825257e-08,
      "beta_sample_times_seconds": [
        -1.156740842,
        -1.00000256075,
        -0.10010021700000005,
        -2.560750000046852e-06
      ],
      "beta_difference_radians": [
        0.00033013861109219833,
        0.0006164314875211907,
        -0.0004898331550239887,
        -0.00019205085732540428
      ],
      "polarizations": {
        "relative_l2": 0.026257844760547516,
        "mismatch": 0.00034097442295810687
      },
      "invariant_absolute_errors": {
        "lhat": 2.220446049250313e-16,
        "tangent": 2.220446049250313e-16,
        "spin1": 5.551115123125783e-17,
        "spin2": 0.0,
        "lhat_dot_tangent": 8.326672684688674e-17
      }
    },
    {
      "case": "single_spin",
      "backend": "jax",
      "sample_rate_hz": 2048,
      "backward_steps": 2048,
      "forward_steps": 1024,
      "native_final_spin": 0.7644909237911823,
      "samples": 2646,
      "epoch_seconds": -1.156740842,
      "mode_phase_anchor_radians": -2.301913468664325e-06,
      "coprec22": {
        "all": {
          "relative_l2": 5.1509594451360806e-06,
          "mismatch": 1.1559864177002055e-11
        },
        "inspiral": {
          "relative_l2": 4.713266921863987e-06,
          "mismatch": 9.949929768993115e-12
        },
        "ringdown": {
          "relative_l2": 1.3405563535032584e-05,
          "mismatch": 8.881784197001252e-16
        }
      },
      "coprec22_amplitude_relative_l2": 1.4067245255076342e-08,
      "beta_sample_times_seconds": [
        -1.156740842,
        -1.00000256075,
        -0.10010021700000005,
        -2.560750000046852e-06
      ],
      "beta_difference_radians": [
        0.00033013861109218445,
        0.000616431487521163,
        -0.0004898331550245577,
        -0.00019205085732584837
      ],
      "polarizations": {
        "relative_l2": 0.026257844760714678,
        "mismatch": 0.0003409744229622147
      },
      "invariant_absolute_errors": {
        "lhat": 2.220446049250313e-16,
        "tangent": 2.220446049250313e-16,
        "spin1": 5.551115123125783e-17,
        "spin2": 0.0,
        "lhat_dot_tangent": 5.551115123125783e-17
      }
    },
    {
      "case": "equal_mass",
      "backend": "torch",
      "sample_rate_hz": 2048,
      "backward_steps": 2048,
      "forward_steps": 1024,
      "native_final_spin": 0.701420385126783,
      "samples": 2077,
      "epoch_seconds": -0.866684684,
      "mode_phase_anchor_radians": -1.963098839041777e-08,
      "coprec22": {
        "all": {
          "relative_l2": 0.0002100142926922604,
          "mismatch": 2.16100641825534e-08
        },
        "inspiral": {
          "relative_l2": 1.6543739684437972e-05,
          "mismatch": 1.19766085937556e-10
        },
        "ringdown": {
          "relative_l2": 0.0010794971478516658,
          "mismatch": 3.7606359470920836e-07
        }
      },
      "coprec22_amplitude_relative_l2": 2.816945678257484e-05,
      "beta_sample_times_seconds": [
        -0.866684684,
        -0.866684684,
        -0.10008312149999998,
        1.4534750000017027e-05
      ],
      "beta_difference_radians": [
        -2.420511501387973e-05,
        -2.420511501387973e-05,
        -0.010317053176814767,
        -0.02369551156337189
      ],
      "polarizations": {
        "relative_l2": 0.017433875147234733,
        "mismatch": 0.00014767982499608312
      },
      "invariant_absolute_errors": {
        "lhat": 2.220446049250313e-16,
        "tangent": 2.220446049250313e-16,
        "spin1": 2.7755575615628914e-17,
        "spin2": 2.7755575615628914e-17,
        "lhat_dot_tangent": 1.3877787807814457e-17
      }
    },
    {
      "case": "equal_mass",
      "backend": "jax",
      "sample_rate_hz": 2048,
      "backward_steps": 2048,
      "forward_steps": 1024,
      "native_final_spin": 0.7014203851267827,
      "samples": 2077,
      "epoch_seconds": -0.866684684,
      "mode_phase_anchor_radians": -1.963144313776866e-08,
      "coprec22": {
        "all": {
          "relative_l2": 0.00021001429255349788,
          "mismatch": 2.1610064293575704e-08
        },
        "inspiral": {
          "relative_l2": 1.6543739346884934e-05,
          "mismatch": 1.19766085937556e-10
        },
        "ringdown": {
          "relative_l2": 0.0010794971472664519,
          "mismatch": 3.7606359515329757e-07
        }
      },
      "coprec22_amplitude_relative_l2": 2.8169456782311117e-05,
      "beta_sample_times_seconds": [
        -0.866684684,
        -0.866684684,
        -0.10008312149999998,
        1.4534750000017027e-05
      ],
      "beta_difference_radians": [
        -2.420511501387626e-05,
        -2.420511501387626e-05,
        -0.010317053176814167,
        -0.02369551156337159
      ],
      "polarizations": {
        "relative_l2": 0.017433875147182098,
        "mismatch": 0.00014767982499586108
      },
      "invariant_absolute_errors": {
        "lhat": 2.220446049250313e-16,
        "tangent": 2.220446049250313e-16,
        "spin1": 4.163336342344337e-17,
        "spin2": 2.7755575615628914e-17,
        "lhat_dot_tangent": 1.3877787807814457e-17
      }
    },
    {
      "case": "high_mass_ratio",
      "backend": "torch",
      "sample_rate_hz": 2048,
      "backward_steps": 2048,
      "forward_steps": 1024,
      "native_final_spin": 0.8734338931529954,
      "samples": 5718,
      "epoch_seconds": -2.629817046,
      "mode_phase_anchor_radians": -0.00014043658848095222,
      "coprec22": {
        "all": {
          "relative_l2": 0.0003138108659188594,
          "mismatch": 4.917166540607809e-08
        },
        "inspiral": {
          "relative_l2": 4.160899358389319e-05,
          "mismatch": 7.664511247895689e-10
        },
        "ringdown": {
          "relative_l2": 0.0022380004025706808,
          "mismatch": 1.682622596699268e-06
        }
      },
      "coprec22_amplitude_relative_l2": 5.91732825268554e-05,
      "beta_sample_times_seconds": [
        -2.629817046,
        -0.9999342334999999,
        -0.10003188974999988,
        6.576650000011952e-05
      ],
      "beta_difference_radians": [
        -3.229941869895003e-05,
        -0.003092617950428672,
        0.009681437243448276,
        -0.010515225930296496
      ],
      "polarizations": {
        "relative_l2": 0.3084223695220892,
        "mismatch": 0.04753417277866945
      },
      "invariant_absolute_errors": {
        "lhat": 2.220446049250313e-16,
        "tangent": 2.220446049250313e-16,
        "spin1": 3.3306690738754696e-16,
        "spin2": 2.168404344971009e-19,
        "lhat_dot_tangent": 1.1102230246251565e-16
      }
    },
    {
      "case": "high_mass_ratio",
      "backend": "jax",
      "sample_rate_hz": 2048,
      "backward_steps": 2048,
      "forward_steps": 1024,
      "native_final_spin": 0.8734338931529951,
      "samples": 5718,
      "epoch_seconds": -2.629817046,
      "mode_phase_anchor_radians": -0.0001404365884809522,
      "coprec22": {
        "all": {
          "relative_l2": 0.0003138108660427965,
          "mismatch": 4.9171665184033486e-08
        },
        "inspiral": {
          "relative_l2": 4.160899225605203e-05,
          "mismatch": 7.66450902744964e-10
        },
        "ringdown": {
          "relative_l2": 0.002238000404723027,
          "mismatch": 1.682622596699268e-06
        }
      },
      "coprec22_amplitude_relative_l2": 5.917328251982957e-05,
      "beta_sample_times_seconds": [
        -2.629817046,
        -0.9999342334999999,
        -0.10003188974999988,
        6.576650000011952e-05
      ],
      "beta_difference_radians": [
        -3.229941869895003e-05,
        -0.0030926179504287277,
        0.009681437243448054,
        -0.010515225930296412
      ],
      "polarizations": {
        "relative_l2": 0.3084223695221559,
        "mismatch": 0.047534172778673556
      },
      "invariant_absolute_errors": {
        "lhat": 2.220446049250313e-16,
        "tangent": 2.220446049250313e-16,
        "spin1": 2.220446049250313e-16,
        "spin2": 4.336808689942018e-19,
        "lhat_dot_tangent": 1.1102230246251565e-16
      }
    }
  ]
}
