## Revision 8ac7a0c7

View differences:

src/clocks.ml
354 354
``` | Carry_const id1, Carry_const id2 -> id1 = id2
```
355 355
``` | _                                -> cr1.carrier_id = cr2.carrier_id
```
356 356

357
```let eq_clock ck1 ck2 =
```
358
``` (repr ck1).cid = (repr ck2).cid
```
359

357 360
```(* Returns the clock root of a clock *)
```
358 361
```let rec root ck =
```
359
```  match (repr ck).cdesc with
```
362
```  let ck = repr ck in
```
363
```  match ck.cdesc with
```
360 364
```  | Ctuple (ck'::_)
```
361 365
```  | Con (ck',_,_) | Clink ck' | Ccarrying (_,ck') -> root ck'
```
362 366
```  | Pck_up _ | Pck_down _ | Pck_phase _ | Pck_const _ | Cvar _ | Cunivar _ -> ck
```
......
369 373
```    | Ccarrying (_, ck) -> branch ck acc
```
370 374
```    | Con (ck, cr, l)   -> branch ck ((cr, l) :: acc)
```
371 375
```    | Ctuple (ck::_)    -> branch ck acc
```
376
```    | Ctuple _
```
372 377
```    | Carrow _          -> assert false
```
373 378
```    | _                 -> acc
```
374 379
```  in branch ck [];;
```
......
382 387

383 388
```(* Disjunction relation between variables based upon their static clocks. *)
```
384 389
```let disjoint ck1 ck2 =
```
385
``` root ck1 = root ck2 && disjoint_branches (branch ck1) (branch ck2);;
```
390
```  eq_clock (root ck1) (root ck2) && disjoint_branches (branch ck1) (branch ck2)
```
386 391

387 392
```(** [normalize pck] returns the normal form of clock [pck]. *)
```
388 393
```let normalize pck =
```

Also available in: Unified diff