Summary
strided-einsum2/src/contiguous.rs has 6 nearly identical prepare_* functions:
prepare_input_view, prepare_input_owned
prepare_output_view, prepare_output_owned
- (plus backend-generic variants)
All follow the same pattern: extract dims/strides → try_fuse_group() twice → check REQUIRES_UNIT_STRIDE → conditionally copy via HPTT.
Proposal
Consolidate into 2 core functions (prepare_input, prepare_output) with ownership kind as a parameter. Estimated ~200 lines reduction.
Risk
Low. The splitting is purely organizational; semantics remain identical.
Summary
strided-einsum2/src/contiguous.rshas 6 nearly identicalprepare_*functions:prepare_input_view,prepare_input_ownedprepare_output_view,prepare_output_ownedAll follow the same pattern: extract dims/strides →
try_fuse_group()twice → checkREQUIRES_UNIT_STRIDE→ conditionally copy via HPTT.Proposal
Consolidate into 2 core functions (
prepare_input,prepare_output) with ownership kind as a parameter. Estimated ~200 lines reduction.Risk
Low. The splitting is purely organizational; semantics remain identical.