Skip to content

Add consistent NaN/Inf validation across public estimators #81

Description

@TheHiddenObserver

Context

Physical GPU validation for PR #79 passed all gates, but Gate C identified one remaining medium-severity finite-input-validation gap. The validated finite-input paths are correct; this issue tracks consistent rejection of NaN/Inf across the remaining public estimator entry points.

Goal

Introduce a shared backend-native finite-input validation contract for NumPy, CuPy, and Torch without transferring complete GPU arrays to CPU.

Scope

  • identify public fit, predict, transform, and inference entry points that do not consistently reject NaN/Inf;
  • validate X, y, sample_weight, cluster labels where numerical, offsets/exposure, and relevant initialization arrays;
  • preserve selected backend, dtype, and device;
  • avoid full-array GPU-to-CPU transfers or per-element Python loops;
  • standardize exception type and actionable error messages;
  • add NumPy/CuPy/Torch regression tests, including device-purity assertions;
  • document any estimators that intentionally permit NaN values.

Acceptance criteria

  • all public numerical entry points either reject non-finite values consistently or explicitly document supported missing-value behavior;
  • metamorphic NaN/Inf tests pass across all three backends;
  • device-purity audit reports no full-design transfers introduced by validation;
  • complete CPU and physical-GPU suites pass.

Relationship

Follow-up to PR #79. This is non-blocking for the finite-input paths validated there.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions