Skip to content

Add forward/reverse mode counterpart helpers to EnzymeCore#3302

Open
rsenne wants to merge 5 commits into
EnzymeAD:mainfrom
rsenne:add-counterparts
Open

Add forward/reverse mode counterpart helpers to EnzymeCore#3302
rsenne wants to merge 5 commits into
EnzymeAD:mainfrom
rsenne:add-counterparts

Conversation

@rsenne

@rsenne rsenne commented Jul 9, 2026

Copy link
Copy Markdown

As discussed here, I've implemented the forward/reverse counterparts into EnzymeCore so that upstream changes will not break the usage in DI.

This adds two unexported helpers alongside the existing Split``/Combined:

forward_counterpart(::Mode): maps ReverseMode/ReverseModeSplit to a ForwardMode, preserving ReturnPrimal, ABI, ErrIfFuncWritten, RuntimeActivity, and StrongZero (drops Holomorphic and split-specific parameters). Identity on ForwardMode.
reverse_counterpart(::Mode): maps ForwardMode to a ReverseMode preserving the same settings, with Holomorphic = false. Identity on ReverseMode/ReverseModeSplit.
Happy to rename or adjust semantics as you see fit. Also bumps EnzymeCore to 0.8.22.

cc @wsmoses @gdalle

Comment thread Project.toml Outdated
@rsenne rsenne requested a review from wsmoses July 9, 2026 14:29
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.

2 participants