Title: New Width Inference Algorithm
1New Width Inference Algorithm
Bert Rodiers, Ben Lickly
Rationale In Ptolemy II relations can have
multiple channels, each one representing a
sequence of tokens. The number of channels is
specified by the width of a relation. Having to
explicitly specify the width for each relation
can be a tedious job. To make it even worse, the
addition of one relation to a multiport might
result in a model builder needing to go through
the model again to adapt widths. To cope with
this you can let the relations infer the width
from other relations or other ports with a graph
algorithm.
Constraints mechanism on ports in atomic actors
Restricted existing algorithm Only one relation
to be inferred at each port
Width of relation connected to true output has
to be equal to input.
To infer this width
trueOutput.setWidthEquals(input,
true) falseOutput.setWidthEquals(input, true)
- New default
- Default width Auto
Has 2 relations to be inferred connected to it.
Old algorithm would fail.
Performance
Acknowledgement
- Properties of new algorithm
- Widths are propagated
- Each relation is only visited once
- Linear, but more expensive algorithm
- Initialization step O(total number of relations)
This work is supported in part by the Center for
Hybrid and Embedded Software Systems (CHESS), at
UC Berkeley, which recieves support from the
National Science Foundation (NSF awards 0720882
(CSR-EHS PRET) and 0720841 (CSR-CPS)), the U.
S. Army Research Office (ARO W911NF-07-2-0019),
the U. S. Air Force Office of Scientific Research
(MURI FA9550-06-0312), the Air Force Research
Lab (AFRL), the State of California Micro
Program, and the following companies Agilent,
Bosch, Lockheed-Martin, National Instruments,
Thales and Toyota.
- Consistency check
- Checks whether there is a unique solution and no
contradictions - Can be disabled