Skip to content

Partition Simplification Framework#95

Merged
gselzer merged 16 commits intomainfrom
scijava/scijava-ops-engine/partition-simplification
Nov 28, 2023
Merged

Partition Simplification Framework#95
gselzer merged 16 commits intomainfrom
scijava/scijava-ops-engine/partition-simplification

Conversation

@gselzer
Copy link
Member

@gselzer gselzer commented Nov 7, 2023

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 SimplifiedOpInfo into two separate OpInfo implementations:

  • SimplifiedOpInfos consist of an OpInfo along with focus Ops to focus the inputs and a simplify Op to simplify the output. For example, if the original OpInfo is Double output = foo.bar(Double d1, Double d2), the simplified OpInfo might be Number output = foo.bar(Number d1, Number d2).
  • FocusedOpInfo takes a SimplifiedOpInfo along with simplify Ops to simplify the inputs to the simple type and focus Ops to focus the output from the simple type. To continue the above example, a focused OpInfo might be Integer output = foo.bar(Integer d1, Integer d2).

Note that this PR is built atop of #94, to make use of the new Ops utility class.

@gselzer gselzer self-assigned this Nov 7, 2023
@gselzer gselzer force-pushed the scijava/scijava-ops-engine/partition-simplification branch 11 times, most recently from d1d4b8e to 1a479dd Compare November 9, 2023 17:34
@gselzer gselzer force-pushed the scijava/scijava-ops-engine/partition-simplification branch 2 times, most recently from b4af6df to 9f7d6f2 Compare November 16, 2023 16:56
@gselzer gselzer force-pushed the scijava/scijava-ops-engine/partition-simplification branch 3 times, most recently from 2e9d6db to 15d9790 Compare November 16, 2023 22:31
Copy link
Member

@ctrueden ctrueden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oof, got through it! I skimmed some parts that were above my level of understanding, but hopefully it helps anyway.

@gselzer gselzer force-pushed the scijava/scijava-ops-engine/partition-simplification branch 11 times, most recently from 5b3ee3c to 7369c8c Compare November 22, 2023 20:05
Copy link
Member Author

@gselzer gselzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Started out with a mini-review

@gselzer gselzer force-pushed the scijava/scijava-ops-engine/partition-simplification branch 3 times, most recently from 77e1596 to 5d6b3b7 Compare November 28, 2023 18:32
Copy link
Member Author

@gselzer gselzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So close!

@gselzer gselzer force-pushed the scijava/scijava-ops-engine/partition-simplification branch from 83a88b2 to de098cf Compare November 28, 2023 19:28
@gselzer gselzer force-pushed the scijava/scijava-ops-engine/partition-simplification branch from 8236779 to ba97e0e Compare November 28, 2023 21:57
@gselzer gselzer merged commit bca156e into main Nov 28, 2023
@gselzer gselzer deleted the scijava/scijava-ops-engine/partition-simplification branch November 28, 2023 22:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add parameter type information to ops.descriptions() output

3 participants