﻿`` S := Tensor.Fill(1);
`` T_0 := Range(0)->Tensor.From();
`` T_3 := Range(3)->Tensor.From();
`` T_2_3 := Range(6)->Tensor.From(2, 3);
`` T_2_3_2 := Range(12)->Tensor.From(2, 3, 2);

`` N1 := -1;
`` P0 := 0;
`` P1 := 1;
`` P2 := 2;
`` P3 := 3;
`` P4 := 4;
`` P5 := 5;
`` P6 := 6;
`` P7 := 7;
`` P8 := 8;
`` P9 := 9;

S->ExpandDims(-1)
S->ExpandDims( 0)
S->ExpandDims( 1)
S->ExpandDims(N1)
S->ExpandDims(P0)
S->ExpandDims(P1)

T_0->ExpandDims(-1)
T_0->ExpandDims( 0)
T_0->ExpandDims( 1)
T_0->ExpandDims( 2)
T_0->ExpandDims(N1)
T_0->ExpandDims(P0)
T_0->ExpandDims(P1)
T_0->ExpandDims(P2)

T_3->ExpandDims(-1)
T_3->ExpandDims( 0)
T_3->ExpandDims( 1)
T_3->ExpandDims( 2)
T_3->ExpandDims(N1)
T_3->ExpandDims(P0)
T_3->ExpandDims(P1)
T_3->ExpandDims(P2)

T_2_3->ExpandDims(-1)
T_2_3->ExpandDims( 0)
T_2_3->ExpandDims( 1)
T_2_3->ExpandDims( 2)
T_2_3->ExpandDims( 3)
T_2_3->ExpandDims(N1)
T_2_3->ExpandDims(P0)
T_2_3->ExpandDims(P1)
T_2_3->ExpandDims(P2)
T_2_3->ExpandDims(P3)

T_2_3_2->ExpandDims(-1)
T_2_3_2->ExpandDims( 0)
T_2_3_2->ExpandDims( 1)
T_2_3_2->ExpandDims( 2)
T_2_3_2->ExpandDims( 3)
T_2_3_2->ExpandDims( 4)
T_2_3_2->ExpandDims(N1)
T_2_3_2->ExpandDims(P0)
T_2_3_2->ExpandDims(P1)
T_2_3_2->ExpandDims(P2)
T_2_3_2->ExpandDims(P3)
T_2_3_2->ExpandDims(P4)

S->ExpandDims(-1,-1)
S->ExpandDims(-1, 0)
S->ExpandDims(-1, 1)
S->ExpandDims(-1, 2)
S->ExpandDims( 0,-1)
S->ExpandDims( 0, 0)
S->ExpandDims( 0, 1)
S->ExpandDims( 0, 2)
S->ExpandDims( 1,-1)
S->ExpandDims( 1, 0)
S->ExpandDims( 1, 1)
S->ExpandDims( 1, 2)
S->ExpandDims( 2,-1)
S->ExpandDims( 2, 0)
S->ExpandDims( 2, 1)
S->ExpandDims( 2, 2)
S->ExpandDims(N1,N1)
S->ExpandDims(N1,P0)
S->ExpandDims(N1,P1)
S->ExpandDims(N1,P2)
S->ExpandDims(P0,N1)
S->ExpandDims(P0,P0)
S->ExpandDims(P0,P1)
S->ExpandDims(P0,P2)
S->ExpandDims(P1,N1)
S->ExpandDims(P1,P0)
S->ExpandDims(P1,P1)
S->ExpandDims(P1,P2)
S->ExpandDims(P2,N1)
S->ExpandDims(P2,P0)
S->ExpandDims(P2,P1)
S->ExpandDims(P2,P2)

