vibespatial.kernels.predicates.equals_exact¶
GPU NVRTC kernel for geometry equals_exact predicate.
Tier 1 (ADR-0033): custom NVRTC kernel for per-pair coordinate comparison with tolerance. One thread per geometry pair, loops over coordinates, early exits on structure mismatch.
ADR-0002: PREDICATE class, dual fp32/fp64 via PrecisionPlan. ADR-0034: registered for NVRTC precompilation warmup.
Supported families: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon.
Attributes¶
Functions¶
|
Launch equals_exact kernel for a single geometry family. |
Module Contents¶
- vibespatial.kernels.predicates.equals_exact.logger¶
- vibespatial.kernels.predicates.equals_exact.launch_equals_exact_family(left_state: vibespatial.geometry.owned.OwnedGeometryDeviceState, right_state: vibespatial.geometry.owned.OwnedGeometryDeviceState, left_buf: vibespatial.geometry.owned.DeviceFamilyGeometryBuffer, right_buf: vibespatial.geometry.owned.DeviceFamilyGeometryBuffer, family: vibespatial.geometry.buffers.GeometryFamily, row_indices_device, tolerance: float, compute_type: str = 'double') None¶
Launch equals_exact kernel for a single geometry family.
Writes results (0/1) into
out_deviceat positions corresponding torow_indices_device. The caller is responsible for allocating the output buffer and scattering results back.Parameters¶
- left_state, right_stateOwnedGeometryDeviceState
Device-resident routing metadata (tags, validity, family_row_offsets).
- left_buf, right_bufDeviceFamilyGeometryBuffer
Per-family device buffers (x, y, geometry_offsets, part_offsets, ring_offsets).
- familyGeometryFamily
Which geometry family these rows belong to.
- row_indices_deviceDeviceArray[int32]
Global row indices for the rows in this family batch.
- tolerancefloat
Coordinate tolerance for equality.
- compute_typestr
“float” or “double” — from PrecisionPlan.
Returns¶
- DeviceArray[int32]
Per-row result (0 or 1) for each row in row_indices_device.