"""Exploratory overrides only; full native traces and results remain comparable."""
import numpy as np

def install(variant):
    from calibrex.graph import _rgbd_batches as batches
    from calibrex.graph import _rgbd_field_columns as fields
    from calibrex.graph import joint_optimization as graph
    from calibrex.graph._point_plane_batches import _OwnedPointFactors
    changes = {}
    if variant in ("chunks", "combined"):
        fields._PROBE_ROWS = 65536
        fields._PRODUCT_ELEMENTS = 524288
        changes.update(probe_rows=65536, product_elements=524288)
    if variant in ("ordered", "combined"):
        def sums(weights, offsets):
            return fields._weighted_probes(weights, np.asarray([offsets], dtype=np.float64))[0]
        batches._weighted_sums = sums
        changes["ordered_single_probe_sums"] = True
    if variant == "combined":
        original = graph._factor_family_diagnostics
        class Factor:
            def __init__(self, factor, dimension):
                self.factor = factor
                self.dimension = dimension
            def __getattr__(self, name):
                return getattr(self.factor, name)
            def residuals(self, values):
                return (0.0,) * self.dimension
        def diagnostics(factors, values, residual, jacobian, options):
            plan = batches._prepare_rgbd_plan(factors, values) if type(factors) is _OwnedPointFactors else None
            if plan is None:
                return original(factors, values, residual, jacobian, options)
            scalar = {row: dimension for row, dimension, _ in plan.scalars}
            row, proxies = 0, []
            for factor in factors:
                dimension = scalar.get(row, 1)
                proxies.append(Factor(factor, dimension))
                row += dimension
            assert row == plan.size
            return original(proxies, values, residual, jacobian, options)
        graph._factor_family_diagnostics = diagnostics
        changes["native_prepared_diagnostic_dimensions"] = True
    return changes
