Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | rfnoc: graph: Optimize property propagation algorithm | Martin Braun | 2019-11-26 | 1 | -3/+2 |
| | | | | | | | | | | | | | | | | | | | | | This introduces the concept of a resolution context, because the property propagation algorithm needs to behave differently when called during an initialization step (e.g. when the graph is committed), or when the user changes a property on one of the nodes after it was committed. The algorithm is modified as follows: - When called during an initialization step, then all nodes get resolved at least once. If nodes added new properties, then all nodes get touched again until the max number of iterations is reached. - When called because a node modified one of its properties, then that node is always resolved first. From there, all other nodes are resolved in topological order. However, the algorithm immediately terminates as soon as there are no more dirty nodes. - When called because a node modified one of its properties, but the graph is currently not in a committed state, then that node will do a local property resolution. | ||||
* | rfnoc: graph: Add commit/release API | Martin Braun | 2019-11-26 | 1 | -4/+11 |
| | |||||
* | rfnoc: node: Fix resolution of properties with circular dependencies | Martin Braun | 2019-11-26 | 1 | -0/+60 |
| | | | | | | | When a node has multiple properties that depend on each other (and possible have circular dependencies), the previous version of property propagation would not correctly resolve properties that got flagged dirty during the execution of other resolvers. | ||||
* | rfnoc: Add property propagation, Boost.Graph storage | Martin Braun | 2019-11-26 | 1 | -0/+366 |
- Adds a detail::graph_t class, which handles the propagation - Adds methods to node_t to aid with propagation - Adds unit tests - Adds dynamic property forwarding: Nodes are now able to forward properties they don't know about by providing a forwarding policy. A good example is the FIFO block which simply forwards most properties verbatim. - node: Temporarily disabling consistency check at init |