from proxtoolbox.experiments.phase.phaseExperiment import PhaseExperiment
from proxtoolbox.utils import fft, ifft
import proxtoolbox.utils as utils
import numpy as np
from numpy import sqrt, conj, tile, mean, exp, angle, trace, reshape, matmul
from numpy.random import randn, random_sample
from numpy.linalg import norm
from numpy.fft import fft2, ifft2
import time
[docs]class CDP_Experiment(PhaseExperiment):
"""
CDP experiment class
"""
[docs] @staticmethod
def getDefaultParameters():
defaultParams = {
'experiment_name': 'CDP',
'object': 'complex',
'constraint': 'hybrid',
'Nx': 1,
'Ny': 128,
'Nz': 1,
'sets': 10,
'product_space_dimension': 10,
'farfield': True,
'MAXIT': 10000,
'TOL': 1e-10,
'lambda_0': 0.55,
'lambda_max': 0.55,
'lambda_switch': 20,
'data_ball': 1e-30,
'diagnostic': True,
'iterate_monitor_name': 'FeasibilityIterateMonitor',
'verbose': 0,
'graphics': 1,
'anim': False,
'debug':True
}
return defaultParams
def __init__(self,
warmup_iter = 0,
**kwargs):
"""
"""
# call parent's __init__ method
super(CDP_Experiment, self).__init__(**kwargs)
# do here any data member initialization
self.warmup_iter = warmup_iter
# the following data members are set by loadData()
self.masks = None
self.indicator_ampl = None
self.abs_illumination = None
self.illumination = None
self.support_idx = None
[docs] def loadData(self):
"""
Load CDP dataset. Create the initial iterate.
"""
# 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.
# for debug:
# used predefined randomly generated data for the case where n1 = 128, n2 = 1
n1 = self.Ny
n2 = self.Nx
debug = self.debug and n1 == 128 and n2 == 1 \
and self.product_space_dimension == 10
debug_image = None
debug_masks = None
debug_z0 = None
# make image
if debug:
debug_image, debug_masks, debug_z0 = self.createTestImage()
x = debug_image
else:
x = randn(n1,n2) + 1j*randn(n1,n2)
self.truth = x
self.norm_truth = norm(x,'fro')
self.truth_dim = x.shape
## Make masks and linear sampling operators
L = self.product_space_dimension # Number of masks
if debug:
masks = debug_masks
else:
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:
masks = np.random.choice(np.array([1j, -1j, 1, -1]),(n1,n2,L))
# Sample magnitudes and make masks
temp = random_sample(masks.shape) #works like rand but accepts tuple as argument
masks = masks * ( (temp <= 0.2)*sqrt(3) + (temp > 0.2)/sqrt(2) )
self.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)
A = lambda I: fft(conj(masks) * tile(I,[1, L])) # Input is n x 1 signal, output is n x L array
At = lambda Y: mean(masks * ifft(Y), 1).reshape((n1,n2)) # Input is n x L array, output is n x 1 signal
elif n1 == 1 :
# Make linear operators; A is forward map and At its scaled adjoint (At(Y)*numel(Y) is the adjoint)
A = lambda I: fft(conj(masks) * tile(I,[L, 1])) # Input is 1 x n signal, output is L x n array
At = lambda Y: mean(masks * ifft(Y), 0).reshape((n1,n2)) # Input is L x n array, output is 1 x n signal
else:
A = lambda I: fft2(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
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
# Support constraint: none
self.indicator_ampl = 1
self.abs_illumination = 1
self.illumination = 1
self.support_idx = np.nonzero(x.flatten(order = 'F')) # column-major order'
#alt_support_idx = find(Xi_A.T, 0, "!=")
# Data
Y = abs(A(x))
self.rt_data = Y
Y = Y**2
self.data = Y
self.norm_data = sum(Y.flatten())/Y.size
normest = sqrt(self.norm_data) # Estimate norm to scale eigenvector
self.norm_rt_data = normest
# Initialization
npower_iter = self.warmup_iter # Number of power iterations
if debug:
z0 = debug_z0
else:
z0 = randn(n1,n2)
z0 = z0/norm(z0,'fro') # Initial guess
_tic = time.time()
# Power iterations
for _tt in range(npower_iter):
z0 = At(Y*A(z0))
z0 = z0/norm(z0)
_toc = time.time()
z = normest * z0 # Apply scaling
if n2 == 1:
_Relerrs = norm(x - exp(-1j*angle(trace(matmul(x.T.conj(), z)))) * z, 'fro')/norm(x,'fro')
self.u0 = tile(z,[1,L])
elif n1 == 1:
_Relerrs = norm(x - exp(-1j*angle(trace(matmul(z.T.conj(), x)))) * z, 'fro')/norm(x,'fro')
self.u0 = tile(z,[L,1])
else:
_Relerrs = norm(x - exp(-1j*angle(trace(matmul(x.T.conj(), z)))) * z, 'fro')/norm(x,'fro')
self.u0 = reshape(tile(z,[1, L]), (z.shape[0], z.shape[1], L))
# The following is put here for now
if self.formulation == 'cyclic':
if self.Nx == 1:
self.u0 = self.u0[:,0]
elif self.Ny == 1:
self.u0 = self.u0[0,:]
else:
self.u0 = self.u0[:,:,0]
else:
# TODO need to check that the following code
# converted from Matlab makes sense
self.product_space_dimension = self.sets
self.sets = 2
#print('Run time of initialization:', toc-tic, 's')
#print('Relative error after initialization:', Relerrs)
#print('\n')
[docs] def setupProxOperators(self):
"""
Determine the prox operators to be used for this experiment
"""
super(CDP_Experiment, self).setupProxOperators() # call parent's method
if self.formulation == 'cyclic':
self.proxOperators = []
self.nProx = self.sets
for _j in range(self.nProx):
self.proxOperators.append('P_CDP_cyclic')
else:
#input.Prox0 = input.Prox{1}; # used in ADMM
self.n_product_Prox = self.product_space_dimension
self.proxOperators = []
self.proxOperators.append('P_diag')
self.proxOperators.append('P_CDP')
self.propagator = 'Propagator_FreFra'
self.inverse_propagator = 'InvPropagator_FreFra'
[docs] def createTestImage(self):
"""
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