in crates/ratchet-core/src/ops/reindex/broadcast.rs [31:55]
fn check_shapes(&self) {
let src_shape = self.src.shape();
let to_shape = &self.to;
let sr = src_shape.rank();
let dr = to_shape.rank();
if sr > dr {
panic!(
"Source shape cannot have more dimensions than target shape: {} > {}",
sr, dr
);
}
let src_iter = src_shape.iter().rev();
let to_iter = to_shape.iter().rev();
for (src_dim, to_dim) in src_iter.zip(to_iter) {
if *src_dim != 1 && *src_dim != *to_dim {
panic!(
"Invalid broadcast: source dimension {} cannot be broadcast to {}",
src_dim, to_dim
);
}
}
}