T_3->ExpandDims(-1,-1)
T_3->ExpandDims(-1, 0)
T_3->ExpandDims(-1, 1)
T_3->ExpandDims(-1, 2)
T_3->ExpandDims(-1, 3)
T_3->ExpandDims( 0,-1)
T_3->ExpandDims( 0, 0)
T_3->ExpandDims( 0, 1)
T_3->ExpandDims( 0, 2)
T_3->ExpandDims( 0, 3)
T_3->ExpandDims( 1,-1)
T_3->ExpandDims( 1, 0)
T_3->ExpandDims( 1, 1)
T_3->ExpandDims( 1, 2)
T_3->ExpandDims( 1, 3)
T_3->ExpandDims( 2,-1)
T_3->ExpandDims( 2, 0)
T_3->ExpandDims( 2, 1)
T_3->ExpandDims( 2, 2)
T_3->ExpandDims( 2, 3)
T_3->ExpandDims( 3,-1)
T_3->ExpandDims( 3, 0)
T_3->ExpandDims( 3, 1)
T_3->ExpandDims( 3, 2)
T_3->ExpandDims( 3, 3)
T_3->ExpandDims(N1,N1)
T_3->ExpandDims(N1,P0)
T_3->ExpandDims(N1,P1)
T_3->ExpandDims(N1,P2)
T_3->ExpandDims(N1,P3)
T_3->ExpandDims(P0,N1)
T_3->ExpandDims(P0,P0)
T_3->ExpandDims(P0,P1)
T_3->ExpandDims(P0,P2)
T_3->ExpandDims(P0,P3)
T_3->ExpandDims(P1,N1)
T_3->ExpandDims(P1,P0)
T_3->ExpandDims(P1,P1)
T_3->ExpandDims(P1,P2)
T_3->ExpandDims(P1,P3)
T_3->ExpandDims(P2,N1)
T_3->ExpandDims(P2,P0)
T_3->ExpandDims(P2,P1)
T_3->ExpandDims(P2,P2)
T_3->ExpandDims(P2,P3)
T_3->ExpandDims(P3,N1)
T_3->ExpandDims(P3,P0)
T_3->ExpandDims(P3,P1)
T_3->ExpandDims(P3,P2)
T_3->ExpandDims(P3,P3)

T_2_3->ExpandDims(-1,-1)
T_2_3->ExpandDims(-1, 0)
T_2_3->ExpandDims(-1, 1)
T_2_3->ExpandDims(-1, 2)
T_2_3->ExpandDims(-1, 3)
T_2_3->ExpandDims(-1, 4)
T_2_3->ExpandDims( 0,-1)
T_2_3->ExpandDims( 0, 0)
T_2_3->ExpandDims( 0, 1)
T_2_3->ExpandDims( 0, 2)
T_2_3->ExpandDims( 0, 3)
T_2_3->ExpandDims( 0, 4)
T_2_3->ExpandDims( 1,-1)
T_2_3->ExpandDims( 1, 0)
T_2_3->ExpandDims( 1, 1)
T_2_3->ExpandDims( 1, 2)
T_2_3->ExpandDims( 1, 3)
T_2_3->ExpandDims( 1, 4)
T_2_3->ExpandDims( 2,-1)
T_2_3->ExpandDims( 2, 0)
T_2_3->ExpandDims( 2, 1)
T_2_3->ExpandDims( 2, 2)
T_2_3->ExpandDims( 2, 3)
T_2_3->ExpandDims( 2, 4)
T_2_3->ExpandDims( 3,-1)
T_2_3->ExpandDims( 3, 0)
T_2_3->ExpandDims( 3, 1)
T_2_3->ExpandDims( 3, 2)
T_2_3->ExpandDims( 3, 3)
T_2_3->ExpandDims( 3, 4)
T_2_3->ExpandDims( 4,-1)
T_2_3->ExpandDims( 4, 0)
T_2_3->ExpandDims( 4, 1)
T_2_3->ExpandDims( 4, 2)
T_2_3->ExpandDims( 4, 3)
T_2_3->ExpandDims( 4, 4)
T_2_3->ExpandDims(N1,N1)
T_2_3->ExpandDims(N1,P0)
T_2_3->ExpandDims(N1,P1)
T_2_3->ExpandDims(N1,P2)
T_2_3->ExpandDims(N1,P3)
T_2_3->ExpandDims(N1,P4)
T_2_3->ExpandDims(P0,N1)
T_2_3->ExpandDims(P0,P0)
T_2_3->ExpandDims(P0,P1)
T_2_3->ExpandDims(P0,P2)
T_2_3->ExpandDims(P0,P3)
T_2_3->ExpandDims(P0,P4)
T_2_3->ExpandDims(P1,N1)
T_2_3->ExpandDims(P1,P0)
T_2_3->ExpandDims(P1,P1)
T_2_3->ExpandDims(P1,P2)
T_2_3->ExpandDims(P1,P3)
T_2_3->ExpandDims(P1,P4)
T_2_3->ExpandDims(P2,N1)
T_2_3->ExpandDims(P2,P0)
T_2_3->ExpandDims(P2,P1)
T_2_3->ExpandDims(P2,P2)
T_2_3->ExpandDims(P2,P3)
T_2_3->ExpandDims(P2,P4)
T_2_3->ExpandDims(P3,N1)
T_2_3->ExpandDims(P3,P0)
T_2_3->ExpandDims(P3,P1)
T_2_3->ExpandDims(P3,P2)
T_2_3->ExpandDims(P3,P3)
T_2_3->ExpandDims(P3,P4)
T_2_3->ExpandDims(P4,N1)
T_2_3->ExpandDims(P4,P0)
T_2_3->ExpandDims(P4,P1)
T_2_3->ExpandDims(P4,P2)
T_2_3->ExpandDims(P4,P3)
T_2_3->ExpandDims(P4,P4)

