diff options
Diffstat (limited to 'src/lem_interp/interp.lem')
| -rw-r--r-- | src/lem_interp/interp.lem | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem index 218f20e7..37f73a1e 100644 --- a/src/lem_interp/interp.lem +++ b/src/lem_interp/interp.lem @@ -366,7 +366,7 @@ let rec slice_vector v n1 n2 = match v with | V_vector m inc vs -> if inc - then V_vector 0 inc (from_n_to_n (n1 - m) (n2 - m) vs) + then V_vector n1 inc (from_n_to_n (n1 - m) (n2 - m) vs) else V_vector (n1 - n2 + 1) inc (from_n_to_n (m - n1) (m - n2) vs) | V_vector_sparse m n inc vs d -> let (slice, still_sparse) = @@ -374,7 +374,7 @@ let rec slice_vector v n1 n2 = then slice_sparse_list (>) (fun i -> i + 1) vs n1 n2 else slice_sparse_list (<) (fun i -> i - 1) vs n1 n2 in if still_sparse && inc - then V_vector_sparse 0 (n2 - n1) inc slice d + then V_vector_sparse n1 (n2 - n1) inc slice d else if inc then V_vector 0 inc (List.map snd slice) else if still_sparse then V_vector_sparse (n1 - n2 +1) (n1 - n2) inc slice d else V_vector (n1 - n2 +1) inc (List.map snd slice) |
