In [1]:
lavec = [[20.406, 0, 0],
         [0, 20.406, 0],
         [0, 0, 20.406]]
xcoord = [[ 0.0000000000000000, 0.0000000000000000, 0.0000000000000000],
          [ 0.0000000000000000, 0.0000000000000000, 0.5000000000000000],
          [ 0.0000000000000000, 0.2500000000000000, 0.2500000000000000],
          [ 0.0000000000000000, 0.2500000000000000, 0.7500000000000000],
          [ 0.0000000000000000, 0.5000000000000000, 0.0000000000000000],
          [ 0.0000000000000000, 0.5000000000000000, 0.5000000000000000],
          [ 0.0000000000000000, 0.7500000000000000, 0.2500000000000000], 
          [ 0.0000000000000000, 0.7500000000000000, 0.7500000000000000],
          [ 0.1250000000000000, 0.1250000000000000, 0.1250000000000000],
          [ 0.1250000000000000, 0.1250000000000000, 0.6250000000000000],
          [ 0.1250000000000000, 0.3750000000000000, 0.3750000000000000],
          [ 0.1250000000000000, 0.3750000000000000, 0.8750000000000000],
          [ 0.1250000000000000, 0.6250000000000000, 0.1250000000000000],
          [ 0.1250000000000000, 0.6250000000000000, 0.6250000000000000],
          [ 0.1250000000000000, 0.8750000000000000, 0.3750000000000000],
          [ 0.1250000000000000, 0.8750000000000000, 0.8750000000000000],
          [ 0.2500000000000000, 0.0000000000000000, 0.2500000000000000],
          [ 0.2500000000000000, 0.0000000000000000, 0.7500000000000000],
          [ 0.2500000000000000, 0.2500000000000000, 0.0000000000000000],
          [ 0.2500000000000000, 0.2500000000000000, 0.5000000000000000],
          [ 0.2500000000000000, 0.5000000000000000, 0.2500000000000000],
          [ 0.2500000000000000, 0.5000000000000000, 0.7500000000000000],
          [ 0.2500000000000000, 0.7500000000000000, 0.0000000000000000],
          [ 0.2500000000000000, 0.7500000000000000, 0.5000000000000000],
          [ 0.3750000000000000, 0.1250000000000000, 0.3750000000000000],
          [ 0.3750000000000000, 0.1250000000000000, 0.8750000000000000],
          [ 0.3750000000000000, 0.3750000000000000, 0.1250000000000000],
          [ 0.3750000000000000, 0.3750000000000000, 0.6250000000000000],
          [ 0.3750000000000000, 0.6250000000000000, 0.3750000000000000],
          [ 0.3750000000000000, 0.6250000000000000, 0.8750000000000000],
          [ 0.3750000000000000, 0.8750000000000000, 0.1250000000000000],
          [ 0.3750000000000000, 0.8750000000000000, 0.6250000000000000],
          [ 0.5000000000000000, 0.0000000000000000, 0.0000000000000000],
          [ 0.5000000000000000, 0.0000000000000000, 0.5000000000000000],
          [ 0.5000000000000000, 0.2500000000000000, 0.2500000000000000],
          [ 0.5000000000000000, 0.2500000000000000, 0.7500000000000000],
          [ 0.5000000000000000, 0.5000000000000000, 0.0000000000000000],
          [ 0.5000000000000000, 0.5000000000000000, 0.5000000000000000],
          [ 0.5000000000000000, 0.7500000000000000, 0.2500000000000000],
          [ 0.5000000000000000, 0.7500000000000000, 0.7500000000000000],
          [ 0.6250000000000000, 0.1250000000000000, 0.1250000000000000],
          [ 0.6250000000000000, 0.1250000000000000, 0.6250000000000000],
          [ 0.6250000000000000, 0.3750000000000000, 0.3750000000000000],
          [ 0.6250000000000000, 0.3750000000000000, 0.8750000000000000],
          [ 0.6250000000000000, 0.6250000000000000, 0.1250000000000000],
          [ 0.6250000000000000, 0.6250000000000000, 0.6250000000000000],
          [ 0.6250000000000000, 0.8750000000000000, 0.3750000000000000],
          [ 0.6250000000000000, 0.8750000000000000, 0.8750000000000000],
          [ 0.7500000000000000, 0.0000000000000000, 0.2500000000000000],
          [ 0.7500000000000000, 0.0000000000000000, 0.7500000000000000],
          [ 0.7500000000000000, 0.2500000000000000, 0.0000000000000000],
          [ 0.7500000000000000, 0.2500000000000000, 0.5000000000000000],
          [ 0.7500000000000000, 0.5000000000000000, 0.2500000000000000],
          [ 0.7500000000000000, 0.5000000000000000, 0.7500000000000000],
          [ 0.7500000000000000, 0.7500000000000000, 0.0000000000000000],
          [ 0.7500000000000000, 0.7500000000000000, 0.5000000000000000],
          [ 0.8750000000000000, 0.1250000000000000, 0.3750000000000000],
          [ 0.8750000000000000, 0.1250000000000000, 0.8750000000000000],
          [ 0.8750000000000000, 0.3750000000000000, 0.1250000000000000],
          [ 0.8750000000000000, 0.3750000000000000, 0.6250000000000000],
          [ 0.8750000000000000, 0.6250000000000000, 0.3750000000000000],
          [ 0.8750000000000000, 0.6250000000000000, 0.8750000000000000],
          [ 0.8750000000000000, 0.8750000000000000, 0.1250000000000000],
          [ 0.8750000000000000, 0.8750000000000000, 0.6250000000000000]]

nat = len(xcoord)

kd = [14] * nat

In [2]:
import numpy as np 

ndata = 30

force = np.loadtxt("force_random.dat").reshape((-1, nat, 3))[:ndata]
disp = np.loadtxt("disp_random.dat").reshape((-1, nat, 3))[:ndata]

samples = np.arange(30)

In [3]:
from alm import ALM

maxorder = 5
cutoff = [-1, -1, 15, 8, 8]
nbody = [2, 3, 3, 2, 2]

