Разница между стандартной библиотекой cmath и math.h в C++ заключается в том, что cmath предоставляет больше функций. 1 В ней есть все функции из math.h плюс те, которые входят в C++. 1
math.h — это библиотека, предоставляющая лишь те математические функции, которые входят в язык C. 1 Она оставлена для совместимости с программами, написанными на C. 3
Кроме того, cmath требует использования пространства имён std, в то время как math.h определяет символы в глобальном пространстве имён, а также может определять символы в пространстве имён std. 2
Таким образом, если пишется в режиме C++, следует использовать библиотеку cmath, а если в режиме C++ + C — math.h. 1