Dear All, Is there a reason for GiNaC (or ginsh) to evaluate atan2(0,-4) as -Pi instead of +Pi the definition used by for instance C/C++? Looking at the code, inifcns_trans.cpp last shown case below, explicitly states it should. Or can I expect it to be changed in the future? static ex atan2_eval(const ex & y, const ex & x) { if (y.info(info_flags::numeric) && x.info(info_flags::numeric)) { if (y.is_zero()) { // atan(0, 0) -> 0 if (x.is_zero()) return _ex0; // atan(0, x), x real and positive -> 0 if (x.info(info_flags::positive)) return _ex0; // atan(0, x), x real and negative -> -Pi if (x.info(info_flags::negative)) return _ex_1*Pi; } ... The code fragment is from version 1.3.7 best regards Jan Bos