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_family(→ None)

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_device at positions corresponding to row_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.