with ALM(lavec, xcoord, kd) as alm:
    alm.set_verbosity(1)
    alm.define(maxorder, cutoff, nbody)
    alm.set_constraint(translation=True)
    alm.set_displacement_and_force(disp, force)
    X, y = alm.get_matrix_elements()

In [4]:
from sklearn.model_selection import GroupKFold
from sklearn.linear_model import lasso_path
from sklearn.preprocessing import StandardScaler
import math

force_ravel = force.reshape(-1)

print("force shape: ", np.shape(force_ravel))
print("Amat shape : ", np.shape(X))

groups = []
for i in range(30):
    groups.extend([i] * 3 * nat)

eps = 1.0e-7
gkf = GroupKFold(n_splits=5)
n_alphas = 100

rms_train = np.zeros((n_alphas,5))
rms_test = np.zeros((n_alphas, 5))

counter = 0
alphas = np.logspace(-1, -6, num=n_alphas)

standardize = True
sc = StandardScaler()

for train, test in gkf.split(X,y,groups=groups):
    
    force_train = force_ravel[train]
    force_test = force_ravel[test]
    fnorm_train = np.dot(force_train, force_train)
    fnorm_test = np.dot(force_test, force_test)

    # Set displacement and force data
    X_train = X[train, :]
    X_test = X[test, :]
    y_train = y[train]
    y_test = y[test]
    
    if standardize:
        scaler = sc.fit(X_train)
        X_train = scaler.transform(X_train)
        X_test = scaler.transform(X_test)
        

    alphas_lasso, coefs_lasso, _ = lasso_path(X_train, y_train, eps=eps, 
                                              alphas = alphas,
                                              verbose = True,
                                              fit_intercept=False)

    y_model_train = np.dot(X_train, coefs_lasso)
    y_model_test = np.dot(X_test, coefs_lasso)
    
    
    for ialpha in range(n_alphas):
        y_diff_train = y_model_train[:,ialpha] - y_train
        y_diff_test = y_model_test[:,ialpha] - y_test

        residual_train = np.dot(y_diff_train, y_diff_train)
        residual_test = np.dot(y_diff_test, y_diff_test)

        rms_train[ialpha, counter] = math.sqrt(residual_train/fnorm_train)
        rms_test[ialpha, counter] = math.sqrt(residual_test/fnorm_test)


    counter += 1

rmse_mean = np.mean(rms_train, axis=1)
rmse_std = np.std(rms_train, axis=1, ddof=1)
cv_mean = np.mean(rms_test, axis=1)
cv_std = np.std(rms_test, axis=1, ddof=1)

print(rmse_mean)
print(cv_mean)


force shape:  (5760,)
Amat shape :  (5760, 2742)
..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
[1.         1.         1.         1.         1.         1.
 1.         1.         1.         1.         0.9624781  0.91541709
 0.87632863 0.84406678 0.81759599 0.79599323 0.77844763 0.75026173
 0.68516209 0.62879869 0.58025303 0.53868251 0.50331125 0.47340901
 0.44678699 0.42021266 0.39765956 0.37870942 0.36298929 0.34428581
 0.31786498 0.29515317 0.2751017  0.25758321 0.24242655 0.22875453
 0.21589539 0.20488878 0.1956771  0.18753501 0.17971248 0.17018288
 0.15920386 0.14857611 0.13933652 0.12962183 0.12070102 0.11275478
 0.10555236 0.09910029 0.0931412  0.08652604 0.08023009 0.07470163
 0.06979538 0.0654713  0.06162831 0.05822605 0.05484992 0.05162185
 0.04872277 0.045991   0.04344047 0.04124307 0.03929045 0.0375425
 0.03585654 0.03417772 0.03249716 0.03084496 0.02924247 0.02757184
 0.02607016 0.02464748 0.02338931 0.02216182 0.02103012 0.01997508
 0.01902452 0.01816909 0.01740209 0.01669539 0.01609425 0.01541546
 0.01487433 0.01423155 0.01399853 0.0133217  0.01287958 0.01246761
 0.01186085 0.01155399 0.01106646 0.01073536 0.01041285 0.01011243
 0.00981835 0.00966855 0.00960952 0.0095809 ]
[1.         1.         1.         1.         1.         1.
 1.         1.         1.         1.         0.96249416 0.9154397
 0.87635952 0.84410766 0.81764811 0.79605721 0.77852341 0.75037436
 0.68524308 0.62885155 0.58028113 0.53868904 0.50329859 0.47337926
 0.44684536 0.42024329 0.39768143 0.37868512 0.36291908 0.34465838
 0.31811006 0.29535495 0.27536276 0.2578781  0.24274246 0.22929931
 0.21653785 0.20546253 0.19620689 0.18824566 0.18092594 0.17189403
 0.16150463 0.15142969 0.14311784 0.13479891 0.12746253 0.12117655
 0.1154504  0.11051309 0.10479764 0.09641535 0.08899863 0.08248746
 0.07672307 0.07160704 0.06720183 0.06331593 0.05931095 0.05568467
 0.05255732 0.04969985 0.04682128 0.04446472 0.04244603 0.04079816
 0.03932993 0.03796988 0.03669492 0.03543577 0.03420726 0.03245406
 0.03096998 0.02968097 0.0287116  0.02783536 0.02708536 0.02641302
 0.02586267 0.02539003 0.0250312  0.02474624 0.02439375 0.02433438
 0.02401315 0.02397751 0.02387878 0.02350801 0.0235905  0.023439
 0.02337044 0.02342639 0.023414   0.02342398 0.0235138  0.02355785
 0.02356328 0.02358263 0.02360939 0.02363781]
..

In [5]:
%matplotlib inline

import matplotlib.pyplot as plt

ax = plt.subplot(111)
ax.plot(alphas_lasso, rmse_mean, linestyle='--', marker='o', ms=5)
ax.plot(alphas_lasso, cv_mean, linestyle='--', marker='o', ms=5)

ax.set_xscale('log')
plt.show()

data = np.zeros((n_alphas, 5), dtype=np.float64)

data[:,0] = alphas
data[:,1] = rmse_mean
data[:,2] = rmse_std
data[:,3] = cv_mean
data[:,4] = cv_std

np.savetxt('sklearn_cvscore.dat', data)



In [6]:
from sklearn.linear_model import Lasso

