Skip to content

Commit 6fef812

Browse files
committed
Punning and List.rev_map
1 parent 426d739 commit 6fef812

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/cdomains/affineEquality/sparseImplementation/sparseVector.ml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -267,10 +267,10 @@ module SparseVector: AbstractVector =
267267
268268
*)
269269
let map_f_preserves_zero f v = (* map for functions f such that f 0 = 0 since f won't be applied to zero values. See also map *)
270-
let entries = List.filter_map (
270+
let entries' = List.filter_map (
271271
fun (idx, value) -> let new_val = f value in
272272
if new_val = A.zero then None else Some (idx, new_val)) v.entries in
273-
{entries; len = v.len}
273+
{v with entries = entries'}
274274

275275
let map_f_preserves_zero f v = Timing.wrap "map_f_preserves_zero" (map_f_preserves_zero f) v
276276

@@ -281,10 +281,10 @@ module SparseVector: AbstractVector =
281281
282282
*)
283283
let mapi_f_preserves_zero f v =
284-
let entries = List.filter_map (
284+
let entries' = List.filter_map (
285285
fun (idx, value) -> let new_val = f idx value in
286286
if new_val = A.zero then None else Some (idx, new_val)) v.entries in
287-
{entries; len = v.len}
287+
{v with entries = entries'}
288288

289289
(**
290290
[map2_f_preserves_zero f v v'] returns the mapping of [v] and [v'] specified by [f].
@@ -380,7 +380,7 @@ module SparseVector: AbstractVector =
380380
{entries; len = v.len}
381381

382382
let rev v =
383-
let entries = List.rev @@ List.map (fun (idx, value) -> (v.len - 1 - idx, value)) v.entries in
383+
let entries = List.rev_map (fun (idx, value) -> (v.len - 1 - idx, value)) v.entries in
384384
{entries; len = v.len}
385385

386386
let append v v' =

0 commit comments

Comments
 (0)