-
Notifications
You must be signed in to change notification settings - Fork 98
Description
Based on discussion here.
There is no binary version of atan function in nonlinear subsystem of MOI.
If user uses binary atan in JuMP it registers a user defined function which is not supported with write_to_file and also makes unary version unavailable.
Binary version of atan commonly known as atan2 is widely used in many nonlinear problems. It is supported in almost all language's math libraries and most nonlinear optimization tools.
The best solution would be to support both unary and binary versions of atan simultaneously within MOI.
Workaround would be to add separate atan2 function. The drawback of such approach would be incompatibility with julia expressions witch use binary version of atan. For example when extracting expressions from functions with Symbolics.jl.
If we have to stick with only one version of atan perhaps the binary should be used instead of unary. As atan(x) = atan2(x, 1) so unary is easily implemented with binary. The only issue then is some extra computation atan2 has over regular atan.
The same issue could be inspected for some other multimethod functions in julia.