-
Notifications
You must be signed in to change notification settings - Fork 615
fix: make translator use ultra rather than eccvm ops #13489
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
Merged
Merged
Changes from 4 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
bbb6d74
translator on ulta ops
0806c8b
Merge remote-tracking branch 'origin/master' into mm/translator-on-ul…
7a98c92
cleanup, remove Cargo.lock
ba65eb1
UltraEccOpsTable inherits from EccOpsTable and fix compilation
2768145
cleanup
cccbd48
check for point at infinity first
c9c6331
go back from inheritance to composition
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
seems more natural for this to be a derived class of the generic EccOpsTable class and to me it looks like we are simplifying the code but curious to hear opinions
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.
Yeah so the canonical question in situations like this is which one of these is more logically correct: (1)
UltraEccOpsTablehas anEccOpsTable, or (2)UltraEccOpsTableis anEccOpsTable. If (1) is true then we should use composition (as it is now). If (2), we should use inheritance. In this case it's pretty clear to me that (2) is not true, but it may be the case that the implementation of (1) is not as clean as it should be. (E.g. in principleUltraEccOpsTableis a class for managing the width-4 representation of the table whileEccOpsTablecontains the more genericUltraOptable - the former is not a subclass of the latter). Inheritance can make things opaque so I think it should be avoided unless its very clear that (2) applies. This is something @ludamad has convinced me of (and maybe even steered me away from in the initial implementation of this class). In any case, the syntactic advantage we appear to get from employing inheritance seems minimal - maybe another sign that its not appropriate!Anyway, there is definitely room for improvement. But I would encourage you to think about how to make the composition model cleaner rather than resorting to inheritance here.
Uh oh!
There was an error while loading. Please reload this page.
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.
Hum - I see your point. In my head the
UltraEccOpsTablewas just adding extra functionality to the genericEccOpsTableso the inheritance seemed natural, but as I'm writing this I'm thinking this is not functionality of theEccOpsTableinstantiated onUltraOps but rather functionality using theEccOpsTable<UltraOp>class so I think I agree with you and perhaps (one of) the culprit here is the nameUltraEccOpsTable, will think how to rework this more