Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
странно, что в numpy этого нет «из коробки».
sin(2e20 * pi) возможно, но абсолютно бессмысленно.sin(2e20*pi) и sin(2*pi) будет разной (как впрочем она будет различаться для самих чисел double, содержащих 2*pi или 2e20*pi):xsin(1e+00*M_PI) = 1.22465e-16, sin(1e+00*M_PI) = 1.22465e-16
xsin(1e+01*M_PI) = -1.22465e-15, sin(1e+01*M_PI) = -1.22465e-15
xsin(1e+02*M_PI) = 1.96439e-15, sin(1e+02*M_PI) = 1.96439e-15
xsin(1e+03*M_PI) = -3.21417e-13, sin(1e+03*M_PI) = -3.21417e-13
xsin(1e+04*M_PI) = -4.85682e-13, sin(1e+04*M_PI) = -4.85682e-13
xsin(1e+05*M_PI) = -3.39607e-11, sin(1e+05*M_PI) = -3.39607e-11
xsin(1e+06*M_PI) = -2.23191e-10, sin(1e+06*M_PI) = -2.23191e-10xsin(1e+10*M_PI) = -8.96779e+183, sin(1e+10*M_PI) = -2.23936e-06
xsin(1e+07*M_PI) = 5.62056e-10, sin(1e+07*M_PI) = 5.62056e-10
xsin(1e+08*M_PI) = -3.90829e-08, sin(1e+08*M_PI) = -3.90829e-08
xsin(1e+09*M_PI) = -3.32014e-08, sin(1e+09*M_PI) = -3.32014e-08
(xsin(x)-sin(x))/sin(x)). Показатель конечно не идеальный (а при нулевом знаменателе и вовсе неопределенный), но представление о погрешности дает. С большими числами есть другая пробелема — недавно я обнаружил, что синус в SLEEF для чисел порядка 1e10 и больше, дает расходимость:xsin(1e+10*M_PI) = -8.96779e+183, sin(1e+10*M_PI) = -2.23936e-06
Пишем numpy-модуль для ускорения математических функций с помощью SIMD-инструкций