Input ds is dataset[5,2] (dimensionless) ==ds[:,:]== it.rank()= 2 the rank of the result Iter [0:5,0:2] @ [0,0] 0.0 Iter [0:5,0:2] @ [0,1] 1.0 Iter [0:5,0:2] @ [1,0] 2.0 Iter [0:5,0:2] @ [1,1] 3.0 Iter [0:5,0:2] @ [2,0] 4.0 Iter [0:5,0:2] @ [2,1] 5.0 Iter [0:5,0:2] @ [3,0] 6.0 Iter [0:5,0:2] @ [3,1] 7.0 Iter [0:5,0:2] @ [4,0] 8.0 Iter [0:5,0:2] @ [4,1] 9.0 ==start stop iterator ds[0:3,:]== it.rank()= 2 the rank of the result Iter [0:3,0:2] @ [0,0] 0.0 Iter [0:3,0:2] @ [0,1] 1.0 Iter [0:3,0:2] @ [1,0] 2.0 Iter [0:3,0:2] @ [1,1] 3.0 Iter [0:3,0:2] @ [2,0] 4.0 Iter [0:3,0:2] @ [2,1] 5.0 ==singleton iterator ds[:,0]== it.rank()= 1 the rank of the result Iter [0:5,0] @ [0,0] 0.0 Iter [0:5,0] @ [1,0] 2.0 Iter [0:5,0] @ [2,0] 4.0 Iter [0:5,0] @ [3,0] 6.0 Iter [0:5,0] @ [4,0] 8.0 ==singleton iterator ds[:,0]== it.rank()= 1 the rank of the result it.length(0)= 5 it.length(1)= 1 it.index(0)= 0 it.index(1)= 0 it.index(0)= 1 it.index(1)= 0 it.index(0)= 2 it.index(1)= 0 it.index(0)= 3 it.index(1)= 0 it.index(0)= 4 it.index(1)= 0 where is length() used? dataset[3,4,5] (dimensionless) Iter [0:3,0,0:5] @ [-1,0,-1] it.rank()= 2 the rank of the result it.length(0)= 3 it.length(1)= 1 it.length(2)= 5 the number of iterations for each dimension