|
83 | 83 |
|
84 | 84 | val map_with: (num -> num) -> t -> unit |
85 | 85 |
|
| 86 | + val map: (num -> num) -> t -> t |
| 87 | + |
86 | 88 | val compare_length_with: t -> int -> int |
87 | 89 |
|
88 | 90 | val of_list: num list -> t |
|
99 | 101 |
|
100 | 102 | val rev_with: t -> unit |
101 | 103 |
|
| 104 | + val rev: t -> t |
| 105 | + |
102 | 106 | val map2i: (int -> num -> num -> num) -> t -> t -> t |
103 | 107 |
|
104 | 108 | val map2i_with: (int -> num -> num -> num) -> t -> t -> unit |
|
107 | 111 |
|
108 | 112 | val mapi_with: (int -> num -> num) -> t -> unit |
109 | 113 |
|
| 114 | + val mapi: (int -> num -> num) -> t -> t |
| 115 | + |
110 | 116 | val find2i: (num -> num -> bool) -> t -> t -> int |
111 | 117 |
|
112 | 118 | val to_array: t -> num array |
|
180 | 186 |
|
181 | 187 | val map2_with: (vec -> num -> vec) -> t -> vec -> unit |
182 | 188 |
|
| 189 | + val map2: (vec -> num -> vec) -> t -> vec -> t |
| 190 | + |
183 | 191 | val map2i: (int -> vec-> num -> vec) -> t -> vec -> t |
184 | 192 |
|
185 | 193 | val map2i_with: (int -> vec -> num -> vec) -> t -> vec -> unit |
@@ -270,14 +278,26 @@ module ArrayVector: AbstractVector = |
270 | 278 |
|
271 | 279 | let rev_with v = Array.rev_in_place v |
272 | 280 |
|
| 281 | + let rev v = Array.rev v |
| 282 | + |
273 | 283 | let map_with f v = Array.modify f v |
274 | 284 |
|
| 285 | + let map f v = Array.map f v |
| 286 | + |
275 | 287 | let map2_with f v1 v2 = Array.iter2i (fun i x y -> v1.(i) <- f x y) v1 v2 |
276 | 288 |
|
| 289 | + let map2 f v1 v2 = |
| 290 | + let copy_v1 = copy v1 in |
| 291 | + map2_with f copy_v1 v2; copy_v1 |
| 292 | + |
277 | 293 | let copy v = Array.copy v |
278 | 294 |
|
279 | 295 | let mapi_with f v = Array.iteri (fun i x -> v.(i) <- f i x) v |
280 | 296 |
|
| 297 | + let mapi f v = |
| 298 | + let copy = copy v in |
| 299 | + mapi_with f copy; copy |
| 300 | + |
281 | 301 | let of_sparse_list ls col_count = |
282 | 302 | let vec = Array.make col_count A.zero in |
283 | 303 | List.iter (fun (idx, value) -> vec.(idx) <- value) ls; |
|
0 commit comments