Is there a package that supports automatic differentiation for complex-valued functions (non-holomorphic)? So far I used a workaround of defining my own Wirtinger derivative in Zygote and I use the result as the input for the adjoint problem. However, I can only compute one and the result does not backpropagate.
The goal would be to automate the computation of the adjoint method for optimization like they did with Angler. It would be particularly useful to automatically compute the adjoint of a convolution (using FFT or NFFT), or to optimize contemporarely the real and imaginary part of a photonic structure.
( [2302.08286] Theory and Implementation of Complex-Valued Neural Networks (arxiv.org))