У меня странная проблема со стандартной функцией cos в cmath / math.h. Очевидно, при некоторых обстоятельствах он возвращает неправильное или просто неопределенное значение.
#include <cmath>
#include <iostream>
int main()
{
double foo = 8.0 * 0.19634955; // 1.5707964
double bla = std::cos(foo); // should be 0.9996242168245
std::cout << bla << std::endl; // cos returns -7.32051e-008
return 0;
}
Если входное значение для cos равно 1,5707964, например, cos возвращает -7.32051e-008 (при использовании double, с плавающей запятой это -4.XYZe-009).
Я что, упускаю что-то действительно простое и простое ...?