CDP_processor.py 63.3 KB
Newer Older
1
2
from numpy.random import randn, random_sample
from numpy.linalg import norm
3
from numpy import sqrt, conj, tile, mean, exp, angle, trace, reshape
4
5
from numpy.fft import fft2, ifft2
from proxtoolbox.Utilities import fft, ifft
6
import numpy as np
7
import time
8

9
10
11
12
13
14
15
16
17
def CDP_processor(config):
    # Implementation of the Wirtinger Flow (WF) algorithm presented in the paper 
    # "Phase Retrieval via Wirtinger Flow: Theory and Algorithms" 
    # by E. J. Candes, X. Li, and M. Soltanolkotabi
    # integrated into the ProxToolbox by 
    # Russell Luke, September 2016.
    
    # The input data are coded diffraction patterns about a random complex
    # valued image. 
18
19
20
21
22
23
24
25
26
27

    # temporary code for fixing issues with CDP_processor / Wirtinger algorithm
    # used predefined randomly generated data
    debug = config['algorithm'] == 'Wirtinger'
    debug_image = None
    debug_masks = None
    debug_z0 = None
    if debug:
        debug_image, debug_masks, debug_z0 = createTestImage()
    # -----------
28
29
30
31
    
    ## Make image
    n1 = config['Ny']
    n2 = config['Nx'] # for 1D signals, this will be 1
32
33
34
35
    if debug:
        x = debug_image
    else:
        x = randn(n1,n2) + 1j*randn(n1,n2)
36
37
    config['truth']=x
    config['norm_truth']=norm(x,'fro')
38
    config['truth_dim'] = x.shape
39
40
41
42
43
44
45
46
47
48
    
    
    ## Make masks and linear sampling operators
    
    L = config['product_space_dimension']                  # Number of masks 
    if n2==1:
        Masks = np.random.choice(np.array([1j, -1j, 1, -1]),(n1,L))
    elif n1==1:
        Masks = np.random.choice(np.array([1j, -1j, 1, -1]),(L,n2))
    else:
49
        Masks = np.random.choice(np.array([1j, -1j, 1, -1]),(n1,n2,L))
50
51
    
    # Sample magnitudes and make masks 
52
    temp = random_sample(Masks.shape) #works like rand but accepts tuple as argument
53
    Masks = Masks * ( (temp <= 0.2)*sqrt(3) + (temp > 0.2)/sqrt(2) )
54
55
    if debug:   # temporary 
        Masks = debug_masks
56
57
58
59
60
61
    config['Masks'] = conj(Masks)
    # Saving the conjugate of the mask saves on computing the conjugate
    # every time the mapping A (below) is applied.
    
    if n2==1:
        # Make linear operators; A is forward map and At its scaled adjoint (At(Y)*numel(Y) is the adjoint)
62
        A = lambda I: fft(conj(Masks) * tile(I,[1, L]))  # Input is n x 1 signal, output is n x L array
63
        At = lambda Y: mean(Masks * ifft(Y), 1).reshape((n1,n2))           # Input is n x L array, output is n x 1 signal
64
    elif n1==1 :
65
        # Make linear operators; A is forward map and At its scaled adjoint (At(Y)*numel(Y) is the adjoint)
66
        A = lambda I: fft(conj(Masks) * tile(I,[L, 1]))  # Input is 1 x n signal, output is L x n array
67
        At = lambda Y: mean(Masks * ifft(Y), 0).reshape((n1,n2))            # Input is L x n array, output is 1 x n signal
68
    else:
69
        A = lambda I:  fft2(config['Masks'] * reshape(tile(I,[1, L]), (I.shape[0],I.shape[1], L)))  # Input is n1 x n2 image, output is n1 x n2 x L array
70
        At = lambda Y: mean(Masks * ifft2(Y), 2).reshape((n1,n2))                                           # Input is n1 x n2 X L array, output is n1 x n2 image
71
72
    
    # Data 
73
    Y = abs(A(x))
74
    config['rt_data']=Y
75
76
    Y=Y**2
    config['data']=Y
77
78
79
80
81
    
    ### next line newly added ###
    config['norm_data']=(sum(Y.flatten()))/Y.size
    ### config['norm_data']=sum(sum(Y))/Y.size ###
    
82
83
    normest = sqrt(config['norm_data']) # Estimate norm to scale eigenvector 
    config['norm_rt_data']=normest
84
85
86
87
     
    
    ## Initialization
    
88
89
90
91
92
93
94
    npower_iter = config['warmup_iter']    # Number of power iterations 
    if debug: # temporary
        z0 = debug_z0
    else:
        z0 = randn(n1,n2)
    z0 = z0/norm(z0,'fro') # Initial guess 
    tic = time.time()                       # Power iterations 
