-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
global roots? #4
Comments
In particular, it seems like a This should also eliminate the awkward counting in the In general, it seems like the cost of |
As mentioned in #2, it seems like it would be more natural to get rid of all the And don't even call |
Consider:
when Do you see a not so awkward way of dealing with this? |
@shashi, no, you would topologically sort the inputs and all their descendants, with duplicates removed. In this case, that would result in the list |
Oh cool!!! That's awesome! On it! |
@stevengj could you take a look at the pull request? I use a global counter to keep a topological ordering of nodes (if nodes are created only with the primitives provided, the logical time of their creation gives a complete ordering.) To propagate a signal I do something like BFS but with a min-heap instead of queue: the lowest ranking child node always gets precedence. This is One problem I am facing is with Edit: Merge is done. It doesn't look too bad to me. Doesn't affect the asymptotic time at least. All previous tests pass :D |
It looks worrisome that
push!
updates everything in a globalroots
array. This seems like it will scale badly.Surely, pushing a value to an input should only affect the signals that depend on that input. Aren't you already storing the dependency DAG via the
children
field etcetera?The text was updated successfully, but these errors were encountered: