1 | #include "mex.h" |
---|
2 | #include "elempass.h" |
---|
3 | #include "../atlalib.c" |
---|
4 | #include <stdlib.h> |
---|
5 | #include <math.h> |
---|
6 | |
---|
7 | /******************************************************************************/ |
---|
8 | /* PHYSICS SECTION ************************************************************/ |
---|
9 | |
---|
10 | void bl11wiggler (double *r) |
---|
11 | { /* K - is the quadrupole strength defined as |
---|
12 | (e/Eo)(dBz/dx) [1/m^2] |
---|
13 | another notation: g0 [DESY paper] |
---|
14 | */ |
---|
15 | double x, px, y, py, ct, dp; |
---|
16 | |
---|
17 | |
---|
18 | x = r[0]; |
---|
19 | px = r[1]; |
---|
20 | y = r[2]; |
---|
21 | py = r[3]; |
---|
22 | dp = r[4]; |
---|
23 | ct = r[5]; |
---|
24 | |
---|
25 | r[0] = -7.0901531e-9*dp + 2.1285135e-8*pow(dp,2) - 4.2582822e-8*pow(dp,3) + |
---|
26 | 7.0986884e-8*pow(dp,4) - 1.0650226e-7*pow(dp,5) + 0.17500251*px - |
---|
27 | 0.17500917*dp*px + 0.17501998000000002*pow(dp,2)*px - |
---|
28 | 0.17503495*pow(dp,3)*px + 0.17505407*pow(dp,4)*px + |
---|
29 | 0.00046615681999999994*pow(px,2) - 0.0013991186*dp*pow(px,2) + |
---|
30 | 0.0028002125*pow(dp,2)*pow(px,2) - |
---|
31 | 0.0046714454*pow(dp,3)*pow(px,2) + |
---|
32 | 0.00009415890799999999*pow(px,3) - 0.00051283918*dp*pow(px,3) + |
---|
33 | 0.0016227193*pow(dp,2)*pow(px,3) + 0.0026325028*pow(px,4) - |
---|
34 | 0.013178106*dp*pow(px,4) + 0.0017739152000000001*pow(px,5) - |
---|
35 | 0.0035151788*pow(py,2) + 0.010545058000000001*dp*pow(py,2) - |
---|
36 | 0.021089225*pow(dp,2)*pow(py,2) + |
---|
37 | 0.035147337*pow(dp,3)*pow(py,2) - 0.00017496961*px*pow(py,2) + |
---|
38 | 0.00099137193*dp*px*pow(py,2) - |
---|
39 | 0.0032073346*pow(dp,2)*px*pow(py,2) - |
---|
40 | 0.013165211000000001*pow(px,2)*pow(py,2) + |
---|
41 | 0.065902871*dp*pow(px,2)*pow(py,2) - |
---|
42 | 0.015448497*pow(px,3)*pow(py,2) + 0.0028251989*pow(py,4) - |
---|
43 | 0.014140680000000001*dp*pow(py,4) + 0.0053600538*px*pow(py,4) + |
---|
44 | 1.0000463*x - 0.00009252638599999999*dp*x + 0.00013881863*pow(dp,2)*x - |
---|
45 | 0.00018515365*pow(dp,3)*x + 0.00023154902*pow(dp,4)*x + |
---|
46 | 0.010655106000000001*px*x - 0.021325115000000002*dp*px*x + |
---|
47 | 0.032025542*pow(dp,2)*px*x - 0.042771913*pow(dp,3)*px*x + |
---|
48 | 0.0027780014999999997*pow(px,2)*x - |
---|
49 | 0.012957015999999998*dp*pow(px,2)*x + |
---|
50 | 0.035163931*pow(dp,2)*pow(px,2)*x + 0.27363095*pow(px,3)*x - |
---|
51 | 1.0952354*dp*pow(px,3)*x + 0.076715563*pow(px,4)*x - |
---|
52 | 0.0022329564999999997*pow(py,2)*x + 0.010693406*dp*pow(py,2)*x - |
---|
53 | 0.029377954*pow(dp,2)*pow(py,2)*x - 0.75876294*px*pow(py,2)*x + |
---|
54 | 3.0366792*dp*px*pow(py,2)*x - 0.39326769*pow(px,2)*pow(py,2)*x + |
---|
55 | 0.047007114*pow(py,4)*x + 6.4772815e-7*pow(x,2) - |
---|
56 | 0.000090698616*dp*pow(x,2) + 0.00027017976*pow(dp,2)*pow(x,2) - |
---|
57 | 0.0005391435999999999*pow(dp,3)*pow(x,2) + 0.031424381*px*pow(x,2) - |
---|
58 | 0.11535896999999999*dp*px*pow(x,2) + |
---|
59 | 0.25184769*pow(dp,2)*px*pow(x,2) + 6.0046889*pow(px,2)*pow(x,2) - |
---|
60 | 18.026116000000002*dp*pow(px,2)*pow(x,2) + |
---|
61 | 1.4565705*pow(px,3)*pow(x,2) - 5.735196*pow(py,2)*pow(x,2) + |
---|
62 | 17.214564000000003*dp*pow(py,2)*pow(x,2) - |
---|
63 | 3.7239512*px*pow(py,2)*pow(x,2) + 0.19265772*pow(x,3) - |
---|
64 | 0.38537434*dp*pow(x,3) + 0.57825596*pow(dp,2)*pow(x,3) + |
---|
65 | 45.749988*px*pow(x,3) - 91.590025*dp*px*pow(x,3) + |
---|
66 | 14.753778*pow(px,2)*pow(x,3) - 12.919905*pow(py,2)*pow(x,3) + |
---|
67 | 0.0014447703999999999*pow(x,4) - 0.25241305999999997*dp*pow(x,4) + |
---|
68 | 81.52341*px*pow(x,4) + 323.09572000000003*pow(x,5) - |
---|
69 | 0.045491972*py*y + 0.09096779299999999*dp*py*y - |
---|
70 | 0.13642689*pow(dp,2)*py*y + 0.1818687*pow(dp,3)*py*y - |
---|
71 | 0.0023456997*px*py*y + 0.012905401*dp*px*py*y - |
---|
72 | 0.037550616*pow(dp,2)*px*py*y - 0.77470123*pow(px,2)*py*y + |
---|
73 | 3.1003242*dp*pow(px,2)*py*y - 0.26313788*pow(px,3)*py*y + |
---|
74 | 0.22718526*pow(py,3)*y - 0.9093159099999999*dp*pow(py,3)*y + |
---|
75 | 0.17637334*px*pow(py,3)*y - 0.056483421*py*x*y + 0.21064962*dp*py*x*y - |
---|
76 | 0.46253504999999995*pow(dp,2)*py*x*y - 22.939951999999998*px*py*x*y + |
---|
77 | 68.853719*dp*px*py*x*y - 7.2708048*pow(px,2)*py*x*y + |
---|
78 | 1.735616*pow(py,3)*x*y - 134.14494*py*pow(x,2)*y + |
---|
79 | 268.48339*dp*py*pow(x,2)*y - 76.281661*px*py*pow(x,2)*y - |
---|
80 | 323.92665*py*pow(x,3)*y + 0.000084597284*pow(y,2) - |
---|
81 | 0.00017130694*dp*pow(y,2) + |
---|
82 | 0.00026010924000000003*pow(dp,2)*pow(y,2) - |
---|
83 | 0.00035096928*pow(dp,3)*pow(y,2) - 0.012019481*px*pow(y,2) + |
---|
84 | 0.05618572*dp*px*pow(y,2) - |
---|
85 | 0.13251253999999998*pow(dp,2)*px*pow(y,2) - |
---|
86 | 5.7342371*pow(px,2)*pow(y,2) + 17.209136*dp*pow(px,2)*pow(y,2) - |
---|
87 | 1.1354968*pow(px,3)*pow(y,2) + 5.0787701*pow(py,2)*pow(y,2) - |
---|
88 | 15.244260999999998*dp*pow(py,2)*pow(y,2) + |
---|
89 | 2.3110962*px*pow(py,2)*pow(y,2) - 0.53704976*x*pow(y,2) + |
---|
90 | 1.0740506*dp*x*pow(y,2) - 1.6111701*pow(dp,2)*x*pow(y,2) - |
---|
91 | 131.06749*px*x*pow(y,2) + 262.28827*dp*px*x*pow(y,2) - |
---|
92 | 34.633437*pow(px,2)*x*pow(y,2) + 25.753281*pow(py,2)*x*pow(y,2) + |
---|
93 | 0.27035345*pow(x,2)*pow(y,2) + |
---|
94 | 0.7088587900000001*dp*pow(x,2)*pow(y,2) - |
---|
95 | 421.93696*px*pow(x,2)*pow(y,2) - 3299.4019*pow(x,3)*pow(y,2) + |
---|
96 | 41.188846999999996*py*pow(y,3) - 82.423315*dp*py*pow(y,3) + |
---|
97 | 13.108201*px*py*pow(y,3) + 202.72644999999997*py*x*pow(y,3) - |
---|
98 | 0.059987627*pow(y,4) - 0.018133504*dp*pow(y,4) + |
---|
99 | 28.305623999999998*px*pow(y,4) + 1290.3802*x*pow(y,4); |
---|
100 | |
---|
101 | r[1] = -8.1082608e-8*dp + 1.6223047e-7*pow(dp,2) - 2.4340624e-7*pow(dp,3) + |
---|
102 | 3.2462451e-7*pow(dp,4) - 4.0589979e-7*pow(dp,5) + 1.0000463*px - |
---|
103 | 0.000092525523*dp*px + 0.00013881517*pow(dp,2)*px - |
---|
104 | 0.00018514501000000002*pow(dp,3)*px + |
---|
105 | 0.00023153174000000001*pow(dp,4)*px - |
---|
106 | 0.0053276862999999995*pow(px,2) + 0.010647557*dp*pow(px,2) - |
---|
107 | 0.015951968*pow(dp,2)*pow(px,2) + |
---|
108 | 0.021233266999999997*pow(dp,3)*pow(px,2) + 0.0031789209*pow(px,3) - |
---|
109 | 0.010872446000000001*dp*pow(px,3) + |
---|
110 | 0.024417363*pow(dp,2)*pow(px,3) - 0.59382684*pow(px,4) + |
---|
111 | 2.3751982*dp*pow(px,4) + 0.1367672*pow(px,5) + |
---|
112 | 0.0053249784*pow(py,2) - 0.010637325*dp*pow(py,2) + |
---|
113 | 0.015927265*pow(dp,2)*pow(py,2) - |
---|
114 | 0.021185021000000002*pow(dp,3)*pow(py,2) - |
---|
115 | 0.008851347399999999*px*pow(py,2) + |
---|
116 | 0.029955970999999998*dp*px*pow(py,2) - |
---|
117 | 0.066716897*pow(dp,2)*px*pow(py,2) + |
---|
118 | 3.4840881*pow(px,2)*pow(py,2) - 13.933735*dp*pow(px,2)*pow(py,2) - |
---|
119 | 1.3931154*pow(px,3)*pow(py,2) - 0.56738827*pow(py,4) + |
---|
120 | 2.2687176*dp*pow(py,4) + 0.5408207199999999*px*pow(py,4) + |
---|
121 | 0.00052868308*x - 0.00052877001*dp*x + 0.00052905238*pow(dp,2)*x - |
---|
122 | 0.00052953024*pow(dp,3)*x + 0.00053020368*pow(dp,4)*x - |
---|
123 | 4.3376602999999996e-6*px*x - 0.00016450052*dp*px*x + |
---|
124 | 0.0005065690400000001*pow(dp,2)*px*x - |
---|
125 | 0.0010219708000000001*pow(dp,3)*px*x + 0.069722739*pow(px,2)*x - |
---|
126 | 0.18811301*dp*pow(px,2)*x + 0.35521111*pow(dp,2)*pow(px,2)*x - |
---|
127 | 12.009954*pow(px,3)*x + 36.024276*dp*pow(px,3)*x + |
---|
128 | 4.24886*pow(px,4)*x - 0.06611057299999999*pow(py,2)*x + |
---|
129 | 0.17726217*dp*pow(py,2)*x - 0.33347997*pow(dp,2)*pow(py,2)*x + |
---|
130 | 35.482701*px*pow(py,2)*x - 106.40817*dp*px*pow(py,2)*x - |
---|
131 | 26.303508*pow(px,2)*pow(py,2)*x + 3.5025797*pow(py,4)*x - |
---|
132 | 0.000024786842*pow(x,2) - 0.0009647889799999999*dp*pow(x,2) + |
---|
133 | 0.0019546764*pow(dp,2)*pow(x,2) - |
---|
134 | 0.0029451521*pow(dp,3)*pow(x,2) + 0.57799368*px*pow(x,2) - |
---|
135 | 1.1561609*dp*px*pow(x,2) + 1.7347961*pow(dp,2)*px*pow(x,2) - |
---|
136 | 68.636259*pow(px,2)*pow(x,2) + 137.16966*dp*pow(px,2)*pow(x,2) + |
---|
137 | 56.152606*pow(px,3)*pow(x,2) + |
---|
138 | 68.60583799999999*pow(py,2)*pow(x,2) - |
---|
139 | 137.03676000000002*dp*pow(py,2)*pow(x,2) - |
---|
140 | 176.14078*px*pow(py,2)*pow(x,2) + 2.2018812*pow(x,3) - |
---|
141 | 2.2025445*dp*pow(x,3) + 2.2043319*pow(dp,2)*pow(x,3) - |
---|
142 | 0.090243942*px*pow(x,3) - 0.72161976*dp*px*pow(x,3) + |
---|
143 | 402.41303999999997*pow(px,2)*pow(x,3) - |
---|
144 | 426.74719999999996*pow(py,2)*pow(x,3) - |
---|
145 | 0.25576783000000003*pow(x,4) - 2.3237497*dp*pow(x,4) + |
---|
146 | 1615.6956*px*pow(x,4) + 3692.9987*pow(x,5) - 0.000043323744*py*y + |
---|
147 | 0.00029489547*dp*py*y - 0.00075470007*pow(dp,2)*py*y + |
---|
148 | 0.0014227437*pow(dp,3)*py*y - 0.13145644*px*py*y + |
---|
149 | 0.3531415*dp*px*py*y - 0.66506515*pow(dp,2)*px*py*y + |
---|
150 | 34.939597*pow(px,2)*py*y - 104.765*dp*pow(px,2)*py*y - |
---|
151 | 19.081098*pow(px,3)*py*y - 11.459814999999999*pow(py,3)*y + |
---|
152 | 34.351481*dp*pow(py,3)*y + 13.993312*px*pow(py,3)*y - |
---|
153 | 1.0739636*py*x*y + 2.147873*dp*py*x*y - 3.2222425*pow(dp,2)*py*x*y + |
---|
154 | 268.19402*px*py*x*y - 535.51935*dp*px*py*x*y - |
---|
155 | 359.86807999999996*pow(px,2)*py*x*y + |
---|
156 | 91.20047299999999*pow(py,3)*x*y - 0.48587206*py*pow(x,2)*y + |
---|
157 | 4.4974555*dp*py*pow(x,2)*y - 2492.1132*px*py*pow(x,2)*y - |
---|
158 | 6597.9197*py*pow(x,3)*y - 0.000058737291999999996*pow(y,2) + |
---|
159 | 0.0010598295*dp*pow(y,2) - |
---|
160 | 0.0020606928999999997*pow(dp,2)*pow(y,2) + |
---|
161 | 0.0030613761*pow(dp,3)*pow(y,2) - 0.53690123*px*pow(y,2) + |
---|
162 | 1.0735984*dp*px*pow(y,2) - 1.6102522*pow(dp,2)*px*pow(y,2) + |
---|
163 | 65.518783*pow(px,2)*pow(y,2) - 130.81834*dp*pow(px,2)*pow(y,2) - |
---|
164 | 67.776979*pow(px,3)*pow(y,2) - 65.44291*pow(py,2)*pow(y,2) + |
---|
165 | 130.57113*dp*pow(py,2)*pow(y,2) + |
---|
166 | 145.52013*px*pow(py,2)*pow(y,2) - 6.1370529*x*pow(y,2) + |
---|
167 | 6.1363592*dp*x*pow(y,2) - 6.1381035*pow(dp,2)*x*pow(y,2) - |
---|
168 | 0.3828955*px*x*pow(y,2) + 4.1880728*dp*px*x*pow(y,2) - |
---|
169 | 1309.7892*pow(px,2)*x*pow(y,2) + 986.3035*pow(py,2)*x*pow(y,2) - |
---|
170 | 0.76002119*pow(x,2)*pow(y,2) + 18.889076*dp*pow(x,2)*pow(y,2) - |
---|
171 | 9895.699799999999*px*pow(x,2)*pow(y,2) - |
---|
172 | 37703.386*pow(x,3)*pow(y,2) + 0.29617093*py*pow(y,3) - |
---|
173 | 1.6805354*dp*py*pow(y,3) + 700.04992*px*py*pow(y,3) + |
---|
174 | 5159.2203*py*x*pow(y,3) - 0.29108761*pow(y,4) - |
---|
175 | 1.6811974*dp*pow(y,4) + 1289.4713*px*pow(y,4) + |
---|
176 | 14743.345000000001*x*pow(y,4); |
---|
177 | |
---|
178 | r[2] = 0.17497891999999998*py - 0.17493511*dp*py + 0.17486859*pow(dp,2)*py - |
---|
179 | 0.17477934*pow(dp,3)*py + 0.17466737999999998*pow(dp,4)*py - |
---|
180 | 0.00093220474*px*py + 0.0027976051000000004*dp*px*py - |
---|
181 | 0.0055983496*pow(dp,2)*px*py + 0.009337744799999999*pow(dp,3)*px*py - |
---|
182 | 0.00026269109*pow(px,2)*py + 0.0014444269999999999*dp*pow(px,2)*py - |
---|
183 | 0.0045954409*pow(dp,2)*pow(px,2)*py - 0.013323805*pow(px,3)*py + |
---|
184 | 0.066673783*dp*pow(px,3)*py - 0.0084400798*pow(px,4)*py - |
---|
185 | 0.00011204161*pow(py,3) + 0.0005196842400000001*dp*pow(py,3) - |
---|
186 | 0.0014778735000000002*pow(dp,2)*pow(py,3) + |
---|
187 | 0.017670001*px*pow(py,3) - 0.088403375*dp*px*pow(py,3) + |
---|
188 | 0.012871718*pow(px,2)*pow(py,3) - 0.0037092953*pow(py,5) - |
---|
189 | 0.010653862*py*x + 0.021319136*dp*py*x - 0.032009046*pow(dp,2)*py*x + |
---|
190 | 0.04273682*pow(dp,3)*py*x - 0.0049344296*px*py*x + |
---|
191 | 0.023426268*dp*px*py*x - 0.064103649*pow(dp,2)*px*py*x - |
---|
192 | 0.8527300200000001*pow(px,2)*py*x + 3.4127259*dp*pow(px,2)*py*x - |
---|
193 | 0.28913160000000004*pow(px,3)*py*x + 0.26354119*pow(py,3)*x - |
---|
194 | 1.0546669*dp*pow(py,3)*x + 0.22765327000000002*px*pow(py,3)*x - |
---|
195 | 0.027872518*py*pow(x,2) + 0.10469499*dp*py*pow(x,2) - |
---|
196 | 0.23049649*pow(dp,2)*py*pow(x,2) - 12.0078*px*py*pow(x,2) + |
---|
197 | 36.043349*dp*px*py*pow(x,2) - 4.0788048*pow(px,2)*py*pow(x,2) + |
---|
198 | 1.1012564*pow(py,3)*pow(x,2) - 45.744058*py*pow(x,3) + |
---|
199 | 91.56251400000001*dp*py*pow(x,3) - 27.340848*px*py*pow(x,3) - |
---|
200 | 75.332887*py*pow(x,4) + 0.99965487*y + 0.00069022618*dp*y - |
---|
201 | 0.0010352849*pow(dp,2)*y + 0.0013803022*pow(dp,3)*y - |
---|
202 | 0.0017252738*pow(dp,4)*y - 0.045503999999999996*px*y + |
---|
203 | 0.091015903*dp*px*y - 0.13654716*pow(dp,2)*px*y + |
---|
204 | 0.18210923*pow(dp,3)*px*y - 0.0027340192*pow(px,2)*y + |
---|
205 | 0.012779815000000002*dp*pow(px,2)*y - |
---|
206 | 0.034716912999999995*pow(dp,2)*pow(px,2)*y - |
---|
207 | 0.28954486*pow(px,3)*y + 1.1587379*dp*pow(px,3)*y - |
---|
208 | 0.07502729999999999*pow(px,4)*y - 0.0030851985*pow(py,2)*y + |
---|
209 | 0.010577695*dp*pow(py,2)*y - 0.023795324*pow(dp,2)*pow(py,2)*y + |
---|
210 | 0.9112131800000001*px*pow(py,2)*y - 3.6464184*dp*px*pow(py,2)*y + |
---|
211 | 0.31924628*pow(px,2)*pow(py,2)*y - 0.14545475000000002*pow(py,4)*y - |
---|
212 | 1.3039179e-6*x*y + 0.00016885406*dp*x*y - 0.00050266142*pow(dp,2)*x*y + |
---|
213 | 0.0010027663*pow(dp,3)*x*y - 0.056483681*px*x*y + 0.21065643*dp*px*x*y - |
---|
214 | 0.4625665*pow(dp,2)*px*x*y - 12.007387000000001*pow(px,2)*x*y + |
---|
215 | 36.041650000000004*dp*pow(px,2)*x*y - 2.7582384*pow(px,3)*x*y + |
---|
216 | 11.468661*pow(py,2)*x*y - 34.419985*dp*pow(py,2)*x*y + |
---|
217 | 6.2751134*px*pow(py,2)*x*y - 0.53704669*pow(x,2)*y + |
---|
218 | 1.0741246*dp*pow(x,2)*y - 1.6114845*pow(dp,2)*pow(x,2)*y - |
---|
219 | 134.16289*px*pow(x,2)*y + 268.55516*dp*px*pow(x,2)*y - |
---|
220 | 42.213002*pow(px,2)*pow(x,2)*y + 33.432414*pow(py,2)*pow(x,2)*y - |
---|
221 | 0.0070129182*pow(x,3)*y + 1.0343714*dp*pow(x,3)*y - |
---|
222 | 323.92934*px*pow(x,3)*y - 1649.6827*pow(x,4)*y - |
---|
223 | 0.036644354*py*pow(y,2) + 0.08978636699999999*dp*py*pow(y,2) - |
---|
224 | 0.15938364*pow(dp,2)*py*pow(y,2) + 11.468684*px*py*pow(y,2) - |
---|
225 | 34.419019*dp*px*py*pow(y,2) + 2.715799*pow(px,2)*py*pow(y,2) - |
---|
226 | 2.4393897*pow(py,3)*pow(y,2) + 131.05073000000002*py*x*pow(y,2) - |
---|
227 | 262.21781000000004*dp*py*x*pow(y,2) + |
---|
228 | 59.850387999999995*px*py*x*pow(y,2) + |
---|
229 | 368.13113*py*pow(x,2)*pow(y,2) - 0.17956436*pow(y,3) + |
---|
230 | 0.3590617*dp*pow(y,3) - 0.5384129200000001*pow(dp,2)*pow(y,3) + |
---|
231 | 41.179999*px*pow(y,3) - 82.387929*dp*px*pow(y,3) + |
---|
232 | 7.4329976*pow(px,2)*pow(y,3) - 21.927567*pow(py,2)*pow(y,3) - |
---|
233 | 0.1987844*x*pow(y,3) - 0.19618978*dp*x*pow(y,3) + |
---|
234 | 202.71693000000002*px*x*pow(y,3) + 2580.616*pow(x,2)*pow(y,3) - |
---|
235 | 116.16086999999999*py*pow(y,4) - 449.55066999999997*pow(y,5); |
---|
236 | |
---|
237 | r[3] = 0.99965487*py + 0.00069022249*dp*py - 0.0010352702*pow(dp,2)*py + |
---|
238 | 0.0013802653*pow(dp,3)*py - 0.0017252*pow(dp,4)*py + |
---|
239 | 0.045505877*px*py - 0.090994545*dp*px*py + 0.13645047*pow(dp,2)*px*py - |
---|
240 | 0.1818581*pow(dp,3)*px*py - 0.0095389879*pow(px,2)*py + |
---|
241 | 0.032789357*dp*pow(px,2)*py - 0.073924605*pow(dp,2)*pow(px,2)*py + |
---|
242 | 2.2971365*pow(px,3)*py - 9.187553*dp*pow(px,3)*py - |
---|
243 | 0.7111575099999999*pow(px,4)*py - 0.0021715683*pow(py,3) + |
---|
244 | 0.010446210000000001*dp*pow(py,3) - |
---|
245 | 0.028752935*pow(dp,2)*pow(py,3) - 2.2337413*px*pow(py,3) + |
---|
246 | 8.9326549*dp*px*pow(py,3) + 1.2348332*pow(px,2)*pow(py,3) - |
---|
247 | 0.1664766*pow(py,5) + 0.000022753218999999996*py*x + |
---|
248 | 0.000096685312*dp*py*x - 0.00035832168000000003*pow(dp,2)*py*x + |
---|
249 | 0.00076218377*pow(dp,3)*py*x - 0.13148671*px*py*x + |
---|
250 | 0.35325976*dp*px*py*x - 0.66535371*pow(dp,2)*px*py*x + |
---|
251 | 34.953711*pow(px,2)*py*x - 104.83670000000001*dp*pow(px,2)*py*x - |
---|
252 | 17.792740000000002*pow(px,3)*py*x - 11.467856000000001*pow(py,3)*x + |
---|
253 | 34.390508*dp*pow(py,3)*x + 15.320924*px*pow(py,3)*x - |
---|
254 | 0.5370676600000001*py*pow(x,2) + 1.0741296*dp*py*pow(x,2) - |
---|
255 | 1.6113788*pow(dp,2)*py*pow(x,2) + 134.20481*px*py*pow(x,2) - |
---|
256 | 268.19083*dp*px*py*pow(x,2) - 176.2727*pow(px,2)*py*pow(x,2) + |
---|
257 | 49.43295499999999*pow(py,3)*pow(x,2) + 0.16411103*py*pow(x,3) + |
---|
258 | 0.52105131*dp*py*pow(x,3) - 830.94073*px*py*pow(x,3) - |
---|
259 | 1649.9142*py*pow(x,4) - 0.0039441358*y + 0.0039433574*dp*y - |
---|
260 | 0.0039423435*pow(dp,2)*y + 0.0039410943*pow(dp,3)*y - |
---|
261 | 0.0039396097*pow(dp,4)*y - 0.000010290338000000001*px*y + |
---|
262 | 0.00019580724*dp*px*y - 0.0005565474799999999*pow(dp,2)*px*y + |
---|
263 | 0.001092529*pow(dp,3)*px*y - 0.081955682*pow(px,2)*y + |
---|
264 | 0.22572643*dp*pow(px,2)*y - 0.43131816*pow(dp,2)*pow(px,2)*y + |
---|
265 | 11.470407*pow(px,3)*y - 34.397608000000005*dp*pow(px,3)*y - |
---|
266 | 5.1032118*pow(px,4)*y - 0.057622416999999995*pow(py,2)*y + |
---|
267 | 0.19294975*dp*pow(py,2)*y - 0.4058942*pow(dp,2)*pow(py,2)*y - |
---|
268 | 33.077385*px*pow(py,2)*y + 99.16680299999999*dp*px*pow(py,2)*y + |
---|
269 | 24.337009*pow(px,2)*pow(py,2)*y - 5.4433578*pow(py,4)*y - |
---|
270 | 0.00011760492*x*y + 0.0021201803*dp*x*y - |
---|
271 | 0.004122689099999999*pow(dp,2)*x*y + 0.0061253586*pow(dp,3)*x*y - |
---|
272 | 1.0739939*px*x*y + 2.1478846*dp*px*x*y - 3.2221072*pow(dp,2)*px*x*y + |
---|
273 | 131.08196999999998*pow(px,2)*x*y - 261.8142*dp*pow(px,2)*x*y - |
---|
274 | 128.22902*pow(px,3)*x*y - 131.02506*pow(py,2)*x*y + |
---|
275 | 261.6991*dp*pow(py,2)*x*y + 298.59988999999996*px*pow(py,2)*x*y - |
---|
276 | 6.1370527*pow(x,2)*y + 6.1363588*dp*pow(x,2)*y - |
---|
277 | 6.1381029*pow(dp,2)*pow(x,2)*y - 0.12925899000000002*px*pow(x,2)*y + |
---|
278 | 3.4277395*dp*px*pow(x,2)*y - 1310.0878*pow(px,2)*pow(x,2)*y + |
---|
279 | 986.49396*pow(py,2)*pow(x,2)*y - 0.5073468*pow(x,3)*y + |
---|
280 | 12.595381000000001*dp*pow(x,3)*y - 6598.2427*px*pow(x,3)*y - |
---|
281 | 18851.692*pow(x,4)*y - 0.5386129900000001*py*pow(y,2) + |
---|
282 | 1.0767589*dp*py*pow(y,2) - 1.6140145*pow(dp,2)*py*pow(y,2) - |
---|
283 | 123.44973999999999*px*py*pow(y,2) + |
---|
284 | 246.38680000000002*dp*px*py*pow(y,2) + |
---|
285 | 167.77439999999999*pow(px,2)*py*pow(y,2) - |
---|
286 | 75.480215*pow(py,3)*pow(y,2) + 0.092986515*py*x*pow(y,2) - |
---|
287 | 2.6562255*dp*py*x*pow(y,2) + 2100.7015*px*py*x*pow(y,2) + |
---|
288 | 7740.153600000001*py*pow(x,2)*pow(y,2) - 2.0518361*pow(y,3) + |
---|
289 | 2.0502438*dp*pow(y,3) - 2.0472498*pow(dp,2)*pow(y,3) + |
---|
290 | 0.15401796*px*pow(y,3) - 1.2541835*dp*px*pow(y,3) + |
---|
291 | 394.76833999999997*pow(px,2)*pow(y,3) - |
---|
292 | 554.03261*pow(py,2)*pow(y,3) - 1.1628486*x*pow(y,3) - |
---|
293 | 6.7307959*dp*x*pow(y,3) + 5159.2078*px*x*pow(y,3) + |
---|
294 | 29486.688000000002*pow(x,2)*pow(y,3) - 2246.4465*py*pow(y,4) - |
---|
295 | 5135.579199999999*pow(y,5); |
---|
296 | |
---|
297 | r[5] = 1.*ct + 2.6274183e-6*dp - 3.9414962e-6*pow(dp,2) + |
---|
298 | 5.255346099999999e-6*pow(dp,3) - 6.569132299999999e-6*pow(dp,4) + |
---|
299 | 7.8827085e-6*pow(dp,5) + 7.0991885e-9*px - 2.8398793000000002e-8*dp*px + |
---|
300 | 7.1005537e-8*pow(dp,2)*px - 1.4203513e-7*pow(dp,3)*px + |
---|
301 | 2.4861574e-7*pow(dp,4)*px - 0.087500538*pow(px,2) + |
---|
302 | 0.17500378*dp*pow(px,2) - 0.26251191*pow(dp,2)*pow(px,2) + |
---|
303 | 0.35002708*pow(dp,3)*pow(px,2) - 0.00046588626*pow(px,3) + |
---|
304 | 0.0018634463*dp*pow(px,3) - 0.0046585726*pow(dp,2)*pow(px,3) - |
---|
305 | 0.000068537895*pow(px,4) + 0.00045322792999999997*dp*pow(px,4) - |
---|
306 | 0.0026287146*pow(px,5) - 0.087497755*pow(py,2) + |
---|
307 | 0.17498939*dp*pow(py,2) - 0.26247102*pow(dp,2)*pow(py,2) + |
---|
308 | 0.34993879*pow(dp,3)*pow(py,2) + 0.004447171799999999*px*pow(py,2) - |
---|
309 | 0.017788253*dp*px*pow(py,2) + |
---|
310 | 0.044470036000000004*pow(dp,2)*px*pow(py,2) + |
---|
311 | 0.00028792687*pow(px,2)*pow(py,2) - |
---|
312 | 0.0019747266*dp*pow(px,2)*pow(py,2) + |
---|
313 | 0.026466668000000002*pow(px,3)*pow(py,2) - |
---|
314 | 0.000032735306*pow(py,4) + 0.00023687572000000002*dp*pow(py,4) - |
---|
315 | 0.020486848000000002*px*pow(py,4) + 8.1691474e-8*x - 3.2488387e-7*dp*x + |
---|
316 | 7.3058138e-7*pow(dp,2)*x - 1.2987792e-6*pow(dp,3)*x + |
---|
317 | 2.0296544e-6*pow(dp,4)*x + 6.278515900000001e-9*px*x - |
---|
318 | 5.7121893e-8*dp*px*x + 2.2283613e-7*pow(dp,2)*px*x - |
---|
319 | 6.057685499999999e-7*pow(dp,3)*px*x - |
---|
320 | 0.010647044999999999*pow(px,2)*x + 0.031932439*dp*pow(px,2)*x - |
---|
321 | 0.063847455*pow(dp,2)*pow(px,2)*x - 0.0014425215*pow(px,3)*x + |
---|
322 | 0.0090555348*dp*pow(px,3)*x - 0.27344884999999997*pow(px,4)*x + |
---|
323 | 0.010646765*pow(py,2)*x - 0.031930595*dp*pow(py,2)*x + |
---|
324 | 0.063840982*pow(dp,2)*pow(py,2)*x + 0.0037615684*px*pow(py,2)*x - |
---|
325 | 0.024250787*dp*px*pow(py,2)*x + 1.6105983*pow(px,2)*pow(py,2)*x - |
---|
326 | 0.26349095*pow(py,4)*x + 0.00026437278*pow(x,2) - |
---|
327 | 0.00052900349*dp*pow(x,2) + 0.00079417303*pow(dp,2)*pow(x,2) - |
---|
328 | 0.0010601626*pow(dp,3)*pow(x,2) + 0.000083770635*px*pow(x,2) - |
---|
329 | 0.0003351236*dp*px*pow(x,2) + 0.00083796904*pow(dp,2)*px*pow(x,2) - |
---|
330 | 0.007094425099999999*pow(px,2)*pow(x,2) + |
---|
331 | 0.049428858*dp*pow(px,2)*pow(x,2) - 6.0009871*pow(px,3)*pow(x,2) + |
---|
332 | 0.0053408891*pow(py,2)*pow(x,2) - |
---|
333 | 0.042401124*dp*pow(py,2)*pow(x,2) + |
---|
334 | 17.732113000000002*px*pow(py,2)*pow(x,2) + 0.00032159699*pow(x,3) - |
---|
335 | 0.0013030584*dp*pow(x,3) + 0.0029448491*pow(dp,2)*pow(x,3) + |
---|
336 | 0.000035780088*px*pow(x,3) - 0.00030294937000000004*dp*px*pow(x,3) - |
---|
337 | 45.711375*pow(px,2)*pow(x,3) + |
---|
338 | 45.702132999999996*pow(py,2)*pow(x,3) + 0.55053427*pow(x,4) - |
---|
339 | 1.1017585*dp*pow(x,4) + 0.20187993999999998*px*pow(x,4) + |
---|
340 | 0.4647604*pow(x,5) - 2.0037392000000002e-8*py*y + 1.2884328e-7*dp*py*y - |
---|
341 | 4.4325671e-7*pow(dp,2)*py*y + 1.1286815e-6*pow(dp,3)*py*y + |
---|
342 | 0.09098868700000001*px*py*y - 0.27292937*dp*px*py*y + |
---|
343 | 0.54577507*pow(dp,2)*px*py*y + 0.0009044242000000001*pow(px,2)*py*y - |
---|
344 | 0.009880756*dp*pow(px,2)*py*y + 1.0636488*pow(px,3)*py*y - |
---|
345 | 0.0008466107900000001*pow(py,3)*y + 0.0059932824*dp*pow(py,3)*y - |
---|
346 | 1.1378777*px*pow(py,3)*y - 0.00018421122*py*x*y + |
---|
347 | 0.0007369218*dp*py*x*y - 0.0018426446999999999*pow(dp,2)*py*x*y + |
---|
348 | 0.022640595*px*py*x*y - 0.17280176*dp*px*py*x*y + |
---|
349 | 34.924864*pow(px,2)*py*x*y - 11.465421*pow(py,3)*x*y - |
---|
350 | 0.00020294750000000001*py*pow(x,2)*y + 0.0015193151*dp*py*pow(x,2)*y + |
---|
351 | 268.03727*px*py*pow(x,2)*y - 1.0950493*py*pow(x,3)*y - |
---|
352 | 0.0019723584999999997*pow(y,2) + 0.0039450655*dp*pow(y,2) - |
---|
353 | 0.005918447300000001*pow(dp,2)*pow(y,2) + |
---|
354 | 0.0078928312*pow(dp,3)*pow(y,2) - 0.00017735312*px*pow(y,2) + |
---|
355 | 0.00070943234*dp*px*pow(y,2) - 0.0017736968*pow(dp,2)*px*pow(y,2) - |
---|
356 | 0.018908593*pow(px,2)*pow(y,2) + |
---|
357 | 0.055548143*dp*pow(px,2)*pow(y,2) + 5.7304808*pow(px,3)*pow(y,2) - |
---|
358 | 0.0022227324*pow(py,2)*pow(y,2) + |
---|
359 | 0.028995814*dp*pow(py,2)*pow(y,2) - |
---|
360 | 16.537766*px*pow(py,2)*pow(y,2) - 0.0010600452*x*pow(y,2) + |
---|
361 | 0.004123027600000001*dp*x*pow(y,2) - |
---|
362 | 0.00919018*pow(dp,2)*x*pow(y,2) - 0.00017866282*px*x*pow(y,2) + |
---|
363 | 0.0014840844*dp*px*x*pow(y,2) + 130.93131*pow(px,2)*x*pow(y,2) - |
---|
364 | 130.98424*pow(py,2)*x*pow(y,2) - 3.0700139*pow(x,2)*pow(y,2) + |
---|
365 | 6.1454405*dp*pow(x,2)*pow(y,2) - 1.9233416*px*pow(x,2)*pow(y,2) - |
---|
366 | 6.2972657*pow(x,3)*pow(y,2) + 0.000012639294999999999*py*pow(y,3) - |
---|
367 | 0.00018420748*dp*py*pow(y,3) - 82.30040000000001*px*py*pow(y,3) + |
---|
368 | 0.78783182*py*x*pow(y,3) - 0.51326924*pow(y,4) + |
---|
369 | 1.0264577*dp*pow(y,4) + 0.20718673999999998*px*pow(y,4) + |
---|
370 | 1.6828279*x*pow(y,4); |
---|
371 | |
---|
372 | |
---|
373 | } |
---|
374 | |
---|
375 | void BL11WolskiPass(double *r, int num_particles) |
---|
376 | { int c; |
---|
377 | double *r6; |
---|
378 | |
---|
379 | for(c = 0;c<num_particles;c++) |
---|
380 | { r6 = r+c*6; |
---|
381 | |
---|
382 | if(!mxIsNaN(r6[0]) & mxIsFinite(r6[4])) |
---|
383 | |
---|
384 | { |
---|
385 | bl11wiggler(r6); |
---|
386 | |
---|
387 | } |
---|
388 | |
---|
389 | } |
---|
390 | } |
---|
391 | |
---|
392 | /********** END PHYSICS SECTION ***********************************************/ |
---|
393 | /******************************************************************************/ |
---|
394 | |
---|
395 | /********** WINDOWS DLL GATEWAY SECTION ***************************************/ |
---|
396 | |
---|
397 | |
---|
398 | ExportMode int* passFunction(const mxArray *ElemData, int *FieldNumbers, |
---|
399 | double *r_in, int num_particles, int mode) |
---|
400 | |
---|
401 | #define NUM_FIELDS_2_REMEMBER 6 |
---|
402 | |
---|
403 | { |
---|
404 | |
---|
405 | switch(mode) |
---|
406 | { case NO_LOCAL_COPY: /* Obsolete in AT1.3 et fields by names from MATLAB workspace */ |
---|
407 | { |
---|
408 | |
---|
409 | } break; |
---|
410 | |
---|
411 | case MAKE_LOCAL_COPY: /* Find field numbers first |
---|
412 | Save a list of field number in an array |
---|
413 | and make returnptr point to that array |
---|
414 | */ |
---|
415 | { |
---|
416 | |
---|
417 | } break; |
---|
418 | |
---|
419 | case USE_LOCAL_COPY: /* Get fields from MATLAB using field numbers |
---|
420 | The second argument ponter to the array of field |
---|
421 | numbers is previously created with |
---|
422 | QuadLinPass( ..., MAKE_LOCAL_COPY) |
---|
423 | */ |
---|
424 | |
---|
425 | { |
---|
426 | |
---|
427 | |
---|
428 | } break; |
---|
429 | |
---|
430 | } |
---|
431 | |
---|
432 | BL11WolskiPass (r_in, num_particles); |
---|
433 | return(NULL); |
---|
434 | } |
---|
435 | |
---|
436 | |
---|
437 | /********** END WINDOWS DLL GATEWAY SECTION ***************************************/ |
---|
438 | /********** MATLAB GATEWAY ***************************************/ |
---|
439 | |
---|
440 | void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) |
---|
441 | { |
---|
442 | int m, n; |
---|
443 | double *r_in; |
---|
444 | |
---|
445 | |
---|
446 | |
---|
447 | if(nrhs) |
---|
448 | { |
---|
449 | |
---|
450 | /* ALLOCATE memory for the output array of the same size as the input */ |
---|
451 | m = mxGetM(prhs[1]); |
---|
452 | n = mxGetN(prhs[1]); |
---|
453 | if(m!=6) |
---|
454 | {mexErrMsgTxt("Second argument must be a 6 x N matrix");} |
---|
455 | |
---|
456 | |
---|
457 | |
---|
458 | |
---|
459 | plhs[0] = mxDuplicateArray(prhs[1]); |
---|
460 | r_in = mxGetPr(plhs[0]); |
---|
461 | BL11WolskiPass (r_in, n); |
---|
462 | } |
---|
463 | else |
---|
464 | { /* return list of required fields */ |
---|
465 | plhs[0] = mxCreateCellMatrix(0,0); |
---|
466 | |
---|
467 | |
---|
468 | if(nlhs>1) /* Required and optional fields */ |
---|
469 | { plhs[1] = mxCreateCellMatrix(0,0); |
---|
470 | |
---|
471 | } |
---|
472 | } |
---|
473 | } |
---|
474 | |
---|
475 | |
---|