Skip to content

Maintainer decisions and documented limits

This reference records existing behavior; it does not resolve a new runtime contract. The central development decisions and compatibility policy remain authoritative. Settled row-vector, unit, basis, ownership and legacy-helper choices are not reopened.

Area Verified behavior / remaining question Recommended separate review
Malformed sizes/storage Constructors retain raw storage; many operations index directly, ignore extra entries or fail natively Define shape/dimension validation and numerical protocols before uniform exceptions or reflected operators
Sequence protocols Vector/Matrix/Quaternion wrappers lack indexing/iteration; storage lists supply it Decide any additive protocol separately; do not document a nonexistent interface
Clamp explicit size i_clamp replaces storage but retains receiver size even if explicit size differs Review malformed-size policy; normal use supplies matching size
Matrix2 rotation Wrapper extracts the origin-only linear block of the homogeneous pivot builder through declared-size multiplication Any future pivot overload or public builder-shape change needs a separate compatibility decision
Translation dimensions translate3 is last-row replacement, and returning/in-place wrappers have different unsupported-argument paths Specify unsupported dimensions and validation before changing exceptions or reinterpreting translate3
Nonfinite/extreme inputs Stable finite norms and Matrix3/4 scaled inverses are narrow guarantees; legacy paths retain native arithmetic Define any nonfinite policy or broader conditioning strategy separately, without arbitrary epsilon rejection
Unit Quaternion powers/log Unit-only contract is a prerequisite, not enforced normalization/tolerance; general nonunit results unsupported Decide general-domain support separately, preserving current branch/return contracts
SH unit direction reconstruct checks finite/nonzero XYZ and Z range, not full norm Do not claim norm validation; any broader direction validation needs compatibility review
High-order Legendre/SH Integer-domain recurrence and ordinary tests are established, but extreme-order stabilization is absent Define supported numerical range and overflow/error policy before guarantees
Plane field synchronization Constructors/normalization synchronize coefficients and normal; direct field edits can stale the snapshot Review property/update mechanisms separately; no invented automatic tracking
Ray end state Retained placeholder/hit state has no validity flag, and transforms leave it unchanged Define hit validity, ownership and transformation before adding intersections
Bezier mutable fields Getter exposes controls; caller edits can stale curveCount; retained fields do not all control adaptive sampling Consider explicit rebuild/property policies independently, preserving append-only interpolation
Alias removal/stability Experimental shims remain importable, not deprecated by a new deadline Choose release boundary/window and public-stability policy before removing paths
Release/support/docs distribution Historical version/classifiers are not modern support evidence; only CPython 3.12/Linux executed here Release engineering must choose versions, matrix and doc inclusion; no packaging changes here

Matrix2 origin-only rotation is established behavior, not an implicit new pivot API. Invalid inputs are not turned into universal exception guarantees.

See coverage and verification, API index and canonical roadmap for boundaries.