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
Flag persistence generators #29
Flag persistence generators #29
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I'm not mistaken, we always return edges that are in the lower diagonal of the distance matrix, i.e. edges [i, j]
such that i > j
. Is this true consistently? Especially between the case of dimension 0 and of higher dimensions?
Yes, we always return edges |
We are playing with fire here :) I suggest we stick to |
Oh ! |
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
@MonkeyBreaker You probably have noticed that there is repeated logic between the 0-dimensional fix and the code for
might be wrong. |
@ulupo about returning the index from the link function, it should be doable. About the check |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a draft suggestion to explain what I mean
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should add a test that covers sparse matrices with non-zero values along the diagonal. Here we can also test the finite bars in dimension zero and that the birth indices are correct there. Here it is important that the input is valid for a filtration. For example we can create random diagonal entries between 0 and 1, and ensure all off-diagonal entries are greater than 1.
This should be addressed in the latest commit |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another note: we should avoid using the word "representatives" for what is computed in this PR. We can use "persistence pairs" or "simplex pairs" or "persistence generators"
Well I used "representatives" from the beginning. For me the most important point is the name in the dictionary as output in |
I took the liberty of renaming |
Another note: @MonkeyBreaker I'm guessing this can be fixed at the level of the bindings? |
During work on this PR #29, @MonkeyBreaker and I realized that the current core logic in the matrix reduction algorithm makes it so that we break the following promise to the user: that passing a dense matrix with a few Because changing this requires potentially delicate changes to the reduction routine, we decided to discuss what to do about this separately, and open a separate PR if necessary after this one is merged. |
In view of #36 , we need to update the imports in the two notebooks here. |
Before doing the merge, we will need to rebase to |
Fix that no value in the diagonal should be bigger than a non diagonal value Signed-off-by: julian <julian.burellaperez@heig-vd.ch>
…lupo Signed-off-by: julian <julian.burellaperez@heig-vd.ch>
Refactor slighly compute_dim_0 Signed-off-by: julian <julian.burellaperez@heig-vd.ch>
If get_youngest_edge_simplex does not implement the correct logic it could per example return [4, 0, 5, 4] Signed-off-by: julian <julian.burellaperez@heig-vd.ch>
25fd98f
to
0abb23b
Compare
It seems weird to me, the C++ core has the same logic as for barcodes (barcodes have a I need to verify if this is not the case |
I don't think this can be the case if |
Well when you compute |
Oh I'm sorry @MonkeyBreaker , I thought you said |
Does it work as expected then ? Do we have an issue in the documentation ? (In the documentation we are right in that we return |
I think I was able to produce examples which returned empty lists when |
Just tried with |
This PR add the possibility to retrieve representative simplicies.
collapser
andrepresentative simplicies
are enable at the same time