torch.TransposeDimsShapeChecked
export type TransposeDimsShapeChecked<
S extends Shape,
D0 extends number,
D1 extends number,
> = number extends S['length']
? DynamicShape
: number extends D0
? DynamicShape
: number extends D1
? DynamicShape
: LessThan<D0, S['length']> extends true
? LessThan<D1, S['length']> extends true
? TransposeDimsShape<S, D0, D1> // Both valid, compute result
: transpose_dims_error_out_of_range<D1, S['length']>
: transpose_dims_error_out_of_range<D0, S['length']>;Sextends ShapeD0extends numberD1extends numberCompute output shape of transpose(dim0, dim1) with bounds checking. Validates both dimensions are within tensor rank.
Examples
type R1 = TransposeDimsShapeChecked<readonly [2, 3, 4], 0, 2>; // readonly [4, 3, 2] ✓
type R2 = TransposeDimsShapeChecked<readonly [2, 3], 0, 5>; // transpose_dims_error_out_of_range<5, 2>