95
    for tt in range(npower_iter): 
96
97
        z0 = At(Y*A(z0))
        z0 = z0/norm(z0)
98

99
    toc  = time.time()
100

101
    z = normest * z0                  # Apply scaling 
102
103
    
    
104
    if n2==1:
105
        Relerrs = norm(x - exp(-1j*angle(trace(x*z))) * z, 'fro')/norm(x,'fro')
106
        config['u_0'] = tile(z,[1,L])
107
    elif n1==1:
108
        Relerrs = norm(x - exp(-1j*angle(trace(z*x))) * z, 'fro')/norm(x,'fro')
109
        config['u_0'] = tile(z,[L,1])
110
    else:
111
        Relerrs = norm(x - exp(-1j*angle(trace(x*z))) * z, 'fro')/norm(x,'fro')
112
        config['u_0']=reshape(tile(z,[1, L]), (z.shape[0], z.shape[1], L))
113
    
114
115
    print('Run time of initialization: %.2f  seconds', toc-tic)
    print('Relative error after initialization: %.2f', Relerrs)
116
    print('\n')
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
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460


def createTestImage():
    """
    createTestImage(config)
    Creates a randomly generated image and masks for comparison with Matlab.
    These numbers where generated by Matlab's CDP_processor() code using the
    random number generator seed 1234 (by calling rng(1234) before the image
    generation code)

    Returns
    -------
    image : ndarray
        2-D array of randomly generated complex numbers
    masks : ndarray
        2-D array masks
    z0 : ndarray
        initial guess
    """  
   
    image = np.array([[-0.947246643957371 - 2.01621153886074j],\
    [0.540149747070348 - 1.52496021647706j],\
    [-0.216602140976276 + 0.458677002745254j],\
    [1.18903197494834 - 0.297145673980074j],\
    [1.31698783181085 + 0.129078774211000j],\
    [-0.405628869688033 - 1.38801488456459j],\
    [-0.444906311105150 + 1.46660625680038j],\
    [1.32838581559268 + 1.57744914102568j],\
    [0.833802589212637 + 0.188860833221133j],\
    [0.604446391975290 - 1.51347819176918j],\
    [-0.106671545865946 - 0.438831006963736j],\
    [0.00301532940457824 + 1.28965229463172j],\
    [0.457111658357373 - 0.711665883615802j],\
    [0.921720899428106 + 0.242499695965284j],\
    [-0.197341695987964 - 1.31368056043522j],\
    [0.0755034885193928 + 1.26604618004522j],\
    [0.00888692002792200 + 0.418053670303849j],\
    [0.838831098830714 - 0.546504475436316j],\
    [-0.542412761860117 - 1.44615927722111j],\
    [0.567566470034518 + 0.531407151709729j],\
    [-2.81967642036639 + 0.749904827213164j],\
    [-0.213634974974775 + 0.196266421666228j],\
    [1.17315591544504 + 1.04389543976836j],\
    [0.440383864511465 + 0.433880451910687j],\
    [-0.329729750582313 + 0.202558660264406j],\
    [1.23258158069934 - 1.08244979552462j],\
    [-0.542675757150614 + 1.55097820405333j],\
    [0.194466345903572 + 1.41934204686036j],\
    [1.22531159154148 + 1.07188715589087j],\
    [-0.386513069477807 + 0.159636124932582j],\
    [0.331849788546788 - 0.0327316827732193j],\
    [-1.15748750365203 + 1.08919381632052j],\
    [0.602440582498460 - 0.348303600339312j],\
    [0.543109594539006 - 0.620575098637133j],\
    [-0.696775726944675 + 1.04079835336547j],\
    [1.86962619100788 - 0.213343457997795j],\
    [-0.209100363450530 + 0.652078087684554j],\
    [0.478585950928353 - 0.280276735614089j],\
    [-3.21704882828706 + 0.959084129878320j],\
    [-1.19627320331396 + 1.18945394492323j],\
    [-2.40470498750630 + 0.634768286304729j],\
    [0.913196954812861 + 0.380343466220301j],\
    [0.583555949265918 - 0.00817080599068953j],\
    [0.0906668992644205 + 0.940589108500904j],\
    [-1.02808755576208 + 0.817851200843005j],\
    [0.174610557358781 - 0.295388381185293j],\
    [-0.703049478880380 - 1.52378082461446j],\
    [0.0101890477763441 - 0.342628221057316j],\
    [-0.543861682944172 + 0.830269710094186j],\
    [0.413341557812789 - 0.137945148578286j],\
    [0.121192826575397 - 0.319624153415461j],\
    [1.23211020325057 + 0.712876198690310j],\
    [0.383969811361109 - 1.18865203301538j],\
    [1.31296996269268 - 1.34341008037504j],\
    [0.747210676071557 + 0.747409824094176j],\
    [1.45607363168206 - 1.27547715945019j],\
    [-0.886384209969464 - 0.342530050925878j],\
    [0.331621021864755 + 0.148824592601233j],\
    [-0.0203129309776211 - 1.26211189632241j],\
    [-1.55158280044690 + 1.24221839192965j],\
    [-0.499920965892113 + 0.363918204591390j],\
    [-1.56498908502083 + 0.507694658273534j],\
    [-0.0993317572479484 + 2.10512176900872j],\
    [1.13366320843822 + 0.350957681037072j],\
    [-1.38249988652052 + 1.24659397015117j],\
    [-1.85949584047873 + 0.950271264843820j],\
    [0.884449709416438 + 0.722330521877201j],\
    [0.217523545499093 - 2.21293608120763j],\
    [-0.0578280186891475 - 0.157391349560238j],\
    [-0.263804534357637 - 0.616507713005481j],\
    [-0.365284054150745 - 0.745698474865358j],\
    [1.58398927782162 - 0.660833563274984j],\
    [-0.524101329605828 + 1.24207116362548j],\
    [0.135846130883832 + 0.0395838266801307j],\
    [-0.352252375153797 + 0.490164892647680j],\
    [0.378669553397911 + 0.354702703427887j],\
    [1.33561910056640 - 0.136794253723794j],\
    [0.235487012067213 - 0.0997481612530957j],\
    [0.374910615584327 - 0.166176528270441j],\
    [-1.91378858189177 - 0.0302665864607736j],\
    [0.961502486978082 + 2.46419771987493j],\
    [0.989600704126284 - 0.427383134664501j],\
    [0.653310621918943 - 2.44922307426240j],\
    [-0.169566854082180 + 1.20481096224295j],\
    [-0.650682090597426 + 0.523080596720994j],\
    [0.115536315914466 - 0.311508290552635j],\
    [0.0783349993006565 + 0.497411584963897j],\
    [0.418595751437944 - 0.436568643682149j],\
    [-0.0649197557013077 - 0.889640804797343j],\
    [0.0108202327278178 - 1.12095223988142j],\
    [0.0835593013785142 - 0.387866367108168j],\
    [0.655757213589554 - 0.890776283769062j],\
    [-0.844671186989871 + 0.352625509242389j],\
    [0.479280990103061 + 1.86863253476594j],\
    [1.61757162156561 + 2.03257582115308j],\
    [0.236143619222306 - 0.193455913061711j],\
    [1.53752025245811 - 0.530884473343525j],\
    [0.105123319666697 - 0.423268657474212j],\
    [2.57229713756556 + 0.900743082404520j],\
    [-1.45637228419350 + 0.408699681308538j],\
    [-0.565462711896420 - 0.136149735194495j],\
    [0.208619702439589 - 1.41492140643848j],\
    [-2.05030148748642 - 1.01335576717876j],\
    [2.04857822020918 + 0.419372009566239j],\
    [-0.317208297886046 - 1.05533149222429j],\
    [-1.16091463775971 - 1.27704214810170j],\
    [-0.110291231160078 - 0.921056798905937j],\
    [2.27516290469254 + 0.178926804601294j],\
    [1.32412518648152 - 2.94365447555317j],\
    [-0.949736504479999 + 0.830032562756678j],\
    [-0.468779829108687 - 0.508901159929091j],\
    [-1.23480383487029 + 2.02407881405793j],\
    [0.686419671641041 + 0.199473346380582j],\
    [0.928292474111740 - 2.05373156827879j],\
    [0.914083515337297 + 0.302803630103726j],\
    [1.17464064745822 + 0.599379398850925j],\
    [0.391198845062667 - 0.322703014845327j],\
    [0.261893749252645 + 0.357550622412571j],\
    [-1.13040246678514 + 0.160283663101418j],\
    [-0.976856536557975 + 0.244902203900982j],\
    [-0.351390703238139 + 0.670656383427207j],\
    [0.525224146204912 + 0.721087133471137j],\
    [-1.42233116006403 - 0.275147631335540j],\
    [-1.24100720358566 + 0.915598784070494j],\
    [-0.625512864566490 + 0.936740544967723j],\
    [0.188716876403410 + 0.837446756628092j],\
    [1.24673959683294 + 0.335938902751047j],\
    [-0.639478657545211 - 0.130059388854364j]])

    masks = np.array([[-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j],\
    [-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j],\
    [-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j],\
    [-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 1.73205080756888j],\
    [0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 1.73205080756888j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j],\
    [0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j],\
    [1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [-1.73205080756888 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 1.73205080756888j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j],\
    [1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j],\
    [-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j],\
    [-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j],\
    [0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [1.73205080756888 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j],\
    [1.73205080756888 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j],\
    [0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [1.73205080756888 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [1.73205080756888 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j],\
    [0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j],\
    [1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j],\
    [0.00000000000000 + 0.707106781186548j,	-1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 + 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j],\
    [0.00000000000000 - 0.707106781186548j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.00000000000000 - 1.73205080756888j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.707106781186548 + 0.00000000000000j],\
    [-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j,	0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 + 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j],\
    [-0.707106781186548 + 0.00000000000000j,	1.73205080756888 + 0.00000000000000j,	0.00000000000000 - 0.707106781186548j,	1.73205080756888 + 0.00000000000000j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 - 1.73205080756888j,	-0.707106781186548 + 0.00000000000000j,	0.00000000000000 + 1.73205080756888j,	0.00000000000000 + 0.707106781186548j,	0.00000000000000 - 0.707106781186548j]])
    
    z0 = np.array([0.0848802595989635,0.134817251982901,
    -0.0550294990313983,0.0207696058654980,
    0.0572518900492754,0.0304482413548984,
    -0.157357772082957,0.0314411549828741,
    -0.111199278671796,0.129929752682433,
    0.00796394647342733,-0.178882113119730,
    0.0250989028849321,-0.0344385614770851,
    -0.0483885697600441,-0.0889293659266556,
    0.104759728869783,-0.0441936831694983,
    -0.0711090694340487,0.0203232239035642,
    0.0656226194898509,-0.00684727629018896,
    -0.126150868035451,0.102207722674680,
    -0.0211402731234492,-0.0782314147733199,
    0.0189640495439396,-0.00869321517155756,
    0.0830865478227942,0.134693857876543,
    0.103552290678175,0.0556000190551109,
    0.0220565902091927,0.0119355475132650,
    0.147876127275836,0.0128811593527358,
    -0.0909797057849293,-0.0652496876654610,
    0.0197271339589965,0.0723284676797569,
    -0.00913595491034786,-0.0130214653244836,
    -0.0875263856314950,0.192279538739551,
    0.0720385200493351,0.0192581314315543,
    -0.0740556432299930,0.0363979972516529,
    0.0189869207127548,-0.0104526458577770,
    -0.0542523598171503,0.00755985857227767,
    -0.123248756798427,0.0904471066038652,
    0.00108594991318542,-0.170986060584556,
    0.0583651473960023,0.147031098199246,
    -0.0326454625824806,0.0440439606138198,
    -0.0169668657559946,0.00299189067905872,
    0.0400027995834829,0.0833136300758959,
    -0.0841368281450238,-0.0979937273505081,
    0.0967813130013211,0.123481733221129,
    0.0456674755721156,-0.0569024877652607,
    -0.00740993853050754,-0.238064210087468,
    -0.181953702334826,0.0196276430752442,
    0.246366026593873,-0.0882083309766466,
    -0.0353426430124360,0.0149585914177386,
    -0.104856725174650,-0.00741665217271024,
    -0.0466503577974486,0.0984315248514579,
    -0.0541168242375842,0.0572490768510109,
    -0.00493417116837634,0.100608098270356,
    -0.118635929068360,0.130516281502712,
    0.151203893153615,-0.0398045832710856,
    -0.178354974680567,0.0941175260655856,
    -0.00493043708102830,-0.106999084510846,
    0.168147166866192,-0.0766254688020768,
    0.0731289007707208,-0.0804220199728473,
    -0.0236863785550888,0.0965600073542886,
    -0.0342665393546350,-0.0389368942822843,
    -0.122727105567105,-0.0111953013599083,
    0.0958533706413645,0.0416434598016190,
    0.0189220423873334,-0.169233863873663,
    0.0730915479474775,-0.0173166816369515,
    0.117436769360342,0.0787641055134198,
    0.105915392680960,-0.0184120271964982,
    0.0750457848047416,0.119366543389881,
    -0.00605990306546091,-0.0238766672477757,
    0.0997848243058209,0.0484852340483031,
    0.0945140780010776,-0.100615928283661,
    0.100318332695063,0.0457828289822120,
    -0.0106094324251081,-0.0708488722865212,
    0.0645047500348074,-0.0627622327830579])
    z0 = np.reshape(z0, (128, 1)) # transform 1-D array z0 into 128x1 matrix
    return image, masks, z0