dwavesystems / dwavesystems/dwave-optimization
Consider dropping ``Node::update()`` method
- Dominant language
- C++
- Stars
- 31
- Forks
- 36
- Avg merge
- 16h 55m
- Merged PRs (30d)
- 8
Description
Currently the `Node` design includes a `Node::update()` method. This method is called by the node's predecessors if they have updates they want to propagate to the node. In principal this allows nodes to more efficiently check their predecessors for updates or to eagerly update their state. However, as of writing (Dec 2024) no nodes actually use this information, and many nodes don't actually call their successor's `update()` method.
With this in mind, we should consider dropping the notion entirely. The downside is nodes will need to always check every predecessor for updates on each propagation. And it means that all nodes will update their state lazily rather than eagerly. The upside is one less virtual method call/test. Which in the case of many scalars likely has a noticeable performance difference.
Contributor guide
Assessment
This issue has not been assessed yet.