Merged
Conversation
d1d4b8e to
1a479dd
Compare
b4af6df to
9f7d6f2
Compare
2e9d6db to
15d9790
Compare
ctrueden
reviewed
Nov 16, 2023
Member
ctrueden
left a comment
There was a problem hiding this comment.
Oof, got through it! I skimmed some parts that were above my level of understanding, but hopefully it helps anyway.
imagej/imagej-ops2/src/test/java/net/imagej/ops2/create/CreateImgTest.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-api/src/main/java/org/scijava/ops/api/OpBuilder.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/OpDescription.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/OpDescriptionGenerator.java
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/test/java/org/scijava/ops/engine/impl/ProvenanceTest.java
Outdated
Show resolved
Hide resolved
...java-ops-engine/src/test/java/org/scijava/ops/engine/matcher/adapt/OpAdaptationInfoTest.java
Show resolved
Hide resolved
...a/scijava-ops-engine/src/test/java/org/scijava/ops/engine/matcher/simplify/SimplifyTest.java
Outdated
Show resolved
Hide resolved
5b3ee3c to
7369c8c
Compare
gselzer
commented
Nov 22, 2023
Member
Author
gselzer
left a comment
There was a problem hiding this comment.
Started out with a mini-review
scijava/scijava-ops-api/src/main/java/org/scijava/ops/api/OpEnvironment.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-api/src/main/java/org/scijava/ops/api/OpRequest.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-api/src/main/java/org/scijava/ops/api/OpRequest.java
Outdated
Show resolved
Hide resolved
gselzer
commented
Nov 23, 2023
scijava/scijava-ops-api/src/main/java/org/scijava/ops/api/OpInfo.java
Outdated
Show resolved
Hide resolved
gselzer
commented
Nov 23, 2023
scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/OpDescription.java
Outdated
Show resolved
Hide resolved
77e1596 to
5d6b3b7
Compare
gselzer
commented
Nov 28, 2023
.../src/main/java/org/scijava/ops/engine/matcher/simplify/SimplifiedOpDescriptionGenerator.java
Outdated
Show resolved
Hide resolved
.../src/main/java/org/scijava/ops/engine/matcher/simplify/SimplifiedOpDescriptionGenerator.java
Outdated
Show resolved
Hide resolved
83a88b2 to
de098cf
Compare
This allows us to access simple descriptions, which we now do in this commit
We made a couple of functions protected for reuse in SimplificationMatchingRoutine, but not all of them needed to be
8236779 to
ba97e0e
Compare
This was referenced Nov 28, 2023
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Solving issues like scijava/scijava#146 and acting on scijava/scijava#36 requires us to gain some insight about the forms of types and to coalesce structurally equivalent Ops, and there's a lot of overlap with the simplification framework. Unfortunately, the simplified Ops and types are hidden within the simplification framework.
This PR partitions
SimplifiedOpInfointo two separateOpInfoimplementations:SimplifiedOpInfos consist of anOpInfoalong withfocusOps to focus the inputs and asimplifyOp to simplify the output. For example, if the originalOpInfoisDouble output = foo.bar(Double d1, Double d2), the simplifiedOpInfomight beNumber output = foo.bar(Number d1, Number d2).FocusedOpInfotakes aSimplifiedOpInfoalong withsimplifyOps to simplify the inputs to the simple type andfocusOps to focus the output from the simple type. To continue the above example, a focusedOpInfomight beInteger output = foo.bar(Integer d1, Integer d2).Note that this PR is built atop of #94, to make use of the new
Opsutility class.