NIF entry points, loaded via RustlerPrecompiled.
Do not call this module directly — use ExSrpPhat.localize/3, which validates
inputs and packs PCM + geometry into binaries before crossing the NIF boundary.
Precompiled binaries are downloaded from GitHub release assets; set
EX_SRP_PHAT_BUILD=1 to force a source build (requires a Rust toolchain). The
:dev and :test environments of this library always build from source.
Summary
Functions
WGS-84 ECEF meters → geodetic {lat_deg, lon_deg, alt_m}.
WGS-84 geodetic (deg, deg, m HAE) → ECEF {x, y, z} meters.
Run a single SRP-PHAT solve.
Functions
WGS-84 ECEF meters → geodetic {lat_deg, lon_deg, alt_m}.
WGS-84 geodetic (deg, deg, m HAE) → ECEF {x, y, z} meters.
Run a single SRP-PHAT solve.
All three arguments are little-endian packed binaries (see ExSrpPhat.Codec):
frames_bin— header + row-majorf64PCM, one row per emplacementgeometry_bin— sample rate +f64ECEF triples, aligned toframes_binopts_bin— packed grid bounds / resolution /max_sources
Returns {:ok, results_bin} or {:error, atom}. The NIF is overridden at load
time; this stub only runs if the native library failed to load.