Функции, подобные atan2
, сравнивают аргументы с некоторыми константами внутри себя (например, if (x < 0) ...
). Если то, что вы передали, имеет неинициализированное значение, valgrind справедливо пожалуется (попробуйте, например, double x, y; atan2(x, y);
). Проблема не в математических функциях, а в вызывающем.
Необходимо убедиться, что аргументы правильно инициализированы, что может быть нетривиальным, поскольку неинициализированные значения могут распространяться из неожиданных мест. Попробуйте скомпилировать свой код с символами отладки, чтобы увидеть, может ли valgrind напечатать более подробную обратную трассировку.