alpha_opt = alphas[np.argmin(cv_mean)]
print(alpha_opt)

clf = Lasso(alpha=alpha_opt, fit_intercept=False, tol=eps)

if standardize:
    scaler = sc.fit(X)
    X = scaler.transform(X)
    clf.fit(X, y)
    fc = np.true_divide(clf.coef_, scaler.scale_)

else:
    clf.fit(X, y)
    fc = clf.coef_

print(fc)
print(np.linalg.norm(fc, 0))


2.848035868435805e-06
[-0.00103985 -0.00066258  0.00806071 ... -0.05110004 -0.01914277
 -0.0520174 ]
1255.0
/Users/togo/.miniconda3/envs/dev/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:475: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Duality gap: 0.004675608644519217, tolerance: 1.3216198106813159e-06
  positive)

In [7]:
alm = ALM(lavec, xcoord, kd)
alm.alm_new()
alm.define(maxorder, cutoff, nbody)
alm.set_constraint(translation=True)
alm.set_fc(fc)
fc_values1, elem_indices1 = alm.get_fc(1, mode='origin')

c = "xyz"

for (val, elem) in zip(fc_values1, elem_indices1):
     v1 = elem[0] // 3
     c1 = elem[0] % 3
     v2 = elem[1] // 3
     c2 = elem[1] % 3
     print("%15.7f %d%s %d%s" % ((val, v1 + 1, c[c1], v2 + 1, c[c2])))

alm.alm_delete()


      0.2684344 1x 1x
      0.2684344 1y 1y
      0.2684344 1z 1z
      0.2684344 9x 9x
      0.2684344 9y 9y
      0.2684344 9z 9z
     -0.0010399 1x 2x
     -0.0010399 1x 5x
     -0.0010399 1y 2y
     -0.0010399 1y 33y
     -0.0010399 1z 5z
     -0.0010399 1z 33z
     -0.0010399 9x 10x
     -0.0010399 9x 13x
     -0.0010399 9y 10y
     -0.0010399 9y 41y
     -0.0010399 9z 13z
     -0.0010399 9z 41z
     -0.0006626 1x 33x
     -0.0006626 1y 5y
     -0.0006626 1z 2z
     -0.0006626 9x 41x
     -0.0006626 9y 13y
     -0.0006626 9z 10z
      0.0080607 1x 3x
      0.0080607 1x 4x
      0.0080607 1x 7x
      0.0080607 1x 8x
      0.0080607 1y 17y
      0.0080607 1y 18y
      0.0080607 1y 49y
      0.0080607 1y 50y
      0.0080607 1z 19z
      0.0080607 1z 23z
      0.0080607 1z 51z
      0.0080607 1z 55z
      0.0080607 9x 11x
      0.0080607 9x 12x
      0.0080607 9x 15x
      0.0080607 9x 16x
      0.0080607 9y 25y
      0.0080607 9y 26y
      0.0080607 9y 57y
      0.0080607 9y 58y
      0.0080607 9z 27z
      0.0080607 9z 31z
      0.0080607 9z 59z
      0.0080607 9z 63z
      0.0017902 1x 3y
      0.0017902 1x 3z
     -0.0017902 1x 4y
      0.0017902 1x 4z
      0.0017902 1x 7y
     -0.0017902 1x 7z
     -0.0017902 1x 8y
     -0.0017902 1x 8z
     -0.0017902 1x 17y
      0.0017902 1x 18y
     -0.0017902 1x 19z
      0.0017902 1x 23z
     -0.0017902 1x 49y
      0.0017902 1x 50y
     -0.0017902 1x 51z
      0.0017902 1x 55z
     -0.0017902 1y 3x
      0.0017902 1y 4x
     -0.0017902 1y 7x
      0.0017902 1y 8x
      0.0017902 1y 17x
      0.0017902 1y 17z
     -0.0017902 1y 18x
      0.0017902 1y 18z
     -0.0017902 1y 19z
     -0.0017902 1y 23z
      0.0017902 1y 49x
     -0.0017902 1y 49z
     -0.0017902 1y 50x
     -0.0017902 1y 50z
      0.0017902 1y 51z
      0.0017902 1y 55z
     -0.0017902 1z 3x
     -0.0017902 1z 4x
      0.0017902 1z 7x
      0.0017902 1z 8x
     -0.0017902 1z 17y
     -0.0017902 1z 18y
      0.0017902 1z 19x
      0.0017902 1z 19y
     -0.0017902 1z 23x
      0.0017902 1z 23y
      0.0017902 1z 49y
      0.0017902 1z 50y
      0.0017902 1z 51x
     -0.0017902 1z 51y
     -0.0017902 1z 55x
     -0.0017902 1z 55y
     -0.0017902 9x 11y
     -0.0017902 9x 11z
      0.0017902 9x 12y
     -0.0017902 9x 12z
     -0.0017902 9x 15y
      0.0017902 9x 15z
      0.0017902 9x 16y
      0.0017902 9x 16z
      0.0017902 9x 25y
     -0.0017902 9x 26y
      0.0017902 9x 27z
     -0.0017902 9x 31z
      0.0017902 9x 57y
     -0.0017902 9x 58y
      0.0017902 9x 59z
     -0.0017902 9x 63z
      0.0017902 9y 11x
     -0.0017902 9y 12x
      0.0017902 9y 15x
     -0.0017902 9y 16x
     -0.0017902 9y 25x
     -0.0017902 9y 25z
      0.0017902 9y 26x
     -0.0017902 9y 26z
      0.0017902 9y 27z
      0.0017902 9y 31z
     -0.0017902 9y 57x
      0.0017902 9y 57z
      0.0017902 9y 58x
      0.0017902 9y 58z
     -0.0017902 9y 59z
     -0.0017902 9y 63z
      0.0017902 9z 11x
      0.0017902 9z 12x
     -0.0017902 9z 15x
     -0.0017902 9z 16x
      0.0017902 9z 25y
      0.0017902 9z 26y
     -0.0017902 9z 27x
     -0.0017902 9z 27y
      0.0017902 9z 31x
     -0.0017902 9z 31y
     -0.0017902 9z 57y
     -0.0017902 9z 58y
     -0.0017902 9z 59x
      0.0017902 9z 59y
      0.0017902 9z 63x
      0.0017902 9z 63y
     -0.0034663 1x 17x
     -0.0034663 1x 18x
     -0.0034663 1x 19x
     -0.0034663 1x 23x
     -0.0034663 1x 49x
     -0.0034663 1x 50x
     -0.0034663 1x 51x
     -0.0034663 1x 55x
     -0.0034663 1y 3y
     -0.0034663 1y 4y
     -0.0034663 1y 7y
     -0.0034663 1y 8y
     -0.0034663 1y 19y
     -0.0034663 1y 23y
     -0.0034663 1y 51y
     -0.0034663 1y 55y
     -0.0034663 1z 3z
     -0.0034663 1z 4z
     -0.0034663 1z 7z
     -0.0034663 1z 8z
     -0.0034663 1z 17z
     -0.0034663 1z 18z
     -0.0034663 1z 49z
     -0.0034663 1z 50z
     -0.0034663 9x 25x
     -0.0034663 9x 26x
     -0.0034663 9x 27x
     -0.0034663 9x 31x
     -0.0034663 9x 57x
     -0.0034663 9x 58x
     -0.0034663 9x 59x
     -0.0034663 9x 63x
     -0.0034663 9y 11y
     -0.0034663 9y 12y
     -0.0034663 9y 15y
     -0.0034663 9y 16y
     -0.0034663 9y 27y
     -0.0034663 9y 31y
     -0.0034663 9y 59y
     -0.0034663 9y 63y
     -0.0034663 9z 11z
     -0.0034663 9z 12z
     -0.0034663 9z 15z
     -0.0034663 9z 16z
     -0.0034663 9z 25z
     -0.0034663 9z 26z
     -0.0034663 9z 57z
     -0.0034663 9z 58z
     -0.0038151 1x 17z
      0.0038151 1x 18z
     -0.0038151 1x 19y
      0.0038151 1x 23y
      0.0038151 1x 49z
     -0.0038151 1x 50z
      0.0038151 1x 51y
     -0.0038151 1x 55y
     -0.0038151 1y 3z
      0.0038151 1y 4z
      0.0038151 1y 7z
     -0.0038151 1y 8z
     -0.0038151 1y 19x
      0.0038151 1y 23x
      0.0038151 1y 51x
     -0.0038151 1y 55x
     -0.0038151 1z 3y
      0.0038151 1z 4y
      0.0038151 1z 7y
     -0.0038151 1z 8y
     -0.0038151 1z 17x
      0.0038151 1z 18x
      0.0038151 1z 49x
     -0.0038151 1z 50x
     -0.0038151 9x 25z
      0.0038151 9x 26z
     -0.0038151 9x 27y
      0.0038151 9x 31y
      0.0038151 9x 57z
     -0.0038151 9x 58z
      0.0038151 9x 59y
     -0.0038151 9x 63y
     -0.0038151 9y 11z
      0.0038151 9y 12z
      0.0038151 9y 15z
     -0.0038151 9y 16z
     -0.0038151 9y 27x
      0.0038151 9y 31x
      0.0038151 9y 59x
     -0.0038151 9y 63x
     -0.0038151 9z 11y
      0.0038151 9z 12y
      0.0038151 9z 15y
     -0.0038151 9z 16y
     -0.0038151 9z 25x
      0.0038151 9z 26x
      0.0038151 9z 57x
     -0.0038151 9z 58x
      0.0074849 1x 6x
      0.0074849 1y 34y
      0.0074849 1z 37z
      0.0074849 9x 14x
      0.0074849 9y 42y
      0.0074849 9z 45z
      0.0000000 1x 34x
      0.0000000 1x 37x
      0.0000000 1y 6y
      0.0000000 1y 37y
      0.0000000 1z 6z
      0.0000000 1z 34z
      0.0000000 9x 42x
      0.0000000 9x 45x
      0.0000000 9y 14y
      0.0000000 9y 45y
      0.0000000 9z 14z
      0.0000000 9z 42z
     -0.0653122 1x 9x
     -0.0653122 1x 16x
     -0.0653122 1x 58x
     -0.0653122 1x 63x
     -0.0653122 1y 9y
     -0.0653122 1y 16y
     -0.0653122 1y 58y
     -0.0653122 1y 63y
     -0.0653122 1z 9z
     -0.0653122 1z 16z
     -0.0653122 1z 58z
     -0.0653122 1z 63z
     -0.0653122 9x 1x
     -0.0653122 9x 3x
     -0.0653122 9x 17x
     -0.0653122 9x 19x
     -0.0653122 9y 1y
     -0.0653122 9y 3y
     -0.0653122 9y 17y
     -0.0653122 9y 19y
     -0.0653122 9z 1z
     -0.0653122 9z 3z
     -0.0653122 9z 17z
     -0.0653122 9z 19z
     -0.0467364 1x 9y
     -0.0467364 1x 9z
      0.0467364 1x 16y
      0.0467364 1x 16z
      0.0467364 1x 58y
     -0.0467364 1x 58z
     -0.0467364 1x 63y
      0.0467364 1x 63z
     -0.0467364 1y 9x
     -0.0467364 1y 9z
      0.0467364 1y 16x
     -0.0467364 1y 16z
      0.0467364 1y 58x
      0.0467364 1y 58z
     -0.0467364 1y 63x
      0.0467364 1y 63z
     -0.0467364 1z 9x
     -0.0467364 1z 9y
      0.0467364 1z 16x
     -0.0467364 1z 16y
     -0.0467364 1z 58x
      0.0467364 1z 58y
      0.0467364 1z 63x
      0.0467364 1z 63y
     -0.0467364 9x 1y
     -0.0467364 9x 1z
      0.0467364 9x 3y
      0.0467364 9x 3z
      0.0467364 9x 17y
     -0.0467364 9x 17z
     -0.0467364 9x 19y
      0.0467364 9x 19z
     -0.0467364 9y 1x
     -0.0467364 9y 1z
      0.0467364 9y 3x
     -0.0467364 9y 3z
      0.0467364 9y 17x
      0.0467364 9y 17z
     -0.0467364 9y 19x
      0.0467364 9y 19z
     -0.0467364 9z 1x
     -0.0467364 9z 1y
      0.0467364 9z 3x
     -0.0467364 9z 3y
     -0.0467364 9z 17x
      0.0467364 9z 17y
      0.0467364 9z 19x
      0.0467364 9z 19y
      0.0010601 1x 10x
      0.0010601 1x 12x
      0.0010601 1x 13x
      0.0010601 1x 15x
      0.0010601 1x 57x
      0.0010601 1x 59x
      0.0010601 1x 62x
      0.0010601 1x 64x
      0.0010601 1y 10y
      0.0010601 1y 15y
      0.0010601 1y 26y
      0.0010601 1y 31y
      0.0010601 1y 41y
      0.0010601 1y 48y
      0.0010601 1y 57y
      0.0010601 1y 64y
      0.0010601 1z 12z
      0.0010601 1z 13z
      0.0010601 1z 26z
      0.0010601 1z 31z
      0.0010601 1z 41z
      0.0010601 1z 48z
      0.0010601 1z 59z
      0.0010601 1z 62z
      0.0010601 9x 2x
      0.0010601 9x 4x
      0.0010601 9x 5x
      0.0010601 9x 7x
      0.0010601 9x 18x
      0.0010601 9x 20x
      0.0010601 9x 21x
      0.0010601 9x 23x
      0.0010601 9y 2y
      0.0010601 9y 4y
      0.0010601 9y 18y
      0.0010601 9y 20y
      0.0010601 9y 33y
      0.0010601 9y 35y
      0.0010601 9y 49y
      0.0010601 9y 51y
      0.0010601 9z 5z
      0.0010601 9z 7z
      0.0010601 9z 21z
      0.0010601 9z 23z
      0.0010601 9z 33z
      0.0010601 9z 35z
      0.0010601 9z 49z
      0.0010601 9z 51z
     -0.0006689 1x 10y
      0.0006689 1x 12z
     -0.0006689 1x 13z
      0.0006689 1x 15y
      0.0006689 1x 57y
      0.0006689 1x 59z
     -0.0006689 1x 62z
     -0.0006689 1x 64y
     -0.0006689 1y 10x
      0.0006689 1y 15x
      0.0006689 1y 26z
      0.0006689 1y 31z
     -0.0006689 1y 41z
     -0.0006689 1y 48z
      0.0006689 1y 57x
     -0.0006689 1y 64x
      0.0006689 1z 12x
     -0.0006689 1z 13x
      0.0006689 1z 26y
      0.0006689 1z 31y
     -0.0006689 1z 41y
     -0.0006689 1z 48y
      0.0006689 1z 59x
     -0.0006689 1z 62x
     -0.0006689 9x 2y
      0.0006689 9x 4y
     -0.0006689 9x 5z
      0.0006689 9x 7z
      0.0006689 9x 18y
     -0.0006689 9x 20y
     -0.0006689 9x 21z
      0.0006689 9x 23z
     -0.0006689 9y 2x
      0.0006689 9y 4x
      0.0006689 9y 18x
     -0.0006689 9y 20x
     -0.0006689 9y 33z
     -0.0006689 9y 35z
      0.0006689 9y 49z
      0.0006689 9y 51z
     -0.0006689 9z 5x
      0.0006689 9z 7x
     -0.0006689 9z 21x
      0.0006689 9z 23x
     -0.0006689 9z 33y
     -0.0006689 9z 35y
      0.0006689 9z 49y
      0.0006689 9z 51y
     -0.0006334 1x 10z
      0.0006334 1x 12y
     -0.0006334 1x 13y
      0.0006334 1x 15z
      0.0006334 1x 26y
     -0.0006334 1x 26z
     -0.0006334 1x 31y
      0.0006334 1x 31z
     -0.0006334 1x 41y
     -0.0006334 1x 41z
      0.0006334 1x 48y
      0.0006334 1x 48z
     -0.0006334 1x 57z
     -0.0006334 1x 59y
      0.0006334 1x 62y
      0.0006334 1x 64z
     -0.0006334 1y 10z
      0.0006334 1y 12x
     -0.0006334 1y 12z
     -0.0006334 1y 13x
     -0.0006334 1y 13z
     -0.0006334 1y 15z
      0.0006334 1y 26x
     -0.0006334 1y 31x
     -0.0006334 1y 41x
      0.0006334 1y 48x
      0.0006334 1y 57z
     -0.0006334 1y 59x
      0.0006334 1y 59z
      0.0006334 1y 62x
      0.0006334 1y 62z
      0.0006334 1y 64z
     -0.0006334 1z 10x
     -0.0006334 1z 10y
     -0.0006334 1z 12y
     -0.0006334 1z 13y
      0.0006334 1z 15x
     -0.0006334 1z 15y
     -0.0006334 1z 26x
      0.0006334 1z 31x
     -0.0006334 1z 41x
      0.0006334 1z 48x
     -0.0006334 1z 57x
      0.0006334 1z 57y
      0.0006334 1z 59y
      0.0006334 1z 62y
      0.0006334 1z 64x
      0.0006334 1z 64y
     -0.0006334 9x 2z
      0.0006334 9x 4z
     -0.0006334 9x 5y
      0.0006334 9x 7y
     -0.0006334 9x 18z
      0.0006334 9x 20z
      0.0006334 9x 21y
     -0.0006334 9x 23y
     -0.0006334 9x 33y
     -0.0006334 9x 33z
      0.0006334 9x 35y
      0.0006334 9x 35z
      0.0006334 9x 49y
     -0.0006334 9x 49z
     -0.0006334 9x 51y
      0.0006334 9x 51z
     -0.0006334 9y 2z
     -0.0006334 9y 4z
     -0.0006334 9y 5x
     -0.0006334 9y 5z
      0.0006334 9y 7x
     -0.0006334 9y 7z
      0.0006334 9y 18z
      0.0006334 9y 20z
      0.0006334 9y 21x
      0.0006334 9y 21z
     -0.0006334 9y 23x
      0.0006334 9y 23z
     -0.0006334 9y 33x
      0.0006334 9y 35x
      0.0006334 9y 49x
     -0.0006334 9y 51x
     -0.0006334 9z 2x
     -0.0006334 9z 2y
      0.0006334 9z 4x
     -0.0006334 9z 4y
     -0.0006334 9z 5y
     -0.0006334 9z 7y
     -0.0006334 9z 18x
      0.0006334 9z 18y
      0.0006334 9z 20x
      0.0006334 9z 20y
      0.0006334 9z 21y
      0.0006334 9z 23y
     -0.0006334 9z 33x
      0.0006334 9z 35x
     -0.0006334 9z 49x
      0.0006334 9z 51x
      0.0000066 1x 26x
      0.0000066 1x 31x
      0.0000066 1x 41x
      0.0000066 1x 48x
      0.0000066 1y 12y
      0.0000066 1y 13y
      0.0000066 1y 59y
      0.0000066 1y 62y
      0.0000066 1z 10z
      0.0000066 1z 15z
      0.0000066 1z 57z
      0.0000066 1z 64z
      0.0000066 9x 33x
      0.0000066 9x 35x
      0.0000066 9x 49x
      0.0000066 9x 51x
      0.0000066 9y 5y
      0.0000066 9y 7y
      0.0000066 9y 21y
      0.0000066 9y 23y
      0.0000066 9z 2z
      0.0000066 9z 4z
      0.0000066 9z 18z
      0.0000066 9z 20z
     -0.0036689 1x 11x
     -0.0036689 1x 14x
     -0.0036689 1x 60x
     -0.0036689 1x 61x
     -0.0036689 1y 25y
     -0.0036689 1y 32y
     -0.0036689 1y 42y
     -0.0036689 1y 47y
     -0.0036689 1z 27z
     -0.0036689 1z 30z
     -0.0036689 1z 44z
     -0.0036689 1z 45z
     -0.0036689 9x 6x
     -0.0036689 9x 8x
     -0.0036689 9x 22x
     -0.0036689 9x 24x
     -0.0036689 9y 34y
     -0.0036689 9y 36y
     -0.0036689 9y 50y
     -0.0036689 9y 52y
     -0.0036689 9z 37z
     -0.0036689 9z 39z
     -0.0036689 9z 53z
     -0.0036689 9z 55z
      0.0005067 1x 11y
      0.0005067 1x 11z
     -0.0005067 1x 14y
     -0.0005067 1x 14z
      0.0005067 1x 25y
      0.0005067 1x 27z
     -0.0005067 1x 30z
     -0.0005067 1x 32y
     -0.0005067 1x 42y
      0.0005067 1x 44z
     -0.0005067 1x 45z
      0.0005067 1x 47y
     -0.0005067 1x 60y
      0.0005067 1x 60z
      0.0005067 1x 61y
     -0.0005067 1x 61z
      0.0005067 1y 11x
     -0.0005067 1y 14x
      0.0005067 1y 25x
      0.0005067 1y 25z
      0.0005067 1y 27z
      0.0005067 1y 30z
     -0.0005067 1y 32x
      0.0005067 1y 32z
     -0.0005067 1y 42x
     -0.0005067 1y 42z
     -0.0005067 1y 44z
     -0.0005067 1y 45z
      0.0005067 1y 47x
     -0.0005067 1y 47z
     -0.0005067 1y 60x
      0.0005067 1y 61x
      0.0005067 1z 11x
     -0.0005067 1z 14x
      0.0005067 1z 25y
      0.0005067 1z 27x
      0.0005067 1z 27y
     -0.0005067 1z 30x
      0.0005067 1z 30y
      0.0005067 1z 32y
     -0.0005067 1z 42y
      0.0005067 1z 44x
     -0.0005067 1z 44y
     -0.0005067 1z 45x
     -0.0005067 1z 45y
     -0.0005067 1z 47y
      0.0005067 1z 60x
     -0.0005067 1z 61x
     -0.0005067 9x 6y
     -0.0005067 9x 6z
      0.0005067 9x 8y
      0.0005067 9x 8z
      0.0005067 9x 22y
     -0.0005067 9x 22z
     -0.0005067 9x 24y
      0.0005067 9x 24z
     -0.0005067 9x 34y
      0.0005067 9x 36y
     -0.0005067 9x 37z
      0.0005067 9x 39z
      0.0005067 9x 50y
     -0.0005067 9x 52y
     -0.0005067 9x 53z
      0.0005067 9x 55z
     -0.0005067 9y 6x
      0.0005067 9y 8x
      0.0005067 9y 22x
     -0.0005067 9y 24x
     -0.0005067 9y 34x
     -0.0005067 9y 34z
      0.0005067 9y 36x
     -0.0005067 9y 36z
     -0.0005067 9y 37z
     -0.0005067 9y 39z
      0.0005067 9y 50x
      0.0005067 9y 50z
     -0.0005067 9y 52x
      0.0005067 9y 52z
      0.0005067 9y 53z
      0.0005067 9y 55z
     -0.0005067 9z 6x
      0.0005067 9z 8x
     -0.0005067 9z 22x
      0.0005067 9z 24x
     -0.0005067 9z 34y
     -0.0005067 9z 36y
     -0.0005067 9z 37x
     -0.0005067 9z 37y
      0.0005067 9z 39x
     -0.0005067 9z 39y
      0.0005067 9z 50y
      0.0005067 9z 52y
     -0.0005067 9z 53x
      0.0005067 9z 53y
      0.0005067 9z 55x
      0.0005067 9z 55y
     -0.0005306 1x 25x
     -0.0005306 1x 27x
     -0.0005306 1x 30x
     -0.0005306 1x 32x
     -0.0005306 1x 42x
     -0.0005306 1x 44x
     -0.0005306 1x 45x
     -0.0005306 1x 47x
     -0.0005306 1y 11y
     -0.0005306 1y 14y
     -0.0005306 1y 27y
     -0.0005306 1y 30y
     -0.0005306 1y 44y
     -0.0005306 1y 45y
     -0.0005306 1y 60y
     -0.0005306 1y 61y
     -0.0005306 1z 11z
     -0.0005306 1z 14z
     -0.0005306 1z 25z
     -0.0005306 1z 32z
     -0.0005306 1z 42z
     -0.0005306 1z 47z
     -0.0005306 1z 60z
     -0.0005306 1z 61z
     -0.0005306 9x 34x
     -0.0005306 9x 36x
     -0.0005306 9x 37x
     -0.0005306 9x 39x
     -0.0005306 9x 50x
     -0.0005306 9x 52x
     -0.0005306 9x 53x
     -0.0005306 9x 55x
     -0.0005306 9y 6y
     -0.0005306 9y 8y
     -0.0005306 9y 22y
     -0.0005306 9y 24y
     -0.0005306 9y 37y
     -0.0005306 9y 39y
     -0.0005306 9y 53y
     -0.0005306 9y 55y
     -0.0005306 9z 6z
     -0.0005306 9z 8z
     -0.0005306 9z 22z
     -0.0005306 9z 24z
     -0.0005306 9z 34z
     -0.0005306 9z 36z
     -0.0005306 9z 50z
     -0.0005306 9z 52z
     -0.0005195 1x 25z
     -0.0005195 1x 27y
      0.0005195 1x 30y
      0.0005195 1x 32z
     -0.0005195 1x 42z
      0.0005195 1x 44y
     -0.0005195 1x 45y
      0.0005195 1x 47z
     -0.0005195 1y 11z
     -0.0005195 1y 14z
     -0.0005195 1y 27x
      0.0005195 1y 30x
      0.0005195 1y 44x
     -0.0005195 1y 45x
      0.0005195 1y 60z
      0.0005195 1y 61z
     -0.0005195 1z 11y
     -0.0005195 1z 14y
     -0.0005195 1z 25x
      0.0005195 1z 32x
     -0.0005195 1z 42x
      0.0005195 1z 47x
      0.0005195 1z 60y
      0.0005195 1z 61y
     -0.0005195 9x 34z
      0.0005195 9x 36z
     -0.0005195 9x 37y
      0.0005195 9x 39y
     -0.0005195 9x 50z
      0.0005195 9x 52z
      0.0005195 9x 53y
     -0.0005195 9x 55y
     -0.0005195 9y 6z
     -0.0005195 9y 8z
      0.0005195 9y 22z
      0.0005195 9y 24z
     -0.0005195 9y 37x
      0.0005195 9y 39x
      0.0005195 9y 53x
     -0.0005195 9y 55x
     -0.0005195 9z 6y
     -0.0005195 9z 8y
      0.0005195 9z 22y
      0.0005195 9z 24y
     -0.0005195 9z 34x
      0.0005195 9z 36x
     -0.0005195 9z 50x
      0.0005195 9z 52x
     -0.0007040 1x 20x
     -0.0007040 1x 21x
     -0.0007040 1x 22x
     -0.0007040 1x 24x
     -0.0007040 1x 52x
     -0.0007040 1x 53x
     -0.0007040 1x 54x
     -0.0007040 1x 56x
     -0.0007040 1y 20y
     -0.0007040 1y 24y
     -0.0007040 1y 35y
     -0.0007040 1y 36y
     -0.0007040 1y 39y
     -0.0007040 1y 40y
     -0.0007040 1y 52y
     -0.0007040 1y 56y
     -0.0007040 1z 21z
     -0.0007040 1z 22z
     -0.0007040 1z 35z
     -0.0007040 1z 36z
     -0.0007040 1z 39z
     -0.0007040 1z 40z
     -0.0007040 1z 53z
     -0.0007040 1z 54z
     -0.0007040 9x 28x
     -0.0007040 9x 29x
     -0.0007040 9x 30x
     -0.0007040 9x 32x
     -0.0007040 9x 60x
     -0.0007040 9x 61x
     -0.0007040 9x 62x
     -0.0007040 9x 64x
     -0.0007040 9y 28y
     -0.0007040 9y 32y
     -0.0007040 9y 43y
     -0.0007040 9y 44y
     -0.0007040 9y 47y
     -0.0007040 9y 48y
     -0.0007040 9y 60y
     -0.0007040 9y 64y
     -0.0007040 9z 29z
     -0.0007040 9z 30z
     -0.0007040 9z 43z
     -0.0007040 9z 44z
     -0.0007040 9z 47z
     -0.0007040 9z 48z
     -0.0007040 9z 61z
     -0.0007040 9z 62z
      0.0012411 1x 20y
      0.0012411 1x 21z
     -0.0012411 1x 22z
     -0.0012411 1x 24y
     -0.0012411 1x 52y
     -0.0012411 1x 53z
      0.0012411 1x 54z
      0.0012411 1x 56y
      0.0012411 1y 20x
     -0.0012411 1y 24x
      0.0012411 1y 35z
     -0.0012411 1y 36z
     -0.0012411 1y 39z
      0.0012411 1y 40z
     -0.0012411 1y 52x
      0.0012411 1y 56x
      0.0012411 1z 21x
     -0.0012411 1z 22x
      0.0012411 1z 35y
     -0.0012411 1z 36y
     -0.0012411 1z 39y
      0.0012411 1z 40y
     -0.0012411 1z 53x
      0.0012411 1z 54x
      0.0012411 9x 28y
      0.0012411 9x 29z
     -0.0012411 9x 30z
     -0.0012411 9x 32y
     -0.0012411 9x 60y
     -0.0012411 9x 61z
      0.0012411 9x 62z
      0.0012411 9x 64y
      0.0012411 9y 28x
     -0.0012411 9y 32x
      0.0012411 9y 43z
     -0.0012411 9y 44z
     -0.0012411 9y 47z
      0.0012411 9y 48z
     -0.0012411 9y 60x
      0.0012411 9y 64x
      0.0012411 9z 29x
     -0.0012411 9z 30x
      0.0012411 9z 43y
     -0.0012411 9z 44y
     -0.0012411 9z 47y
      0.0012411 9z 48y
     -0.0012411 9z 61x
      0.0012411 9z 62x
     -0.0001276 1x 20z
     -0.0001276 1x 21y
      0.0001276 1x 22y
      0.0001276 1x 24z
      0.0001276 1x 35y
      0.0001276 1x 35z
     -0.0001276 1x 36y
      0.0001276 1x 36z
      0.0001276 1x 39y
     -0.0001276 1x 39z
     -0.0001276 1x 40y
     -0.0001276 1x 40z
     -0.0001276 1x 52z
     -0.0001276 1x 53y
      0.0001276 1x 54y
      0.0001276 1x 56z
     -0.0001276 1y 20z
      0.0001276 1y 21x
      0.0001276 1y 21z
     -0.0001276 1y 22x
      0.0001276 1y 22z
     -0.0001276 1y 24z
     -0.0001276 1y 35x
      0.0001276 1y 36x
     -0.0001276 1y 39x
      0.0001276 1y 40x
      0.0001276 1y 52z
      0.0001276 1y 53x
     -0.0001276 1y 53z
     -0.0001276 1y 54x
     -0.0001276 1y 54z
      0.0001276 1y 56z
      0.0001276 1z 20x
      0.0001276 1z 20y
     -0.0001276 1z 21y
     -0.0001276 1z 22y
     -0.0001276 1z 24x
      0.0001276 1z 24y
     -0.0001276 1z 35x
     -0.0001276 1z 36x
      0.0001276 1z 39x
      0.0001276 1z 40x
      0.0001276 1z 52x
     -0.0001276 1z 52y
      0.0001276 1z 53y
      0.0001276 1z 54y
     -0.0001276 1z 56x
     -0.0001276 1z 56y
      0.0001276 9x 28z
      0.0001276 9x 29y
     -0.0001276 9x 30y
     -0.0001276 9x 32z
     -0.0001276 9x 43y
     -0.0001276 9x 43z
      0.0001276 9x 44y
     -0.0001276 9x 44z
     -0.0001276 9x 47y
      0.0001276 9x 47z
      0.0001276 9x 48y
      0.0001276 9x 48z
      0.0001276 9x 60z
      0.0001276 9x 61y
     -0.0001276 9x 62y
     -0.0001276 9x 64z
      0.0001276 9y 28z
     -0.0001276 9y 29x
     -0.0001276 9y 29z
      0.0001276 9y 30x
     -0.0001276 9y 30z
      0.0001276 9y 32z
      0.0001276 9y 43x
     -0.0001276 9y 44x
      0.0001276 9y 47x
     -0.0001276 9y 48x
     -0.0001276 9y 60z
     -0.0001276 9y 61x
      0.0001276 9y 61z
      0.0001276 9y 62x
      0.0001276 9y 62z
     -0.0001276 9y 64z
     -0.0001276 9z 28x
     -0.0001276 9z 28y
      0.0001276 9z 29y
      0.0001276 9z 30y
      0.0001276 9z 32x
     -0.0001276 9z 32y
      0.0001276 9z 43x
      0.0001276 9z 44x
     -0.0001276 9z 47x
     -0.0001276 9z 48x
     -0.0001276 9z 60x
      0.0001276 9z 60y
     -0.0001276 9z 61y
     -0.0001276 9z 62y
      0.0001276 9z 64x
      0.0001276 9z 64y
     -0.0000101 1x 35x
     -0.0000101 1x 36x
     -0.0000101 1x 39x
     -0.0000101 1x 40x
     -0.0000101 1y 21y
     -0.0000101 1y 22y
     -0.0000101 1y 53y
     -0.0000101 1y 54y
     -0.0000101 1z 20z
     -0.0000101 1z 24z
     -0.0000101 1z 52z
     -0.0000101 1z 56z
     -0.0000101 9x 43x
     -0.0000101 9x 44x
     -0.0000101 9x 47x
     -0.0000101 9x 48x
     -0.0000101 9y 29y
     -0.0000101 9y 30y
     -0.0000101 9y 61y
     -0.0000101 9y 62y
     -0.0000101 9z 28z
     -0.0000101 9z 32z
     -0.0000101 9z 60z
     -0.0000101 9z 64z
      0.0000244 1x 28x
      0.0000244 1x 29x
      0.0000244 1x 43x
      0.0000244 1x 46x
      0.0000244 1y 28y
      0.0000244 1y 29y
      0.0000244 1y 43y
      0.0000244 1y 46y
      0.0000244 1z 28z
      0.0000244 1z 29z
      0.0000244 1z 43z
      0.0000244 1z 46z
      0.0000244 9x 38x
      0.0000244 9x 40x
      0.0000244 9x 54x
      0.0000244 9x 56x
      0.0000244 9y 38y
      0.0000244 9y 40y
      0.0000244 9y 54y
      0.0000244 9y 56y
      0.0000244 9z 38z
      0.0000244 9z 40z
      0.0000244 9z 54z
      0.0000244 9z 56z
     -0.0004698 1x 28y
      0.0004698 1x 28z
      0.0004698 1x 29y
     -0.0004698 1x 29z
      0.0004698 1x 43y
      0.0004698 1x 43z
     -0.0004698 1x 46y
     -0.0004698 1x 46z
     -0.0004698 1y 28x
      0.0004698 1y 28z
      0.0004698 1y 29x
      0.0004698 1y 29z
      0.0004698 1y 43x
     -0.0004698 1y 43z
     -0.0004698 1y 46x
     -0.0004698 1y 46z
      0.0004698 1z 28x
      0.0004698 1z 28y
     -0.0004698 1z 29x
      0.0004698 1z 29y
      0.0004698 1z 43x
     -0.0004698 1z 43y
     -0.0004698 1z 46x
     -0.0004698 1z 46y
     -0.0004698 9x 38y
     -0.0004698 9x 38z
      0.0004698 9x 40y
      0.0004698 9x 40z
      0.0004698 9x 54y
     -0.0004698 9x 54z
     -0.0004698 9x 56y
      0.0004698 9x 56z
     -0.0004698 9y 38x
     -0.0004698 9y 38z
      0.0004698 9y 40x
     -0.0004698 9y 40z
      0.0004698 9y 54x
      0.0004698 9y 54z
     -0.0004698 9y 56x
      0.0004698 9y 56z
     -0.0004698 9z 38x
     -0.0004698 9z 38y
      0.0004698 9z 40x
     -0.0004698 9z 40y
     -0.0004698 9z 54x
      0.0004698 9z 54y
      0.0004698 9z 56x
      0.0004698 9z 56y
     -0.0004517 1x 38x
     -0.0004517 1y 38y
     -0.0004517 1z 38z
     -0.0004517 9x 46x
     -0.0004517 9y 46y
     -0.0004517 9z 46z