Summary
Implement and validate `fensor` math-operation traits so non-transactional tensor math reaches v1 parity targets (subject to documented sparse/layout support boundaries and structured unsupported errors).
Scope
- Implement/complete:
- `TensorUnary` (`exp`, `ln`, `round`)
- `TensorMath` (`add`, `sub`, `mul`, `div`, `log`, `pow`, `rem`)
- `TensorMathScalar` (`*_scalar`)
- `TensorReduce` (`max`, `min`, `product`, `sum`)
- `TensorReduceAll` (`max_all`, `min_all`, `product_all`, `sum_all`)
- `TensorReduceBoolean` (`all`, `any`)
- `TensorMatMul` (using `matmul_output_shape` contract)
- Enforce shape/dimension validation with clear structured errors
- Preserve explicit unsupported boundaries where required (especially sparse edge paths)
Explicit Non-Goals
- Transaction lifecycle/LSM logic in `tc-collection`
- Introducing broad new platform abstractions from `ha-ndarray` beyond what is needed for `fensor`
Acceptance Criteria
- Math op matrix passes for supported dense/sparse cases:
- unary, binary, scalar, reductions, matmul
- All shape/dimension validation failures return structured, user-friendly errors
- `matmul` validation honors `matmul_output_shape` contract
- Reduction semantics verified:
- axis reductions with `keepdims`
- full reductions (`*_all`)
- boolean reductions (`all/any`)
- Chained transform + math correctness is validated
- Unsupported combinations return structured `Error::Unsupported(...)` (or more specific typed errors when available)
- No `todo!`, `unimplemented!`, or panic-based placeholders in production math paths
Test Plan
- Add/extend dedicated math tests in `deps/fensor/tests/`:
- unary/binary/scalar correctness
- reduce/reduce_all/reduce_boolean correctness
- matmul shape and numeric correctness
- dense/sparse parity where supported
- transform+math composition cases
- Include negative tests for:
- invalid shape combinations
- incompatible matmul dimensions
- unsupported sparse execution paths
Summary
Implement and validate `fensor` math-operation traits so non-transactional tensor math reaches v1 parity targets (subject to documented sparse/layout support boundaries and structured unsupported errors).
Scope
Explicit Non-Goals
Acceptance Criteria
Test Plan