gaol::atan2(const interval& Y, const interval& X) is declared in gaol/gaol_interval.h, and expressions can call it (interval("atan2(1, 1)"), see gaol/gaol_interval_parser.ypp). But it is not implemented: it raises unavailable_feature_error ("atan2 not yet implemented") and returns the empty set (gaol_interval.cpp).
Found while writing tests/elementary.cpp, which leaves atan2() out for this reason.
A possible implementation: atan() of the quotients at the corners of [X]×[Y], quadrant by quadrant, with the cut along the negative x axis, as IBEX implements it for its intervals.
gaol::atan2(const interval& Y, const interval& X)is declared ingaol/gaol_interval.h, and expressions can call it (interval("atan2(1, 1)"), seegaol/gaol_interval_parser.ypp). But it is not implemented: it raisesunavailable_feature_error("atan2 not yet implemented") and returns the empty set (gaol_interval.cpp).Found while writing
tests/elementary.cpp, which leavesatan2()out for this reason.A possible implementation:
atan()of the quotients at the corners of [X]×[Y], quadrant by quadrant, with the cut along the negative x axis, as IBEX implements it for its intervals.