4000. 12. PYTHON Code for coupling constants with 200 decimal digits precision output.
This PYTHON Code computes coupling constants from K-39.0 to K+18.5
1 import mpmath as mp
3 # Set desired precision (100 or 200 decimal digits)
4 mp.mp.dps = 200 # Change to 200 if you need 200 decimal digits of precision
6 # Define Constants with high precision
7 C_0 = mp.mpf(
8 "0.9869763503843571923955121936342636366933158873206820384157142768900062650686530211391494897733630580622746241867200156070025829718439936494135821020466414603141110853110509328310852506004581818658909"
9 ) # or directly from mathematical definitions if available
10 PI = mp.pi
11 E = mp.e
12 C_87 = PI / E # PI / E
13 C_8 = PI # PI
15 # Output file path (adjust as needed for your OS/system)
16 output_filename = "ALFA_THETA_GENERAL_ARBITRARY_PRECISION.txt"
18 with open(output_filename, "w", encoding="utf-8") as f:
20 # Loop DO I = -100, 38
21 for i in range(-78, 16): # range in Python is exclusive at the upper bound
23 X = mp.mpf(i) / mp.mpf(2)
25 # ------------------------------------------------------------------
26 # PART A OF EXPM = (A/B)^C
27 # ------------------------------------------------------------------
28 A = mp.mpc(C_0) ** ((X - mp.mpf(8)) / mp.mpf(8))
30 # ------------------------------------------------------------------
31 # PART B OF EXPM = (A/B)^C
32 # ------------------------------------------------------------------
33 B_1 = C_0 * (C_87**X)
34 B_2 = (X - mp.mpf(8)) / (X**2 - mp.mpf(16) * X + mp.mpf(80))
35 B_3 = (mp.mpf(11) * X - mp.mpf(88)) / mp.mpf(24)
37 # B = ((B_1 * B_2) ** B_3)
38 B = mp.mpc(B_1 * B_2) ** mp.mpc(B_3)
40 # ------------------------------------------------------------------
41 # PART C OF THE EQUATION (A/B) ** C
42 # ------------------------------------------------------------------
43 C_1 = C_0 * (C_87 ** mp.mpc(X))
44 C_2 = mp.mpc((X - mp.mpf(8)) / mp.mpf(24))
45 C = C_1 * C_2
47 # ------------------------------------------------------------------
48 # EXPM = (A/B)**C
49 # ------------------------------------------------------------------
50 EXPM = (A / B) ** C
52 # ------------------------------------------------------------------
53 # COMPUTE ALFA_MINUS_HALF_1, 2, 3
54 # ------------------------------------------------------------------
55 ALFA_MINUS_HALF_1 = mp.mpc(C_0) * (C_87 ** (mp.mpc(X) + EXPM))
56 ALFA_MINUS_HALF_2 = (X - mp.mpf(8)) / (
57 (X * X) - mp.mpf(16) * X + mp.mpf(80)
58 )
59 ALFA_MINUS_HALF_3 = (mp.mpf(9) * X - mp.mpf(8)) / (mp.mpf(8) * EXPM)
61 # ALFA_MINUS_HALF = (ALFA_MINUS_HALF_1 * ALFA_MINUS_HALF_2) ** ALFA_MINUS_HALF_3
62 ALFA_MINUS_HALF = (ALFA_MINUS_HALF_1 * ALFA_MINUS_HALF_2) ** mp.mpc(
63 ALFA_MINUS_HALF_3
64 )
66 # ALFA_SQUARE = (ALFA_MINUS_HALF) ** 2
67 ALFA_SQUARE = ALFA_MINUS_HALF ** mp.mpf(2)
69 # FINAL ALFA = 1 / ALFA_SQUARE
70 ALFA_FINAL = mp.mpf(1) / ALFA_SQUARE
72 # ------------------------------------------------------------------
73 # POLAR AND COMPONENT VALUES
74 # ------------------------------------------------------------------
75 REAL_PART = mp.re(ALFA_FINAL)
76 IMAG_PART = mp.im(ALFA_FINAL)
77 ABSOL_VALUE = abs(ALFA_FINAL)
79 # Angle Theta in radians: atan2(imag, real) or arg(ALFA_FINAL)
80 THETA = mp.atan2(IMAG_PART, REAL_PART)
82 # Angle Theta in degrees
83 THETA_DEG = (THETA * mp.mpf(180)) / C_8
85 # ------------------------------------------------------------------
86 # WRITE TO FILE (Matching Fortran output structure)
87 # ------------------------------------------------------------------
88 f.write("LOOP VARIABLE X......................................\n")
89 f.write(f" {mp.nstr(X, mp.mp.dps)}\n")
90 f.write("_____________________________________________________\n")
92 f.write("PART A...............................................\n")
93 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(A, mp.mp.dps)}\n")
94 f.write("_____________________________________________________\n")
96 f.write("PART B...............................................\n")
97 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(B_1, mp.mp.dps)}\n")
98 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(B_2, mp.mp.dps)}\n")
99 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(B_3, mp.mp.dps)}\n")
100 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(B, mp.mp.dps)}\n")
101 f.write("_____________________________________________________\n")
103 f.write("PART C...............................................\n")
104 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(C_1, mp.mp.dps)}\n")
105 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(C_2, mp.mp.dps)}\n")
106 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(C, mp.mp.dps)}\n")
107 f.write("_____________________________________________________\n")
109 f.write("EXPONENT MAIN = (A/B)**C.............................\n")
110 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(EXPM, mp.mp.dps)}\n")
111 f.write("_____________________________________________________\n")
113 f.write("ALFA ^ ( -1/2 ) PART.................................\n")
114 f.write(
115 f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(ALFA_MINUS_HALF_1, mp.mp.dps)}\n"
116 )
117 f.write(
118 f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(ALFA_MINUS_HALF_2, mp.mp.dps)}\n"
119 )
120 f.write(
121 f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(ALFA_MINUS_HALF_3, mp.mp.dps)}\n"
122 )
123 f.write(
124 f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(ALFA_MINUS_HALF, mp.mp.dps)}\n"
125 )
126 f.write("ALFA SQUARE_________________________________________\n")
127 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(ALFA_SQUARE, mp.mp.dps)}\n")
128 f.write("_____________________________________________________\n")
130 f.write("ALPHA FINAL = RECIPROCAL OF ALFA TO POWER MINUS 1____\n")
131 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(ALFA_FINAL, mp.mp.dps)}\n")
132 f.write("_____________________________________________________\n")
134 f.write("REAL PART OF ALPHA...................................\n")
135 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(REAL_PART, mp.mp.dps)}\n")
137 f.write("IMAGINARY PART OF ALPHA..............................\n")
138 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(IMAG_PART, mp.mp.dps)}\n")
139 f.write("_____________________________________________________\n")
141 f.write("ABSOLUTE VALUE = MODULUS OF ALFA.....................\n")
142 f.write(f" {mp.nstr(X, mp.mp.dps)} {mp.nstr(ABSOL_VALUE, mp.mp.dps)}\n")
144 f.write("ANGLE THETA OF POLAR FORM............................\n")
145 f.write(f" {mp.nstr(THETA, mp.mp.dps)}\n")
147 f.write("ANGLE THETA IN DEGREES...............................\n")
148 f.write(f" {mp.nstr(THETA_DEG, mp.mp.dps)}\n")
149 f.write("_____________________________________________________\n")
151 print(
152 f"Calculations complete. Output saved to {output_filename} with precision = {mp.mp.dps} decimal places."
153 )

Comments powered by CComment