Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

Haversine Sunrise-Azimuth Bearing (great circle course) mechanism

The inspectable method record for Haversine Sunrise-Azimuth Bearing (great circle course), kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The specification cannot honestly advertise both initial and final bearing: only initial bearing is defined by the supplied formula. Add a separate final-bearing formula, specify degree/radian input and output units, define normalization and spherical-Earth assumptions, and remove or rename the unsupported sunrise-azimuth claim.

  • The supplied formula is the standard initial great-circle bearing formula only; it does not compute the claimed final bearing.
  • The instrument name claims sunrise azimuth, but no sunrise or solar-position formula is supplied.
  • The formula is spherical, not an ellipsoidal geodesic bearing formula; the spherical-Earth approximation must be disclosed.
  • The formula is not a haversine formula. Haversine is normally used for great-circle distance, whereas this formula computes an initial bearing.
  • The output angle must be normalized explicitly, conventionally to [0,360) degrees or [0,2π) radians; the formula alone can return negative angles.

Units and conventions

  • lat1, lon1, lat2, and lon2 must be angular coordinates, with all trigonometric arguments and Δλ converted to radians before evaluation.
  • Reported bearings are assumed clockwise from true north and normalized to [0,360) degrees.
  • The supplied formula computes initial bearing as atan2(y,x).
  • Final bearing would require an additional calculation, such as final=(initial bearing from point 2 to point 1 + 180) mod 360.
  • A spherical Earth is assumed; no ellipsoid or datum is specified.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "lat1": 0,
    "lon1": 0,
    "lat2": 0,
    "lon2": 90,
    "coordinate_units": "degrees"
  },
  "expected_outputs": {
    "initial_bearing_deg": 90,
    "final_bearing_deg": 90
  },
  "working": "Δλ=90°=π/2; φ1=φ2=0°=0 rad. y=sin(π/2)·cos(0)=1·1=1. x=cos(0)·sin(0)−sin(0)·cos(0)·cos(π/2)=0−0=0. θ=atan2(1,0)=π/2=90°. For the final bearing, reverse the route: bearing(0°,90°→0°,0°)=270°, then (270°+180°) mod 360°=90°."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

Coincident points produce atan2(0,0), so both bearings are undefined and must be rejected. The specification also leaves longitude sign, angular units, bearing normalization, and the final-bearing derivation implicit, creating convention-dependent outputs if those conventions are not fixed.

Other records

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json
  • evidence-tranche5/tranche5-results.json
  • BOUNDARY_HAZARD_CATALOG.json