Tags: stillwater-sc/mtl5
Tags
feat(operation): add scaled project_onto / embed_into for quantization ( #58) * feat(operation): add scaled project_onto / embed_into for quantization Add overloads that accept a scale parameter for dynamic range mapping: dst(i) = static_cast<Target>(scale * src(i)) Essential for quantization workflows where source and target types have fundamentally different dynamic ranges (e.g., float [-1,1] -> int8 [-127,127] requires scale=127, and the inverse for dequantization). Supports dense_vector and dense2D for both project_onto and embed_into. Existing unscaled overloads unchanged (backward compatible). Resolves #57 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(operation): address CodeRabbit review on scaled projection - Constrain ScaleType to Scalar concept (was bare typename) - Add saturating_cast<Target> for integer targets to prevent signed overflow UB -- clamps to [numeric_limits::min, max] before cast - Floating-point targets pass through without clamping - Add saturation test: values outside int8 range clamp to -128/127 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(operation): fix NaN handling and remove unused include - Handle NaN in saturating_cast: NaN -> 0 for integer targets (avoids UB from float-to-int cast of NaN) - Separate integer-from-float and integer-from-integer paths - Remove unused <algorithm> include, add <cmath> for std::isnan Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix(ci): remove duplicate CI from release workflow (#15) The tag push already triggers ci.yml independently (via on.push.tags). The release workflow was calling ci.yml as a reusable workflow, running the full 8-platform matrix a second time. Now release.yml only creates the GitHub Release (version extraction, changelog generation, gh-release). CI runs once via its own trigger. Also removes the now-unnecessary workflow_call trigger from ci.yml. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>