val ztransfer : (n: int) -S-> (m: int) -S->
                         float array[n] -S-> float array[m] -> float -D-> float