fortran – Why define PI = 4*ATAN(1.d0)

fortran – Why define PI = 4*ATAN(1.d0)

This style ensures that the maximum precision available on ANY architecture is used when assigning a value to PI.

Because Fortran does not have a built-in constant for `PI`. But rather than typing in the number manually and potentially making a mistake or not getting the maximum possible precision on the given implementation, letting the library calculate the result for you guarantees that neither of those downsides happen.

These are equivalent and youll sometimes see them too:

``````PI=DACOS(-1.D0)
PI=2.D0*DASIN(1.D0)
``````

fortran – Why define PI = 4*ATAN(1.d0)

I believe its because this is the shortest series on pi. That also means its the MOST ACCURATE.

The Gregory-Leibniz series (4/1 – 4/3 + 4/5 – 4/7…) equals pi.

atan(x) = x^1/1 – x^3/3 + x^5/5 – x^7/7…

So, atan(1) = 1/1 – 1/3 + 1/5 – 1/7 + 1/9…
4 * atan(1) = 4/1 – 4/3 + 4/5 – 4/7 + 4/9…

That equals the Gregory-Leibniz series, and therefore equals pi, approximately
3.1415926535 8979323846 2643383279 5028841971 69399373510.

Another way to use atan and find pi is:

pi = 16*atan(1/5) – 4*atan(1/239), but I think thats more complicated.

I hope this helps!

(To be honest, I think the Gregory-Leibniz series was based on atan, not 4*atan(1) based on the Gregory-Leibniz series. In other words, the REAL proof is:

sin^2 x + cos^2 x = 1 [Theorem]
If x = pi/4 radians, sin^2 x = cos^2 x, or sin^2 x = cos^2 x = 1/2.

Then, sin x = cos x = 1/(root 2). tan x (sin x / cos x) = 1, atan x (1 / tan x) = 1.

So if atan(x) = 1, x = pi/4, and atan(1) = pi/4.
Finally, 4*atan(1) = pi.)