Почему C определяет константу M_2_SQRTPI в? - PullRequest
0 голосов
/ 13 октября 2018

В <math.h> константа M_2_SQRTPI определяется значением 2/sqrt(pi).

Я никогда не видел, чтобы это выражение использовалось в формуле, поэтому я искал варианты использования M_2_SQRTPI, но не могнайдена только документация о константе и ее фактическом использовании.

Где используется константа и по какой причине она определяется в <math.h> как математическая константа?

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Константа связана с функцией ошибки .

Я не знаю, почему она предоставляется как константа в стандартной библиотеке POSIX.С GCC в системе x86-64 и, соответственно, в каждой системе, соответствующей IEEE 754, вычисление 2.0 / sqrt(M_PI) дает точно то же значение двойной точности, что и M_2_SQRTPI.

Попробуйте онлайн!

Даже если бы произошла небольшая ошибка, очень немногие люди, которым нужна константа, могли бы просто определить ее сами.

0 голосов
/ 13 октября 2018

Он используется в различных научных вычислениях (например, я видел это в финансах).

Почему вы хотите, чтобы он был константой?Потому что sqrt(M_PI) не будет иметь той же точности, что и предварительно вычисленное значение (используя большую точность для PI для начала).И это имеет большое значение, я видел ущерб от его использования.

...