(*shapes:tuple[sint, ...])
| 48 | def smin(*lst) -> sint: return _suop(argfix(*lst), UOp.minimum, min) |
| 49 | def srender(x:sint) -> str: return x.render() if isinstance(x, UOp) else str(x) |
| 50 | def _align_left(*shapes:tuple[sint, ...]) -> tuple[tuple[sint, ...], ...]: |
| 51 | max_dim = max(len(s) for s in shapes) |
| 52 | return tuple((1,)*(max_dim-len(s))+s for s in shapes) |
| 53 | def _broadcast_shape(*shapes:tuple[sint, ...]) -> tuple[sint, ...]: |
| 54 | shaped_aligned_left = _align_left(*shapes) |
| 55 | ret = tuple(0 if 0 in nth_dim_sizes else smax(nth_dim_sizes) for nth_dim_sizes in zip(*shaped_aligned_left)) |
no outgoing calls
no test coverage detected
searching dependent graphs…