torch.TransposeShape
export type TransposeShape<S extends Shape> = number extends S['length']
? DynamicShape // Dynamic shape remains dynamic
: S extends readonly []
? readonly [] // 0D scalar - return unchanged
: S extends readonly [infer N extends number]
? readonly [N] // 1D vector - return unchanged
: S extends readonly [infer M extends number, infer N extends number]
? readonly [N, M] // 2D matrix - transpose
: transpose_error_requires_2d_tensor<S>;Sextends ShapeCompute output shape of 2D transpose (.t()). Matches PyTorch behavior:
- 0D/1D: returns tensor unchanged
- 2D: swaps dimensions
- 3D+: error (transpose_error_requires_2d_tensor)