forked from m-a-d-n-e-s-s/madpy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
twoscalecoeffs.py
235 lines (207 loc) · 56.4 KB
/
twoscalecoeffs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
import math
'''
Tabulation of the twoscale coefficients, and a routine to compute the
scaling functions (Legendre polyn scaled and shifted to the unit
interval) solely to make the 1d example standalone.
'''
def twoscalecoeffs(k):
'''
Return the twoscale coefficients for the multiwavelets of order k.
Note that a cached value is returned ... if you want to modify it
take a copy first
'''
return __hg[k]
def pn(x,order):
'''
Evaluate the Legendre polynomials up to the given order at x
defined on [-1,1].
'''
p = range(order+1)
p[0] = 1
if order == 0:
return p
p[1] = x
for n in xrange(1,order):
p[n+1] = n*(x*p[n] - p[n-1])/(n+1) + x*p[n]
return p
phi_norms = [] # Cache sqrt(2*n+1)
def phi(x,k):
'''
Evaluate the shifted normalized Legendre polynomials up to the
given order at x defined on [0,1].
These are also our scaling functions, phi_i(x) , i=0..k-1
In addition to forming an orthonormal basis on [0,1] we have
phi_j(1/2-x) = (-1)^j phi_j(1/2+x)
(the wavelets are similar with phase (-1)^(j+k)).
'''
global phi_norms
if len(phi_norms) == 0:
for n in xrange(max(k,100)):
phi_norms.append(math.sqrt(2*n+1))
order = k-1
p = pn(2.*x-1,order)
for n in xrange(k):
p[n] = p[n]*phi_norms[n] # sqrt(2*n+1)
return p
__hg = {}
__hg[1] = [ [ 7.07106781186547462e-01 , 7.07106781186547462e-01 ] ,
[ 7.07106781186547462e-01 , -7.07106781186547462e-01 ] ]
__hg[2] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 6.12372435695794470e-01 , 3.53553390593273731e-01 ] ,
[ 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , -7.07106781186547462e-01 ] ,
[ 3.53553390593273731e-01 , 6.12372435695794470e-01 , -3.53553390593273731e-01 , 6.12372435695794470e-01 ] ]
__hg[3] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 ] ,
[ 2.35702260395515839e-01 , 4.08248290463863017e-01 , -5.27046276694729920e-01 , -2.35702260395515839e-01 , 4.08248290463863017e-01 , 5.27046276694729920e-01 ] ,
[ 0.00000000000000000e+00 , 1.76776695296636865e-01 , 6.84653196881457649e-01 , 0.00000000000000000e+00 , -1.76776695296636865e-01 , 6.84653196881457649e-01 ] ,
[ 2.63523138347364960e-01 , 4.56435464587638395e-01 , 4.71404520791031678e-01 , -2.63523138347364960e-01 , 4.56435464587638395e-01 , -4.71404520791031678e-01 ] ]
__hg[4] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 ] ,
[ 2.33853586673371333e-01 , 4.05046293650491274e-01 , -5.22912516583797227e-01 , 8.83883476483184327e-02 , -2.33853586673371333e-01 , 4.05046293650491274e-01 , 5.22912516583797227e-01 , 8.83883476483184327e-02 ] ,
[ 0.00000000000000000e+00 , 1.53392997769474099e-01 , 5.94088525786004573e-01 , -3.51467511677403643e-01 , 0.00000000000000000e+00 , -1.53392997769474099e-01 , 5.94088525786004573e-01 , 3.51467511677403643e-01 ] ,
[ 1.54303349962091912e-01 , 2.67261241912424397e-01 , 1.72516389835588563e-01 , -6.12372435695794470e-01 , -1.54303349962091912e-01 , 2.67261241912424397e-01 , -1.72516389835588563e-01 , -6.12372435695794470e-01 ] ,
[ 0.00000000000000000e+00 , 8.78668779193509109e-02 , 3.40306954864886324e-01 , 6.13571991077896395e-01 , 0.00000000000000000e+00 , -8.78668779193509109e-02 , 3.40306954864886324e-01 , -6.13571991077896395e-01 ] ,
[ 2.15645487294485683e-01 , 3.73508940416998003e-01 , 4.43622131141014231e-01 , 3.42326598440728824e-01 , -2.15645487294485683e-01 , 3.73508940416998003e-01 , -4.43622131141014231e-01 , 3.42326598440728824e-01 ] ]
__hg[5] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 2.33853586673371333e-01 , 4.05046293650491274e-01 , -5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , -2.33853586673371333e-01 , 4.05046293650491274e-01 , 5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 1.53093108923948618e-01 , 5.92927061281571133e-01 , -3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , -1.53093108923948618e-01 , 5.92927061281571133e-01 , 3.50780380010057014e-01 , 4.41941738241592164e-02 ] ,
[ 1.46647115021353303e-01 , 2.54000254000381009e-01 , 1.63956458945988232e-01 , -5.81987695247377923e-01 , 2.19970672532029926e-01 , -1.46647115021353303e-01 , 2.54000254000381009e-01 , -1.63956458945988232e-01 , -5.81987695247377923e-01 , -2.19970672532029926e-01 ] ,
[ 0.00000000000000000e+00 , 7.02439358686270526e-02 , 2.72053593791254378e-01 , 4.29197537639476046e-01 , -4.86664263392287633e-01 , 0.00000000000000000e+00 , -7.02439358686270526e-02 , 2.72053593791254378e-01 , -4.29197537639476046e-01 , -4.86664263392287633e-01 ] ,
[ 1.22012412152227842e-01 , 2.11331697001692936e-01 , 2.08908333645301647e-01 , -5.53396284716417136e-02 , -6.27492405354314609e-01 , -1.22012412152227842e-01 , 2.11331697001692936e-01 , -2.08908333645301647e-01 , -5.53396284716417136e-02 , 6.27492405354314609e-01 ] ,
[ 0.00000000000000000e+00 , 5.36496922049345057e-02 , 2.07784364438865221e-01 , 4.39024599178919062e-01 , 5.11081959901581784e-01 , 0.00000000000000000e+00 , -5.36496922049345057e-02 , 2.07784364438865221e-01 , -4.39024599178919062e-01 , 5.11081959901581784e-01 ] ,
[ 1.84174088668055735e-01 , 3.18998879010767955e-01 , 3.95016566365811783e-01 , 3.87834176035668388e-01 , 2.40553911729705472e-01 , -1.84174088668055735e-01 , 3.18998879010767955e-01 , -3.95016566365811783e-01 , 3.87834176035668388e-01 , -2.40553911729705472e-01 ] ]
__hg[6] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 2.33853586673371333e-01 , 4.05046293650491274e-01 , -5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -2.33853586673371333e-01 , 4.05046293650491274e-01 , 5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 1.53093108923948618e-01 , 5.92927061281571133e-01 , -3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -1.53093108923948618e-01 , 5.92927061281571133e-01 , 3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 ] ,
[ -1.46575492494482179e-01 , -2.53876200144873776e-01 , -1.63876382526586178e-01 , 5.81703452155821421e-01 , -2.19863238741723255e-01 , 2.20970869120796082e-02 , 1.46575492494482179e-01 , -2.53876200144873776e-01 , 1.63876382526586178e-01 , 5.81703452155821421e-01 , 2.19863238741723255e-01 , 2.20970869120796082e-02 ] ,
[ 0.00000000000000000e+00 , 6.90065559342354223e-02 , 2.67261241912424397e-01 , 4.21637021355783903e-01 , -4.78091443733757449e-01 , 1.32137494528681981e-01 , 0.00000000000000000e+00 , -6.90065559342354223e-02 , 2.67261241912424397e-01 , -4.21637021355783903e-01 , -4.78091443733757449e-01 , -1.32137494528681981e-01 ] ,
[ 1.07622738385727293e-01 , 1.86408050933772967e-01 , 1.82895336805923264e-01 , -5.69486002368798858e-02 , -5.38113691928636451e-01 , 3.56944242136036816e-01 , -1.07622738385727293e-01 , 1.86408050933772967e-01 , -1.82895336805923264e-01 , -5.69486002368798858e-02 , 5.38113691928636451e-01 , 3.56944242136036816e-01 ] ,
[ 0.00000000000000000e+00 , 4.17814244489654665e-02 , 1.61818761071666650e-01 , 3.19724575109042120e-01 , 2.21973542660274664e-01 , -5.66191613825598794e-01 , 0.00000000000000000e+00 , -4.17814244489654665e-02 , 1.61818761071666650e-01 , -3.19724575109042120e-01 , 2.21973542660274664e-01 , 5.66191613825598794e-01 ] ,
[ 1.05568077133336241e-01 , 1.82849273252288558e-01 , 2.04676750730998752e-01 , 9.36564731418126489e-02 , -2.45278210958604637e-01 , -5.87023011762966229e-01 , -1.05568077133336241e-01 , 1.82849273252288558e-01 , -2.04676750730998752e-01 , 9.36564731418126489e-02 , 2.45278210958604637e-01 , -5.87023011762966229e-01 ] ,
[ 0.00000000000000000e+00 , 3.61235077077327743e-02 , 1.39905743758644285e-01 , 3.11370427776249681e-01 , 4.69258130230493342e-01 , 4.02450914986221098e-01 , 0.00000000000000000e+00 , -3.61235077077327743e-02 , 1.39905743758644285e-01 , -3.11370427776249681e-01 , 4.69258130230493342e-01 , -4.02450914986221098e-01 ] ,
[ 1.61557581910374198e-01 , 2.79825940216738678e-01 , 3.52652456017037375e-01 , 3.76555328895631147e-01 , 3.19268554727644260e-01 , 1.65850868000944340e-01 , -1.61557581910374198e-01 , 2.79825940216738678e-01 , -3.52652456017037375e-01 , 3.76555328895631147e-01 , -3.19268554727644260e-01 , 1.65850868000944340e-01 ] ]
__hg[7] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 2.33853586673371333e-01 , 4.05046293650491274e-01 , -5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -2.33853586673371333e-01 , 4.05046293650491274e-01 , 5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 1.53093108923948618e-01 , 5.92927061281571133e-01 , -3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -1.53093108923948618e-01 , 5.92927061281571133e-01 , 3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -1.46575492494482179e-01 , -2.53876200144873776e-01 , -1.63876382526586178e-01 , 5.81703452155821421e-01 , -2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 1.46575492494482179e-01 , -2.53876200144873776e-01 , 1.63876382526586178e-01 , 5.81703452155821421e-01 , 2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.89981317681863104e-02 , -2.67228615257610491e-01 , -4.21585548851001302e-01 , 4.78033079399323602e-01 , -1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 , 6.89981317681863104e-02 , -2.67228615257610491e-01 , 4.21585548851001302e-01 , 4.78033079399323602e-01 , 1.32121363478810649e-01 , 1.10485434560398041e-02 ] ,
[ 1.06980326843028148e-01 , 1.85295361502449324e-01 , 1.81803615137878849e-01 , -5.66086680006120252e-02 , -5.34901634215140698e-01 , 3.54813604087910350e-01 , -7.71446107796869146e-02 , -1.06980326843028148e-01 , 1.85295361502449324e-01 , -1.81803615137878849e-01 , -5.66086680006120252e-02 , 5.34901634215140698e-01 , 3.54813604087910350e-01 , 7.71446107796869146e-02 ] ,
[ 0.00000000000000000e+00 , 3.95284707521047426e-02 , 1.53093108923948618e-01 , 3.01903682212279978e-01 , 2.05395959064437306e-01 , -5.29838811967061063e-01 , 2.46855220726643731e-01 , 0.00000000000000000e+00 , -3.95284707521047426e-02 , 1.53093108923948618e-01 , -3.01903682212279978e-01 , 2.05395959064437306e-01 , 5.29838811967061063e-01 , 2.46855220726643731e-01 ] ,
[ 8.64761849358180318e-02 , 1.49781145953559208e-01 , 1.65785918816308386e-01 , 6.56248039525380994e-02 , -2.21885517531997534e-01 , -4.11325226866508298e-01 , 4.68907524824438315e-01 , -8.64761849358180318e-02 , 1.49781145953559208e-01 , -1.65785918816308386e-01 , 6.56248039525380994e-02 , 2.21885517531997534e-01 , -4.11325226866508298e-01 , -4.68907524824438315e-01 ] ,
[ 0.00000000000000000e+00 , 2.86703685130632151e-02 , 1.11039859780723338e-01 , 2.36848948891486638e-01 , 2.90857133198612394e-01 , 7.84279657250585606e-03 , -5.88295294497251042e-01 , 0.00000000000000000e+00 , -2.86703685130632151e-02 , 1.11039859780723338e-01 , -2.36848948891486638e-01 , 2.90857133198612394e-01 , -7.84279657250585606e-03 , -5.88295294497251042e-01 ] ,
[ 9.50931665454351344e-02 , 1.64706195909302688e-01 , 1.94920686522911973e-01 , 1.46794852602623371e-01 , -4.81649604788955202e-02 , -3.74916788415118829e-01 , -5.11276729635545601e-01 , -9.50931665454351344e-02 , 1.64706195909302688e-01 , -1.94920686522911973e-01 , 1.46794852602623371e-01 , 4.81649604788955202e-02 , -3.74916788415118829e-01 , 5.11276729635545601e-01 ] ,
[ 0.00000000000000000e+00 , 2.58315268968977788e-02 , 1.00045073478794044e-01 , 2.27981341507730889e-01 , 3.77817254856742446e-01 , 4.49169532791078352e-01 , 3.04711463781546343e-01 , 0.00000000000000000e+00 , -2.58315268968977788e-02 , 1.00045073478794044e-01 , -2.27981341507730889e-01 , 3.77817254856742446e-01 , -4.49169532791078352e-01 , 3.04711463781546343e-01 ] ,
[ 1.44438546738283158e-01 , 2.50174901522118354e-01 , 3.18080857425383445e-01 , 3.53197832400995226e-01 , 3.37620129221579190e-01 , 2.52721159802372086e-01 , 1.13006849013016109e-01 , -1.44438546738283158e-01 , 2.50174901522118354e-01 , -3.18080857425383445e-01 , 3.53197832400995226e-01 , -3.37620129221579190e-01 , 2.52721159802372086e-01 , -1.13006849013016109e-01 ] ]
__hg[8] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 2.33853586673371333e-01 , 4.05046293650491274e-01 , -5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -2.33853586673371333e-01 , 4.05046293650491274e-01 , 5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 1.53093108923948618e-01 , 5.92927061281571133e-01 , -3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -1.53093108923948618e-01 , 5.92927061281571133e-01 , 3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -1.46575492494482179e-01 , -2.53876200144873776e-01 , -1.63876382526586178e-01 , 5.81703452155821421e-01 , -2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 1.46575492494482179e-01 , -2.53876200144873776e-01 , 1.63876382526586178e-01 , 5.81703452155821421e-01 , 2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.89981317681863104e-02 , -2.67228615257610491e-01 , -4.21585548851001302e-01 , 4.78033079399323602e-01 , -1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.89981317681863104e-02 , -2.67228615257610491e-01 , 4.21585548851001302e-01 , 4.78033079399323602e-01 , 1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 ] ,
[ 1.06977062012727761e-01 , 1.85289706650490965e-01 , 1.81798066847188994e-01 , -5.66069404148024924e-02 , -5.34885310063638819e-01 , 3.54802775870799780e-01 , -7.71422564770761626e-02 , 5.52427172801990204e-03 , -1.06977062012727761e-01 , 1.85289706650490965e-01 , -1.81798066847188994e-01 , -5.66069404148024924e-02 , 5.34885310063638819e-01 , 3.54802775870799780e-01 , 7.71422564770761626e-02 , 5.52427172801990204e-03 ] ,
[ 0.00000000000000000e+00 , 3.94514921576235855e-02 , 1.52794972109508653e-01 , 3.01315748485444623e-01 , 2.04995966554227471e-01 , -5.28806992464035619e-01 , 2.46374489558189386e-01 , -4.41081091391230876e-02 , 0.00000000000000000e+00 , -3.94514921576235855e-02 , 1.52794972109508653e-01 , -3.01315748485444623e-01 , 2.04995966554227471e-01 , 5.28806992464035619e-01 , 2.46374489558189386e-01 , 4.41081091391230876e-02 ] ,
[ 8.43312289034136020e-02 , 1.46065973125433374e-01 , 1.61631737532109604e-01 , 6.37484169813984647e-02 , -2.16851731465920683e-01 , -3.99564349117424833e-01 , 4.56090854901222809e-01 , -1.63306722554063227e-01 , -8.43312289034136020e-02 , 1.46065973125433374e-01 , -1.61631737532109604e-01 , 6.37484169813984647e-02 , 2.16851731465920683e-01 , -3.99564349117424833e-01 , -4.56090854901222809e-01 , -1.63306722554063227e-01 ] ,
[ 0.00000000000000000e+00 , 2.58430814883383597e-02 , 1.00089824219015661e-01 , 2.12700425618062072e-01 , 2.55888324646720178e-01 , -1.03051686103246484e-02 , -4.96282756040329176e-01 , 3.63580920890125281e-01 , 0.00000000000000000e+00 , -2.58430814883383597e-02 , 1.00089824219015661e-01 , -2.12700425618062072e-01 , 2.55888324646720178e-01 , 1.03051686103246484e-02 , -4.96282756040329176e-01 , -3.63580920890125281e-01 ] ,
[ 7.42292692888545658e-02 , 1.28568865817008215e-01 , 1.50304516117233611e-01 , 1.03644762948322117e-01 , -6.69121025632302135e-02 , -3.09991123262384927e-01 , -2.33350256358479807e-01 , 5.38147107915712630e-01 , -7.42292692888545658e-02 , 1.28568865817008215e-01 , -1.50304516117233611e-01 , 1.03644762948322117e-01 , 6.69121025632302135e-02 , -3.09991123262384927e-01 , 2.33350256358479807e-01 , 5.38147107915712630e-01 ] ,
[ 0.00000000000000000e+00 , 2.13434791213833602e-02 , 8.26629391872434616e-02 , 1.82959231101957831e-01 , 2.69218188725434293e-01 , 1.96827002538047469e-01 , -1.80532124571328556e-01 , -5.61628047792796514e-01 , 0.00000000000000000e+00 , -2.13434791213833602e-02 , 8.26629391872434616e-02 , -1.82959231101957831e-01 , 2.69218188725434293e-01 , -1.96827002538047469e-01 , -1.80532124571328556e-01 , 5.61628047792796514e-01 ] ,
[ 8.71939722326492833e-02 , 1.51024390020698451e-01 , 1.84102234147576760e-01 , 1.66389240058105320e-01 , 5.20293149261530224e-02 , -1.83637591370366171e-01 , -4.40134468134723178e-01 , -4.21736491643413425e-01 , -8.71939722326492833e-02 , 1.51024390020698451e-01 , -1.84102234147576760e-01 , 1.66389240058105320e-01 , -5.20293149261530224e-02 , -1.83637591370366171e-01 , 4.40134468134723178e-01 , -4.21736491643413425e-01 ] ,
[ 0.00000000000000000e+00 , 1.92854509208143926e-02 , 7.46922302404146310e-02 , 1.72371744816637279e-01 , 2.99250122582078892e-01 , 4.05043262634303791e-01 , 4.00361235182952080e-01 , 2.24582556324644078e-01 , 0.00000000000000000e+00 , -1.92854509208143926e-02 , 7.46922302404146310e-02 , -1.72371744816637279e-01 , 2.99250122582078892e-01 , -4.05043262634303791e-01 , 4.00361235182952080e-01 , -2.24582556324644078e-01 ] ,
[ 1.30994289272089087e-01 , 2.26888764520633029e-01 , 2.89907908446132789e-01 , 3.28805065784444794e-01 , 3.33689839232842345e-01 , 2.90099600883832520e-01 , 1.94575209516250514e-01 , 7.63964570434042811e-02 , -1.30994289272089087e-01 , 2.26888764520633029e-01 , -2.89907908446132789e-01 , 3.28805065784444794e-01 , -3.33689839232842345e-01 , 2.90099600883832520e-01 , -1.94575209516250514e-01 , 7.63964570434042811e-02 ] ]
__hg[9] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 2.33853586673371333e-01 , 4.05046293650491274e-01 , -5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -2.33853586673371333e-01 , 4.05046293650491274e-01 , 5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 1.53093108923948618e-01 , 5.92927061281571133e-01 , -3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -1.53093108923948618e-01 , 5.92927061281571133e-01 , 3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -1.46575492494482179e-01 , -2.53876200144873776e-01 , -1.63876382526586178e-01 , 5.81703452155821421e-01 , -2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 1.46575492494482179e-01 , -2.53876200144873776e-01 , 1.63876382526586178e-01 , 5.81703452155821421e-01 , 2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.89981317681863104e-02 , -2.67228615257610491e-01 , -4.21585548851001302e-01 , 4.78033079399323602e-01 , -1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.89981317681863104e-02 , -2.67228615257610491e-01 , 4.21585548851001302e-01 , 4.78033079399323602e-01 , 1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 1.06977062012727761e-01 , 1.85289706650490965e-01 , 1.81798066847188994e-01 , -5.66069404148024924e-02 , -5.34885310063638819e-01 , 3.54802775870799780e-01 , -7.71422564770761626e-02 , 5.52427172801990204e-03 , 0.00000000000000000e+00 , -1.06977062012727761e-01 , 1.85289706650490965e-01 , -1.81798066847188994e-01 , -5.66069404148024924e-02 , 5.34885310063638819e-01 , 3.54802775870799780e-01 , 7.71422564770761626e-02 , 5.52427172801990204e-03 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 3.94511911654768649e-02 , 1.52793806371937069e-01 , 3.01313449619951434e-01 , 2.04994402553155097e-01 , -5.28802957971468812e-01 , 2.46372609862835601e-01 , -4.41077726196727124e-02 , 2.76213586400995102e-03 , 0.00000000000000000e+00 , -3.94511911654768649e-02 , 1.52793806371937069e-01 , -3.01313449619951434e-01 , 2.04994402553155097e-01 , 5.28802957971468812e-01 , 2.46372609862835601e-01 , 4.41077726196727124e-02 , 2.76213586400995102e-03 ] ,
[ 8.42792584469231471e-02 , 1.45975957654299354e-01 , 1.61532129411937286e-01 , 6.37091310089995394e-02 , -2.16718093149230961e-01 , -3.99318111254050090e-01 , 4.55809781682694426e-01 , -1.63206082197822067e-01 , 2.48208774732423983e-02 , -8.42792584469231471e-02 , 1.45975957654299354e-01 , -1.61532129411937286e-01 , 6.37091310089995394e-02 , 2.16718093149230961e-01 , -3.99318111254050090e-01 , -4.55809781682694426e-01 , -1.63206082197822067e-01 , -2.48208774732423983e-02 ] ,
[ 0.00000000000000000e+00 , 2.55826160045998577e-02 , 9.90810457382345772e-02 , 2.10543186526815251e-01 , 2.53202232631380975e-01 , -1.04972100214821631e-02 , -4.90701827637742893e-01 , 3.59570944408087345e-01 , -1.04397954978139834e-01 , 0.00000000000000000e+00 , -2.55826160045998577e-02 , 9.90810457382345772e-02 , -2.10543186526815251e-01 , 2.53202232631380975e-01 , 1.04972100214821631e-02 , -4.90701827637742893e-01 , -3.59570944408087345e-01 , -1.04397954978139834e-01 ] ,
[ 6.98295820824746949e-02 , 1.20948384038147491e-01 , 1.41274481628820670e-01 , 9.67842712489446200e-02 , -6.48168048065920765e-02 , -2.92246884167049470e-01 , -2.09939549356038924e-01 , 4.95960059392540953e-01 , -2.67412021339565542e-01 , -6.98295820824746949e-02 , 1.20948384038147491e-01 , -1.41274481628820670e-01 , 9.67842712489446200e-02 , 6.48168048065920765e-02 , -2.92246884167049470e-01 , 2.09939549356038924e-01 , 4.95960059392540953e-01 , 2.67412021339565542e-01 ] ,
[ 0.00000000000000000e+00 , 1.85039393315955744e-02 , 7.16654488705020520e-02 , 1.57855884003784086e-01 , 2.27349818186954933e-01 , 1.48804573982203869e-01 , -1.84903565406234149e-01 , -3.88267619132195818e-01 , 4.59163776792766987e-01 , 0.00000000000000000e+00 , -1.85039393315955744e-02 , 7.16654488705020520e-02 , -1.57855884003784086e-01 , 2.27349818186954933e-01 , -1.48804573982203869e-01 , -1.84903565406234149e-01 , 3.88267619132195818e-01 , 4.59163776792766987e-01 ] ,
[ 6.67803031919601692e-02 , 1.15666878073329080e-01 , 1.39376700703139261e-01 , 1.17827382371290271e-01 , 1.12588060760871606e-02 , -1.84242596995609603e-01 , -3.15833473518240371e-01 , -3.92018502414369710e-02 , 5.59904227853391112e-01 , -6.67803031919601692e-02 , 1.15666878073329080e-01 , -1.39376700703139261e-01 , 1.17827382371290271e-01 , -1.12588060760871606e-02 , -1.84242596995609603e-01 , 3.15833473518240371e-01 , -3.92018502414369710e-02 , -5.59904227853391112e-01 ] ,
[ 0.00000000000000000e+00 , 1.66416380133660273e-02 , 6.44527868793789011e-02 , 1.45659749318545001e-01 , 2.33765216256414499e-01 , 2.47288638357724272e-01 , 6.37660677766828110e-02 , -3.20321912564716038e-01 , -5.01878516690173138e-01 , 0.00000000000000000e+00 , -1.66416380133660273e-02 , 6.44527868793789011e-02 , -1.45659749318545001e-01 , 2.33765216256414499e-01 , -2.47288638357724272e-01 , 6.37660677766828110e-02 , 3.20321912564716038e-01 , -5.01878516690173138e-01 ] ,
[ 8.07069192195687957e-02 , 1.39788484610650271e-01 , 1.73398419299368722e-01 , 1.71717133489792978e-01 , 1.04029695662908067e-01 , -5.79991433603740669e-02 , -2.90124027851231980e-01 , -4.51983807980708752e-01 , -3.34281908854268950e-01 , -8.07069192195687957e-02 , 1.39788484610650271e-01 , -1.73398419299368722e-01 , 1.71717133489792978e-01 , -1.04029695662908067e-01 , -5.79991433603740669e-02 , 2.90124027851231980e-01 , -4.51983807980708752e-01 , 3.34281908854268950e-01 ] ,
[ 0.00000000000000000e+00 , 1.48845960620674032e-02 , 5.76477926634115512e-02 , 1.34034618659144067e-01 , 2.38878751987926574e-01 , 3.45697430762867186e-01 , 4.00168393617256923e-01 , 3.39713656770383565e-01 , 1.62419266616139757e-01 , 0.00000000000000000e+00 , -1.48845960620674032e-02 , 5.76477926634115512e-02 , -1.34034618659144067e-01 , 2.38878751987926574e-01 , -3.45697430762867186e-01 , 4.00168393617256923e-01 , -3.39713656770383565e-01 , 1.62419266616139757e-01 ] ,
[ 1.20131817436616412e-01 , 2.08074411405808374e-01 , 2.66669288884877065e-01 , 3.06281134811372646e-01 , 3.21622407413684697e-01 , 3.02414084535261696e-01 , 2.41431493954213150e-01 , 1.46733530264100548e-01 , 5.13575304039249891e-02 , -1.20131817436616412e-01 , 2.08074411405808374e-01 , -2.66669288884877065e-01 , 3.06281134811372646e-01 , -3.21622407413684697e-01 , 3.02414084535261696e-01 , -2.41431493954213150e-01 , 1.46733530264100548e-01 , -5.13575304039249891e-02 ] ]
__hg[10] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 2.33853586673371333e-01 , 4.05046293650491274e-01 , -5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -2.33853586673371333e-01 , 4.05046293650491274e-01 , 5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 1.53093108923948618e-01 , 5.92927061281571133e-01 , -3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -1.53093108923948618e-01 , 5.92927061281571133e-01 , 3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -1.46575492494482179e-01 , -2.53876200144873776e-01 , -1.63876382526586178e-01 , 5.81703452155821421e-01 , -2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 1.46575492494482179e-01 , -2.53876200144873776e-01 , 1.63876382526586178e-01 , 5.81703452155821421e-01 , 2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.89981317681863104e-02 , -2.67228615257610491e-01 , -4.21585548851001302e-01 , 4.78033079399323602e-01 , -1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.89981317681863104e-02 , -2.67228615257610491e-01 , 4.21585548851001302e-01 , 4.78033079399323602e-01 , 1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 1.06977062012727761e-01 , 1.85289706650490965e-01 , 1.81798066847188994e-01 , -5.66069404148024924e-02 , -5.34885310063638819e-01 , 3.54802775870799780e-01 , -7.71422564770761626e-02 , 5.52427172801990204e-03 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -1.06977062012727761e-01 , 1.85289706650490965e-01 , -1.81798066847188994e-01 , -5.66069404148024924e-02 , 5.34885310063638819e-01 , 3.54802775870799780e-01 , 7.71422564770761626e-02 , 5.52427172801990204e-03 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 3.94511911654768649e-02 , 1.52793806371937069e-01 , 3.01313449619951434e-01 , 2.04994402553155097e-01 , -5.28802957971468812e-01 , 2.46372609862835601e-01 , -4.41077726196727124e-02 , 2.76213586400995102e-03 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -3.94511911654768649e-02 , 1.52793806371937069e-01 , -3.01313449619951434e-01 , 2.04994402553155097e-01 , 5.28802957971468812e-01 , 2.46372609862835601e-01 , 4.41077726196727124e-02 , 2.76213586400995102e-03 , 0.00000000000000000e+00 ] ,
[ -8.42790976968414707e-02 , -1.45975679226990590e-01 , -1.61531821313557283e-01 , -6.37090094933597251e-02 , 2.16717679791878087e-01 , 3.99317349614470185e-01 , -4.55808912293701407e-01 , 1.63205770906627440e-01 , -2.48208301311305356e-02 , 1.38106793200497551e-03 , 8.42790976968414707e-02 , -1.45975679226990590e-01 , 1.61531821313557283e-01 , -6.37090094933597251e-02 , -2.16717679791878087e-01 , 3.99317349614470185e-01 , 4.55808912293701407e-01 , 1.63205770906627440e-01 , 2.48208301311305356e-02 , 1.38106793200497551e-03 ] ,
[ 0.00000000000000000e+00 , 2.55777482388236804e-02 , 9.90621929624502101e-02 , 2.10503125146165287e-01 , 2.53154054244845605e-01 , -1.04952126510928830e-02 , -4.90608458704618444e-01 , 3.59502526575564585e-01 , -1.04378090520484149e-01 , 1.37934117450112005e-02 , 0.00000000000000000e+00 , -2.55777482388236804e-02 , 9.90621929624502101e-02 , -2.10503125146165287e-01 , 2.53154054244845605e-01 , 1.04952126510928830e-02 , -4.90608458704618444e-01 , -3.59502526575564585e-01 , -1.04378090520484149e-01 , -1.37934117450112005e-02 ] ,
[ 6.95493887309795999e-02 , 1.20463074917414995e-01 , 1.40706002805930291e-01 , 9.63863928860014957e-02 , -6.45815752501953388e-02 , -2.91082595748077766e-01 , -2.08969906038936920e-01 , 4.93833311205647940e-01 , -2.66276656225330699e-01 , 6.49625907992928409e-02 , -6.95493887309795999e-02 , 1.20463074917414995e-01 , -1.40706002805930291e-01 , 9.63863928860014957e-02 , 6.45815752501953388e-02 , -2.91082595748077766e-01 , 2.08969906038936920e-01 , 4.93833311205647940e-01 , 2.66276656225330699e-01 , 6.49625907992928409e-02 ] ,
[ 0.00000000000000000e+00 , 1.79676449726445531e-02 , 6.95883897496197834e-02 , 1.53240758123111914e-01 , 2.20442842618909340e-01 , 1.43367659836025091e-01 , -1.80766642629617252e-01 , -3.72354382446131060e-01 , 4.42012821524356059e-01 , -1.88422019522498735e-01 , 0.00000000000000000e+00 , -1.79676449726445531e-02 , 6.95883897496197834e-02 , -1.53240758123111914e-01 , 2.20442842618909340e-01 , -1.43367659836025091e-01 , -1.80766642629617252e-01 , 3.72354382446131060e-01 , 4.42012821524356059e-01 , 1.88422019522498735e-01 ] ,
[ 6.00969132163765851e-02 , 1.04090907068821806e-01 , 1.25226851161405861e-01 , 1.04846094724564715e-01 , 6.66957652297663073e-03 , -1.70442311878614111e-01 , -2.79288187446689595e-01 , -9.23284951943496857e-03 , 4.63380177395335213e-01 , -3.70102128292582544e-01 , -6.00969132163765851e-02 , 1.04090907068821806e-01 , -1.25226851161405861e-01 , 1.04846094724564715e-01 , -6.66957652297663073e-03 , -1.70442311878614111e-01 , 2.79288187446689595e-01 , -9.23284951943496857e-03 , -4.63380177395335213e-01 , -3.70102128292582544e-01 ] ,
[ 0.00000000000000000e+00 , 1.41766533894944757e-02 , 5.49059424824670378e-02 , 1.23443000635784256e-01 , 1.94048555860884847e-01 , 1.90650234799112750e-01 , 1.08364519699476417e-02 , -2.91586699711520070e-01 , -2.30660137744290339e-01 , 5.18844389222818947e-01 , 0.00000000000000000e+00 , -1.41766533894944757e-02 , 5.49059424824670378e-02 , -1.23443000635784256e-01 , 1.94048555860884847e-01 , -1.90650234799112750e-01 , 1.08364519699476417e-02 , 2.91586699711520070e-01 , -2.30660137744290339e-01 , -5.18844389222818947e-01 ] ,
[ 6.18257465852510429e-02 , 1.07085334301532831e-01 , 1.31477462842682774e-01 , 1.23528959514926220e-01 , 5.46716532881320327e-02 , -9.24251883137655744e-02 , -2.59903771653139770e-01 , -2.49677227887536518e-01 , 1.39170988700743070e-01 , 5.39792481712323080e-01 , -6.18257465852510429e-02 , 1.07085334301532831e-01 , -1.31477462842682774e-01 , 1.23528959514926220e-01 , -5.46716532881320327e-02 , -9.24251883137655744e-02 , 2.59903771653139770e-01 , -2.49677227887536518e-01 , -1.39170988700743070e-01 , 5.39792481712323080e-01 ] ,
[ 0.00000000000000000e+00 , 1.33475171279176553e-02 , 5.16947115496433351e-02 , 1.18338593246817739e-01 , 1.99488974442547706e-01 , 2.47433444106952810e-01 , 1.76857335792483722e-01 , -7.73147289209733524e-02 , -4.03957976370276362e-01 , -4.26248972480881949e-01 , 0.00000000000000000e+00 , -1.33475171279176553e-02 , 5.16947115496433351e-02 , -1.18338593246817739e-01 , 1.99488974442547706e-01 , -2.47433444106952810e-01 , 1.76857335792483722e-01 , 7.73147289209733524e-02 , -4.03957976370276362e-01 , 4.26248972480881949e-01 ] ,
[ 7.51973000625467125e-02 , 1.30245544300333221e-01 , 1.63341276003923536e-01 , 1.70526599796504891e-01 , 1.30939192440971686e-01 , 2.03151545067934980e-02 , -1.63221495163531127e-01 , -3.58668304344964883e-01 , -4.27241532923655742e-01 , -2.57379984592180533e-01 , -7.51973000625467125e-02 , 1.30245544300333221e-01 , -1.63341276003923536e-01 , 1.70526599796504891e-01 , -1.30939192440971686e-01 , 2.03151545067934980e-02 , 1.63221495163531127e-01 , -3.58668304344964883e-01 , 4.27241532923655742e-01 , -2.57379984592180533e-01 ] ,
[ 0.00000000000000000e+00 , 1.17970395645446788e-02 , 4.56897377680315353e-02 , 1.06735478516165258e-01 , 1.93328295713620590e-01 , 2.90991615491047739e-01 , 3.66618714800346246e-01 , 3.73047290429373513e-01 , 2.78093697547176333e-01 , 1.15841260276673477e-01 , 0.00000000000000000e+00 , -1.17970395645446788e-02 , 4.56897377680315353e-02 , -1.06735478516165258e-01 , 1.93328295713620590e-01 , -2.90991615491047739e-01 , 3.66618714800346246e-01 , -3.73047290429373513e-01 , 2.78093697547176333e-01 , -1.15841260276673477e-01 ] ,
[ 1.11154188252270858e-01 , 1.92524701527008762e-01 , 2.47219185509918865e-01 , 2.86223068194520869e-01 , 3.06988572573322294e-01 , 3.02386479720596069e-01 , 2.65378536168870360e-01 , 1.95946684919057451e-01 , 1.08883370572501789e-01 , 3.43800712548983714e-02 , -1.11154188252270858e-01 , 1.92524701527008762e-01 , -2.47219185509918865e-01 , 2.86223068194520869e-01 , -3.06988572573322294e-01 , 3.02386479720596069e-01 , -2.65378536168870360e-01 , 1.95946684919057451e-01 , -1.08883370572501789e-01 , 3.43800712548983714e-02 ] ]
__hg[11] = [ [ 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 7.07106781186547462e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.12372435695794470e-01 , 3.53553390593273731e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.84653196881457649e-01 , 1.76776695296636865e-01 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 2.33853586673371333e-01 , 4.05046293650491274e-01 , -5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -2.33853586673371333e-01 , 4.05046293650491274e-01 , 5.22912516583797227e-01 , 8.83883476483184327e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 1.53093108923948618e-01 , 5.92927061281571133e-01 , -3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -1.53093108923948618e-01 , 5.92927061281571133e-01 , 3.50780380010057014e-01 , 4.41941738241592164e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -1.46575492494482179e-01 , -2.53876200144873776e-01 , -1.63876382526586178e-01 , 5.81703452155821421e-01 , -2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 1.46575492494482179e-01 , -2.53876200144873776e-01 , 1.63876382526586178e-01 , 5.81703452155821421e-01 , 2.19863238741723255e-01 , 2.20970869120796082e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -6.89981317681863104e-02 , -2.67228615257610491e-01 , -4.21585548851001302e-01 , 4.78033079399323602e-01 , -1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 6.89981317681863104e-02 , -2.67228615257610491e-01 , 4.21585548851001302e-01 , 4.78033079399323602e-01 , 1.32121363478810649e-01 , 1.10485434560398041e-02 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 1.06977062012727761e-01 , 1.85289706650490965e-01 , 1.81798066847188994e-01 , -5.66069404148024924e-02 , -5.34885310063638819e-01 , 3.54802775870799780e-01 , -7.71422564770761626e-02 , 5.52427172801990204e-03 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -1.06977062012727761e-01 , 1.85289706650490965e-01 , -1.81798066847188994e-01 , -5.66069404148024924e-02 , 5.34885310063638819e-01 , 3.54802775870799780e-01 , 7.71422564770761626e-02 , 5.52427172801990204e-03 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , 3.94511911654768649e-02 , 1.52793806371937069e-01 , 3.01313449619951434e-01 , 2.04994402553155097e-01 , -5.28802957971468812e-01 , 2.46372609862835601e-01 , -4.41077726196727124e-02 , 2.76213586400995102e-03 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , 0.00000000000000000e+00 , -3.94511911654768649e-02 , 1.52793806371937069e-01 , -3.01313449619951434e-01 , 2.04994402553155097e-01 , 5.28802957971468812e-01 , 2.46372609862835601e-01 , 4.41077726196727124e-02 , 2.76213586400995102e-03 , 0.00000000000000000e+00 , 0.00000000000000000e+00 ] ,
[ -8.42790976968414707e-02 , -1.45975679226990590e-01 , -1.61531821313557283e-01 , -6.37090094933597251e-02 , 2.16717679791878087e-01 , 3.99317349614470185e-01 , -4.55808912293701407e-01 , 1.63205770906627440e-01 , -2.48208301311305356e-02 , 1.38106793200497551e-03 , 0.00000000000000000e+00 , 8.42790976968414707e-02 , -1.45975679226990590e-01 , 1.61531821313557283e-01 , -6.37090094933597251e-02 , -2.16717679791878087e-01 , 3.99317349614470185e-01 , 4.55808912293701407e-01 , 1.63205770906627440e-01 , 2.48208301311305356e-02 , 1.38106793200497551e-03 , 0.00000000000000000e+00 ] ,
[ 0.00000000000000000e+00 , -2.55777360423999900e-02 , -9.90621457259043686e-02 , -2.10503024770429370e-01 , -2.53153933531557018e-01 , 1.04952076465843151e-02 , 4.90608224764219392e-01 , -3.59502355151360586e-01 , 1.04378040749120216e-01 , -1.37934051677983741e-02 , 6.90533966002487756e-04 , 0.00000000000000000e+00 , 2.55777360423999900e-02 , -9.90621457259043686e-02 , 2.10503024770429370e-01 , -2.53153933531557018e-01 , -1.04952076465843151e-02 , 4.90608224764219392e-01 , 3.59502355151360586e-01 , 1.04378040749120216e-01 , 1.37934051677983741e-02 , 6.90533966002487756e-04 ] ,
[ 6.95453840939869034e-02 , 1.20456138682677766e-01 , 1.40697900988298069e-01 , 9.63808429807962025e-02 , -6.45778566587021235e-02 , -2.91065835282570684e-01 , -2.08957873602256261e-01 , 4.93804876402950677e-01 , -2.66261324079825612e-01 , 6.49588502690164049e-02 , -7.58802349632078238e-03 , -6.95453840939869034e-02 , 1.20456138682677766e-01 , -1.40697900988298069e-01 , 9.63808429807962025e-02 , 6.45778566587021235e-02 , -2.91065835282570684e-01 , 2.08957873602256261e-01 , 4.93804876402950677e-01 , 2.66261324079825612e-01 , 6.49588502690164049e-02 , 7.58802349632078238e-03 ] ,
[ 0.00000000000000000e+00 , 1.79409066807431142e-02 , 6.94848327903794666e-02 , 1.53012297620643473e-01 , 2.20111480159701112e-01 , 1.43142586615585377e-01 , -1.80510381278339072e-01 , -3.71751672089394636e-01 , 4.41314970123832251e-01 , -1.88126215358685317e-01 , 3.95559811435529790e-02 , 0.00000000000000000e+00 , -1.79409066807431142e-02 , 6.94848327903794666e-02 , -1.53012297620643473e-01 , 2.20111480159701112e-01 , -1.43142586615585377e-01 , -1.80510381278339072e-01 , 3.71751672089394636e-01 , 4.41314970123832251e-01 , 1.88126215358685317e-01 , 3.95559811435529790e-02 ] ,
[ 5.92363103432655136e-02 , 1.02600299167453682e-01 , 1.23425366129515574e-01 , 1.03296130267200331e-01 , 6.43340478975442179e-03 , -1.68184087365804286e-01 , -2.75066440817059277e-01 , -8.11908042567650347e-03 , 4.55183095357789891e-01 , -3.63842490854997702e-01 , 1.28189609146893341e-01 , -5.92363103432655136e-02 , 1.02600299167453682e-01 , -1.23425366129515574e-01 , 1.03296130267200331e-01 , -6.43340478975442179e-03 , -1.68184087365804286e-01 , 2.75066440817059277e-01 , -8.11908042567650347e-03 , -4.55183095357789891e-01 , -3.63842490854997702e-01 , -1.28189609146893341e-01 ] ,
[ 0.00000000000000000e+00 , 1.33705655534651809e-02 , 5.17839777179451982e-02 , 1.16356419625834262e-01 , 1.82478485662474710e-01 , 1.77734876478498172e-01 , 6.03803797757294057e-03 , -2.75417777068005853e-01 , -2.01120294025606938e-01 , 4.70642176902570486e-01 , -2.84372829253447090e-01 , 0.00000000000000000e+00 , -1.33705655534651809e-02 , 5.17839777179451982e-02 , -1.16356419625834262e-01 , 1.82478485662474710e-01 , -1.77734876478498172e-01 , 6.03803797757294057e-03 , 2.75417777068005853e-01 , -2.01120294025606938e-01 , -4.70642176902570486e-01 , -2.84372829253447090e-01 ] ,
[ 5.35216692036052100e-02 , 9.27022503665387160e-02 , 1.13563582111631145e-01 , 1.05431106363779017e-01 , 4.27057080338058836e-02 , -8.82457560722657575e-02 , -2.28716795670387857e-01 , -1.93890834223618747e-01 , 1.62143135477166356e-01 , 3.65319804536886006e-01 , -4.53060970710558064e-01 , -5.35216692036052100e-02 , 9.27022503665387160e-02 , -1.13563582111631145e-01 , 1.05431106363779017e-01 , -4.27057080338058836e-02 , -8.82457560722657575e-02 , 2.28716795670387857e-01 , -1.93890834223618747e-01 , -1.62143135477166356e-01 , 3.65319804536886006e-01 , 4.53060970710558064e-01 ] ,
[ 0.00000000000000000e+00 , 1.13991489495187583e-02 , 4.41487140424239172e-02 , 1.00557166842546120e-01 , 1.66342803436241277e-01 , 1.94843109840054735e-01 , 1.08914161690773961e-01 , -1.24469037296297352e-01 , -3.19982790793915006e-01 , -5.39795070473810742e-02 , 5.38068612254463230e-01 , 0.00000000000000000e+00 , -1.13991489495187583e-02 , 4.41487140424239172e-02 , -1.00557166842546120e-01 , 1.66342803436241277e-01 , -1.94843109840054735e-01 , 1.08914161690773961e-01 , 1.24469037296297352e-01 , -3.19982790793915006e-01 , 5.39795070473810742e-02 , 5.38068612254463230e-01 ] ,
[ 5.81003036574986309e-02 , 1.00632677869967505e-01 , 1.25099551604094861e-01 , 1.25223109819501383e-01 , 8.02359439172549704e-02 , -2.88090605695263055e-02 , -1.83611348705344929e-01 , -2.79057603856599057e-01 , -1.35124956388181033e-01 , 2.79191283496871556e-01 , 4.90006249842694475e-01 , -5.81003036574986309e-02 , 1.00632677869967505e-01 , -1.25099551604094861e-01 , 1.25223109819501383e-01 , -8.02359439172549704e-02 , -2.88090605695263055e-02 , 1.83611348705344929e-01 , -2.79057603856599057e-01 , 1.35124956388181033e-01 , 2.79191283496871556e-01 , -4.90006249842694475e-01 ] ,
[ 0.00000000000000000e+00 , 1.09203683039434275e-02 , 4.22944045756242296e-02 , 9.76376615575970247e-02 , 1.69706665552446234e-01 , 2.29621252277138310e-01 , 2.20016360616412915e-01 , 7.54144520608128061e-02 , -2.01599709739908206e-01 , -4.36954383967810944e-01 , -3.48376849056570181e-01 , 0.00000000000000000e+00 , -1.09203683039434275e-02 , 4.22944045756242296e-02 , -9.76376615575970247e-02 , 1.69706665552446234e-01 , -2.29621252277138310e-01 , 2.20016360616412915e-01 , -7.54144520608128061e-02 , -2.01599709739908206e-01 , 4.36954383967810944e-01 , -3.48376849056570181e-01 ] ,
[ 7.04498935794742737e-02 , 1.22022795067469880e-01 , 1.54144282832189089e-01 , 1.66358282134883323e-01 , 1.44282391046699932e-01 , 6.86391663509140215e-02 , -7.06468697561107029e-02 , -2.49966711292477245e-01 , -3.90468780131501936e-01 , -3.81614344777228387e-01 , -1.93941370348083009e-01 , -7.04498935794742737e-02 , 1.22022795067469880e-01 , -1.54144282832189089e-01 , 1.66358282134883323e-01 , -1.44282391046699932e-01 , 6.86391663509140215e-02 , 7.06468697561107029e-02 , -2.49966711292477245e-01 , 3.90468780131501936e-01 , -3.81614344777228387e-01 , 1.93941370348083009e-01 ] ,
[ 0.00000000000000000e+00 , 9.55497517822956159e-03 , 3.70062597387083372e-02 , 8.67236719212111928e-02 , 1.58757326897540935e-01 , 2.45014253055384296e-01 , 3.24949361259582570e-01 , 3.65483819865823845e-01 , 3.32953285490653506e-01 , 2.21520404340856625e-01 , 8.17476669329120081e-02 , 0.00000000000000000e+00 , -9.55497517822956159e-03 , 3.70062597387083372e-02 , -8.67236719212111928e-02 , 1.58757326897540935e-01 , -2.45014253055384296e-01 , 3.24949361259582570e-01 , -3.65483819865823845e-01 , 3.32953285490653506e-01 , -2.21520404340856625e-01 , 8.17476669329120081e-02 ] ,
[ 1.03596158798840002e-01 , 1.79433810508564495e-01 , 2.30710206912506183e-01 , 2.68541299016661239e-01 , 2.92062712041121220e-01 , 2.96375682161050480e-01 , 2.75584628986549118e-01 , 2.26878876755555181e-01 , 1.55827356111508858e-01 , 7.97573931637260147e-02 , 2.29395468045778227e-02 , -1.03596158798840002e-01 , 1.79433810508564495e-01 , -2.30710206912506183e-01 , 2.68541299016661239e-01 , -2.92062712041121220e-01 , 2.96375682161050480e-01 , -2.75584628986549118e-01 , 2.26878876755555181e-01 , -1.55827356111508858e-01 , 7.97573931637260147e-02 , -2.29395468045778227e-02 ] ]
if __name__ == "__main__":
import math
# Verify that the twoscale coefficients are orthogonal matrices
def mxmt(a,b,n):
'''
matrix transpose * matrix (aT * b) for square n*n matrices
'''
c = [0]*n
for i in xrange(n): c[i] = [0.0]*n
for i in xrange(n):
for j in xrange(n):
sum = 0.0
for k in xrange(n):
sum += a[k][i] * b[k][j]
c[i][j] = sum
return c
def err(a,n):
'''
2-norm of (a-I)
'''
sum = 0.0
for i in xrange(n):
for j in xrange(i):
sum += a[i][j]**2 + a[j][i]**2
sum += (a[i][i]-1.0)**2
return math.sqrt(sum)
for k in __hg:
q = __hg[k]
print k,err(mxmt(q,q,2*k),2*k)