// All sortings.
S->ExpandDims(P0,P1,P2)
S->ExpandDims(P0,P2,P1)
S->ExpandDims(P1,P0,P2)
S->ExpandDims(P1,P2,P0)
S->ExpandDims(P2,P0,P1)
S->ExpandDims(P2,P1,P0)

T_3->ExpandDims(P0,P1,P2)
T_3->ExpandDims(P0,P2,P1)
T_3->ExpandDims(P1,P0,P2)
T_3->ExpandDims(P1,P2,P0)
T_3->ExpandDims(P2,P0,P1)
T_3->ExpandDims(P2,P1,P0)

// All positions (sorted).
T_3->ExpandDims(P0,P1,P3)
T_3->ExpandDims(P0,P2,P3)
T_3->ExpandDims(P1,P2,P3)

// All positions (sorted).
T_2_3->ExpandDims(P0,P1,P2)
T_2_3->ExpandDims(P0,P1,P3)
T_2_3->ExpandDims(P0,P1,P4)
T_2_3->ExpandDims(P0,P2,P3)
T_2_3->ExpandDims(P0,P2,P4)
T_2_3->ExpandDims(P0,P3,P4)
T_2_3->ExpandDims(P1,P2,P3)
T_2_3->ExpandDims(P1,P2,P4)
T_2_3->ExpandDims(P1,P3,P4)
T_2_3->ExpandDims(P2,P3,P4)

// Sorting.
S  ->ExpandDims(P0,P1,P2,P3)
T_3->ExpandDims(P0,P1,P2,P3)
T_3->ExpandDims(P3,P0,P1,P2)
T_3->ExpandDims(P2,P3,P0,P1)
T_3->ExpandDims(P1,P2,P3,P0)

T_3->ExpandDims(P0,P0,P0,P0)
T_3->ExpandDims(P1,P1,P1,P1)
T_3->ExpandDims(P4,P4,P4,P4)
T_3->ExpandDims(P4,P4,P4,P0)
T_3->ExpandDims(P4,P4,P0,P4)
T_3->ExpandDims(P4,P0,P4,P4)
T_3->ExpandDims(P0,P4,P4,P4)

T_3->ExpandDims(P4,P1,P4,P0)
T_3->ExpandDims(P2,P1,P4,P0)
T_3->ExpandDims(P2,P1,P3,P0)

// Sorting.
S  ->ExpandDims(P0,P1,P2,P3,P4)
T_3->ExpandDims(P0,P1,P2,P3,P4)
T_3->ExpandDims(P4,P0,P1,P2,P3)
T_3->ExpandDims(P3,P4,P0,P1,P2)
T_3->ExpandDims(P2,P3,P4,P0,P1)
T_3->ExpandDims(P1,P2,P3,P4,P0)

T_3->ExpandDims(P0,P0,P0,P0,P0)
T_3->ExpandDims(P1,P1,P1,P1,P1)
T_3->ExpandDims(P5,P5,P5,P5,P5)
T_3->ExpandDims(P5,P5,P5,P5,P0)
T_3->ExpandDims(P5,P5,P5,P0,P5)
T_3->ExpandDims(P5,P5,P0,P5,P5)
T_3->ExpandDims(P5,P0,P5,P5,P5)
T_3->ExpandDims(P0,P5,P5,P5,P5)

T_3->ExpandDims(P5,P1,P5,P5,P0)
T_3->ExpandDims(P5,P1,P2,P5,P0)
T_3->ExpandDims(P3,P1,P2,P5,P0)
T_3->ExpandDims(P3,P1,P2,P4,P0)

// More than 32 bits.
T_3->ExpandDims( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)
T_3->ExpandDims( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,   32)

// More than 64 bits.
T_3->ExpandDims(00,10,20,30,40,50,60,01,11,21,31,41,51,61,02,12,22,32,42,52,62,03,13,23,33,43,53,63,04,14,24,34,44,54,64,05,15,25,35,45,55,65,06,16,26,36,46,56,66,07,17,27,37,47,57,67,08,18,28,38,48,58,68,9,19,29,39,49,59,69)
T_3->ExpandDims(00,10,20,30,40,50,60,01,11,21,31,41,51,61,02,12,22,32,42,52,62,03,13,23,33,43,53,63,04,14,24,34,44,54,64,05,15,25,35,45,55,65,06,16,26,36,46,56,66,07,17,27,37,47,57,67,08,18,28,38,48,58,   9,19,29,39,49,59,69)
