-
Notifications
You must be signed in to change notification settings - Fork 64
Closed
Labels
Complex DifferentiationRelating to any form of complex differentiationRelating to any form of complex differentiation
Description
This was opened as a response to the discovery in this Zygote PR that our handling of complex functions isn't currently Zygote-compatible when they're not analytic.
The issue appears to stem from the need to conjugate the input / output to rrules when used in Zygote. This is a direct consequence of chain rules currently assuming that all functions for which rules are implemented are holomorphic, as in this case simply conjugating the input and output to the rule makes total sense and does the correct thing.
What needs to happen is:
- ChainRulesCore to get a
@holomorphicor@analyticmacro for handling scalars involving complex numbers that does the conjugating for you - ChainRules to use this to implement the existing holomorphic functions
- Careful testing of scalar functions with complex inputs in ChainRules (I'm assuming the lack of this is how stuff got through in the first place undetected)
- A short PR to Zygote that simply stops conjugating things
nickrobinson251
Metadata
Metadata
Assignees
Labels
Complex DifferentiationRelating to any form of complex differentiationRelating to any form of complex differentiation