In [2]:
#
# LF test with noise
# C = S + N, where noise N = sigma^2 I, where I is the identity matrix
#
# We generate 20 values of parameters x for function logLF(x)
# We chose our parameters around the value of Boltzmann code generated C_3
# CAMB generated C_3 equals 5.88275e-10
#
# 1. Set all C_l = 0 except C_3  DONE
#
# 2. LF is based on a matrix C that only has a P_3 term. DONE
#
# 3. Add to that matrix a white noise term (sigma^2 on the diagonal). DONE
#
# 4. LF now has *exactly two* free parameters, C_3 and sigma^2. DONE
#
# 5. What is LF vs C_3 (at, perhaps, a couple values of sigma^2)? PROBLEM!
#
# 6. over-plot |a_3m|^2 values
#
# You could initialize that parameter to the empirical variance!
#

In [3]:
%matplotlib inline
import math
import matplotlib.pyplot as plt 
import numpy as np
import healpy as hp
import pyfits as pf
import astropy as ap
import os
from scipy.special import eval_legendre  ##special scipy function

In [4]:
#
# Review of Likelihood Formalism:
#
# -2 loglikelihood is
# -2 ln L \propto m^T C^-1 m + lnDet C
# where C = S + N
# We are working with noiseless maps, N = 0, so C = S
#
# In real space, 
# data: the temperature map, 
# parameters: theoretical CAMB generated C_l, C^theory_l 
#
# m = array of temperature pixels
# S = S_ij
# N = diagonal noise (but here it is noiseless! N=0)
#
# In spherical harmonic space
# data: the Healpix anafast outputarray of a_lm (or similarly, \hat{C}_l )
# parameters: the theoretical C_l
#
# m = a_lm coefficients
# S is diagonal (C_2, C_3, etc.)
# N is non-sparse matrix (but here it is noiseless! N=0)
#
#
# NOTE: The correct standard is to systematically remove the monopole, dipole terms l=0,l=1
#       Also, we use in the following lmax = 2*nside

In [5]:
cd ~/Desktop/CMBintheLikeHoodz/Likelihood_Comparison


/Users/evanbiederstedt/Desktop/CMBintheLikeHoodz/Likelihood_Comparison

In [6]:
camb1 = "camb_nside16_lmax32_alms.fits"
camb2 = "camb_nside16_lmax32_map.fits"
camb3 = "camb_nside16_lmax32_scalcls.fits"
planck1 = "100GHz_nside16_lmax32_cls.fits"
planck2 = "100GHz_nside16_lmax32_cmb_alm.fits"
planck3 = "100GHz_nside16_lmax32_sky_alm.fits"
planck4 = "100GHz_nside16_lmax32_skymap.fits"

nside = 16

In [7]:
npix = 12*(nside**2) #total number of pixels, npix
LMAX = ((2*nside)) #maximum l of the power spectrum C_l
heal_npix = hp.nside2npix(nside) # Healpix calculated npix

print "The total number of pixels is " + str(npix)
print "The maximum ell of the power spectrum C_l set to lmax = 2*nside " +str(LMAX)
print "Healpix tells me total number of pixels npix is equal to " + str(heal_npix)


The total number of pixels is 3072
The maximum ell of the power spectrum C_l set to lmax = 2*nside 32
Healpix tells me total number of pixels npix is equal to 3072

In [8]:
#
# Begin with a Munich Planck-simulated map, and CAMB Boltzmann-code generated C_l values
#

In [9]:
# Theoretical scalar C_l array, CAMB
#
# open a FITS file, theoretical C_l values generated by CAMB
# type()=pyfits.hdu.hdulist.HDUList
cl_open = pf.open(camb3)
# recall camb3 = "camb_nside16_lmax32_scalcls.fits"

In [10]:
theoryCls_arr1 = cl_open[1].data
print theoryCls_arr1[:10]
# Recall there are four columns: temp, E pol, B pol, grad-temp cross terms
# first two values are zero, i.e. monopole, dipole
# XXX.field() references columns by 0-index
# field(0) is temperature values
# all Cl scalar temp values put into ndarray
# type()=numpy.ndarray


[(0.0, 0.0, 0.0, 0.0) (0.0, 0.0, 0.0, 0.0)
 (1.2639207e-09, 5.5308927e-14, 0.0, 3.6016001e-12)
 (5.8827504e-10, 4.5345086e-14, 0.0, 2.2704995e-12)
 (3.2867314e-10, 3.0680604e-14, 0.0, 1.4030458e-12)
 (2.065753e-10, 1.8198442e-14, 0.0, 8.6680196e-13)
 (1.4100289e-10, 9.6222612e-15, 0.0, 5.4035639e-13)
 (1.0233801e-10, 4.5884262e-15, 0.0, 3.3960166e-13)
 (7.7812937e-11, 2.0448748e-15, 0.0, 2.1437516e-13)
 (6.1362422e-11, 9.4503657e-16, 0.0, 1.3715881e-13)]

In [11]:
cltemps = theoryCls_arr1.field(0) 
print cltemps
print "The length of the array of theoretical Cl's is " +str(len(cltemps))
print "The array contains [C_0, C_1, C_2,..., C_" +str(len(cltemps)-1) + "]"
#print type(cltemps)=numpy.ndarray


[  0.00000000e+00   0.00000000e+00   1.26392075e-09   5.88275040e-10
   3.28673144e-10   2.06575299e-10   1.41002890e-10   1.02338013e-10
   7.78129366e-11   6.13624221e-11   4.98225766e-11   4.14123076e-11
   3.50811741e-11   3.01814025e-11   2.63133803e-11   2.32104266e-11
   2.06850804e-11   1.86004823e-11   1.68565179e-11   1.53792031e-11
   1.41130128e-11   1.30162998e-11   1.20591913e-11   1.12186076e-11
   1.04760627e-11   9.81660760e-12   9.22804801e-12   8.70035207e-12
   8.22520958e-12   7.79568684e-12   7.40596039e-12   7.05096528e-12
   6.72585642e-12]
The length of the array of theoretical Cl's is 33
The array contains [C_0, C_1, C_2,..., C_32]

In [12]:
# remove monopole l=0 and dipole l=1
theoryCl = cltemps[2:]
# len(theoryCl) = 31
print theoryCl
# theoryCl is np.ndarray of theoretical [C_2, C_3, C_4, ..., C_32]


[  1.26392075e-09   5.88275040e-10   3.28673144e-10   2.06575299e-10
   1.41002890e-10   1.02338013e-10   7.78129366e-11   6.13624221e-11
   4.98225766e-11   4.14123076e-11   3.50811741e-11   3.01814025e-11
   2.63133803e-11   2.32104266e-11   2.06850804e-11   1.86004823e-11
   1.68565179e-11   1.53792031e-11   1.41130128e-11   1.30162998e-11
   1.20591913e-11   1.12186076e-11   1.04760627e-11   9.81660760e-12
   9.22804801e-12   8.70035207e-12   8.22520958e-12   7.79568684e-12
   7.40596039e-12   7.05096528e-12   6.72585642e-12]

In [13]:
# Our input data is Gaerching generated, noiseless full-sky map
# Temperature map: here we use Planck simulated map from Munich, not CAMB map
# http://gavo.mpa-garching.mpg.de/planck/
#
# Read in with Healpy routine/function
#
# Use planck4 = "100GHz_nside16_lmax32_skymap.fits"
# This is a simulated data, 100GHz (where CMB dominates), no foregrounds
# 
mapread_planck4 = hp.read_map(planck4) # Healpix routine, input the sky map


NSIDE = 16
ORDERING = RING in fits file

In [14]:
hp.mollview(mapread_planck4) # visualization of full-sky CMB map, nside=16, lmax=32



In [15]:
# The uploaded temperature map is mapread_planck4 = hp.read_map(planck4)
print type(mapread_planck4) # type(mapread_planck4) = np.ndarray
print mapread_planck4.shape # mapread_planck4.shape = (3072, ) = (N_pix, )
#
# rename array for convenience
tempval = mapread_planck4
print tempval


<type 'numpy.ndarray'>
(3072,)
[ -5.36934613e-06   8.56208499e-06  -2.42593651e-05 ...,   1.00589954e-04
   8.22511720e-05   6.55527765e-05]

In [16]:
# Next, we use healpy map2alm to tranform to alm values
# Our input data is CAMB generated, noiseless full-sky map
# We calculate an array of a_lm from this by using Healpix map2alm, a subroutine of anafast
#
# map2alm only outputs m >=0 values, because m = -l values are equivalent to m = +l values
#
# Using map2alm, the length of the alm array is expected to be:
# (mmax * (2 * lmax + 1 - mmax)) / 2 + lmax + 1)"
#
# For mmax = lmax, this is l(l+1)/2 + l + 1
# i.e. 
# l = 0, there is 1
# l = 1, there is 3
# l = 2, there is 6
# l = 3, there is 10
# l = 4, there is 15
# etc.
almarr = hp.map2alm(mapread_planck4)                # This is an array of a_lm values
print "The array of spherical harmonic coefficients a_lm is"
print almarr
print "The arr.shape is " + str(almarr.shape)
print "The length of a_lm array is " + str(len(almarr))
#
print "For l=3, map2alm gives (a_00, a_10, a_11, a_20, a_21, a_22, a_30, a_31, a_32, a_33)"
print "However, this is NOT the order of the output! See below"
# In the Fortran F90 subroutines, complex alm are stored in an array that has 
# two dimensions to contain coefficients for positive and negative m values.
# Healpy doesn't do this....I think

print "============================="
print "============================="
print "Check indices with healpy.sphtfunc.Alm.getidx(lmax, l, m)"
print "Default ordering of healpy.map2alm() output is "
print "(0,0), (1,0), ..., (lmax, 0),"
print "(1,1), (2,1), ...., (lmax, 1),"
print "(2,2), .... (lmax, 2),(3,3), ...., (lmax, 3), etc. , .... (lmax, lmax)."


The array of spherical harmonic coefficients a_lm is
[ -2.31017678e-09 +0.00000000e+00j  -9.52615975e-10 +0.00000000e+00j
   2.65461833e-05 +0.00000000e+00j ...,   2.18198097e-14 +7.05484281e-14j
  -1.89836768e-12 -5.77749155e-13j  -2.40742355e-13 -1.30069701e-13j]
The arr.shape is (1176,)
The length of a_lm array is 1176
For l=3, map2alm gives (a_00, a_10, a_11, a_20, a_21, a_22, a_30, a_31, a_32, a_33)
However, this is NOT the order of the output! See below
=============================
=============================
Check indices with healpy.sphtfunc.Alm.getidx(lmax, l, m)
Default ordering of healpy.map2alm() output is 
(0,0), (1,0), ..., (lmax, 0),
(1,1), (2,1), ...., (lmax, 1),
(2,2), .... (lmax, 2),(3,3), ...., (lmax, 3), etc. , .... (lmax, lmax).

In [17]:
# ==========================
# DEMONSTRATION
# Notice how a_lm is indexed
# ==========================

mmm = np.arange(12) # define a map, i.e. an array of 12 "pixels"
lmaxxx = 4
alm = hp.map2alm(mmm, lmax=lmaxxx) # spherical harmonic transform
lm = hp.map2alm(mmm, lmax=lmaxxx) # spherical harmonic transform
print(alm)
print(alm.shape)

# So alm is actually a 1D vector.
# How is alm indexed?


l, m = hp.Alm.getlm(lmax=lmaxxx)
print(l)

print(m)




print "The l values are "+str(l)
print "The m values are "+str(m)
print " (l,m) is in order " +str(list(zip(l,m)))
#
# l, m = hp.Alm.getlm(lmax=lmax)
# print(l)
# [0 1 2 1 2 2]
# print(m)
# [0 0 0 1 1 2]
#
#
# So, for l = 2, m is [0, 1, 2].
#
# ==========================
# Notice how a_lm is indexed
# ==========================
#
#
#


[  1.43186913e+01 +0.00000000e+00j  -9.06158785e+00 +0.00000000e+00j
  -7.57672587e+00 +0.00000000e+00j   5.38292381e+00 +0.00000000e+00j
   2.49127749e+00 +0.00000000e+00j   6.02204636e-01 -2.01587603e+00j
   4.55476051e-16 +1.48937220e-15j   2.43950547e-01 -3.28507898e-01j
  -2.47937026e-17 +3.49331635e-16j   3.65595455e-01 -7.92402132e+00j
   5.92284905e-17 -4.53852723e-15j  -3.16614952e-01 -1.44872968e+01j
  -2.28780515e-03 +4.33449165e-01j  -5.66350430e-16 +1.59192782e-15j
   1.08501635e+01 -3.35394518e-16j]
(15,)
[0 1 2 3 4 1 2 3 4 2 3 4 3 4 4]
[0 0 0 0 0 1 1 1 1 2 2 2 3 3 4]
The l values are [0 1 2 3 4 1 2 3 4 2 3 4 3 4 4]
The m values are [0 0 0 0 0 1 1 1 1 2 2 2 3 3 4]
 (l,m) is in order [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (1, 1), (2, 1), (3, 1), (4, 1), (2, 2), (3, 2), (4, 2), (3, 3), (4, 3), (4, 4)]

In [18]:
# Check with healpy.sphtfunc.Alm.getidx(lmax, l, m)
# Returns index corresponding to (l,m) in an array describing alm up to lmax.
#
ell, emm = hp.Alm.getlm(lmax=32)

print "len(ell) is " +str(len(ell))
print "len(emm) is "+str(len(emm))
print "l values are "+str(ell[:10])
print "m values are "+str(emm[:10])
pairs = list(zip(ell, emm)) # put values together in pairs, zip()
ellemm = np.vstack((ell,emm)).T  # equivalent to list(zip(ell,emm)), but uses numpy throughout
print "Indices for a_lm for lmax (l, m) are:" 
print str(pairs[:50]) # The expected output


len(ell) is 561
len(emm) is 561
l values are [0 1 2 3 4 5 6 7 8 9]
m values are [0 0 0 0 0 0 0 0 0 0]
Indices for a_lm for lmax (l, m) are:
[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0), (9, 0), (10, 0), (11, 0), (12, 0), (13, 0), (14, 0), (15, 0), (16, 0), (17, 0), (18, 0), (19, 0), (20, 0), (21, 0), (22, 0), (23, 0), (24, 0), (25, 0), (26, 0), (27, 0), (28, 0), (29, 0), (30, 0), (31, 0), (32, 0), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (13, 1), (14, 1), (15, 1), (16, 1), (17, 1)]

In [19]:
print ellemm[:10]


[[0 0]
 [1 0]
 [2 0]
 [3 0]
 [4 0]
 [5 0]
 [6 0]
 [7 0]
 [8 0]
 [9 0]]

In [20]:
#
# For our first test, mode l = 3, we need to access a_lm coefficients a_30, a_31, a_32, a_33
# To find this for lmax = 32, we use
# healpy.sphtfunc.Alm.getidx(lmax, l, m)
# Returns index corresponding to (l,m) in an array describing alm up to lmax.
#
# Find the indices
index_a30 = hp.Alm.getidx(lmax=32, l=3, m=0)
index_a31 = hp.Alm.getidx(lmax=32, l=3, m=1)
index_a32 = hp.Alm.getidx(lmax=32, l=3, m=2)
index_a33 = hp.Alm.getidx(lmax=32, l=3, m=3)

In [21]:
print "Index a_30 is " +str(index_a30)
print "Index a_31 is "+str(index_a31)
print "Index a_32 is "+str(index_a32)
print "Index a_33 is "+str(index_a33)


Index a_30 is 3
Index a_31 is 35
Index a_32 is 66
Index a_33 is 96

In [22]:
#
# Create an array with only the values a_3m, i.e. a_30, a_31, a_32, a_33
#
# First convert the array of alm coefficients into a real
#
realalm = almarr.real
#
print realalm[:36]


[ -2.31017678e-09  -9.52615975e-10   2.65461833e-05   9.40623087e-07
   2.00021958e-05  -1.51649063e-05  -1.39254136e-06  -9.33866127e-06
   8.02083605e-06   3.08728239e-06  -9.65554187e-06  -5.97494409e-06
   3.57962700e-06  -2.84514045e-06   1.09318419e-06  -9.24471250e-06
   5.53151471e-06  -2.97313199e-06  -3.86777913e-07   4.40351200e-06
  -2.32386723e-06   1.40708109e-06  -1.04757477e-06  -7.14480702e-07
  -3.61133631e-06   3.45552001e-08   1.01058745e-06  -2.80470416e-06
  -4.19635640e-08  -1.93088194e-06   1.98468254e-06   1.12227258e-06
  -1.49841127e-06   1.77477994e-09  -1.20584331e-08   2.83992347e-09]

In [23]:
empty_almlist = []
#
a30 = realalm[3]
a31 = realalm[35]
a32 = realalm[66]
a33 = realalm[96]
#
print "a30 is " + str(a30)
print "a31 is " + str(a31)
print "a32 is " + str(a32)
print "a33 is " + str(a33)
#
print str(pairs[3]) # Check with our output above
print str(pairs[35])
print str(pairs[66])
print str(pairs[96])
#
empty_almlist.append(a30)
empty_almlist.append(a31)
empty_almlist.append(a32)
empty_almlist.append(a33)
#
print empty_almlist


a30 is 9.40623086569e-07
a31 is 2.8399234655e-09
a32 is 1.96302697687e-06
a33 is -8.71036819164e-06
(3, 0)
(3, 1)
(3, 2)
(3, 3)
[9.406230865688752e-07, 2.839923465496465e-09, 1.963026976871434e-06, -8.7103681916393811e-06]

In [24]:
# create array of real-valued alm coefficients, a30 a31 a32 a33
realalm3 = np.asarray(empty_almlist) # np.asarray() converts input into an array
print realalm3


[  9.40623087e-07   2.83992347e-09   1.96302698e-06  -8.71036819e-06]

In [25]:
# Repeat the above procedure for mode l = 4, i.e. a40 a41 a42 a43 a44
# Find the indices
index_a40 = hp.Alm.getidx(lmax=32, l=4, m=0)
index_a41 = hp.Alm.getidx(lmax=32, l=4, m=1)
index_a42 = hp.Alm.getidx(lmax=32, l=4, m=2)
index_a43 = hp.Alm.getidx(lmax=32, l=4, m=3)
index_a44 = hp.Alm.getidx(lmax=32, l=4, m=4)
#
print "Index a_40 is " +str(index_a40)
print "Index a_41 is "+str(index_a41)
print "Index a_42 is "+str(index_a42)
print "Index a_43 is "+str(index_a43)
print "Index a_44 is "+str(index_a44)
#
# Check with the above ouput
print str(pairs[4]) 
print str(pairs[36])
print str(pairs[67])
print str(pairs[97])
print str(pairs[126])
#
emptylistalm2 = []
#
print realalm
#
a40 = realalm[4]
a41 = realalm[36]
a42 = realalm[67]
a43 = realalm[97]
a44 = realalm[127]
#
print "a40 is " + str(a40)
print "a41 is " + str(a41)
print "a42 is " + str(a42)
print "a43 is " + str(a43)
print "a44 is " + str(a44)
#
emptylistalm2.append(a40)
emptylistalm2.append(a41)
emptylistalm2.append(a42)
emptylistalm2.append(a43)
emptylistalm2.append(a44)
#
print emptylistalm2


Index a_40 is 4
Index a_41 is 36
Index a_42 is 67
Index a_43 is 97
Index a_44 is 126
(4, 0)
(4, 1)
(4, 2)
(4, 3)
(4, 4)
[ -2.31017678e-09  -9.52615975e-10   2.65461833e-05 ...,   2.18198097e-14
  -1.89836768e-12  -2.40742355e-13]
a40 is 2.00021957893e-05
a41 is -1.18223178483e-08
a42 is 1.86717689383e-06
a43 is -1.14394087052e-05
a44 is -1.78033877877e-09
[2.000219578927562e-05, -1.1822317848303116e-08, 1.8671768938335285e-06, -1.1439408705247355e-05, -1.7803387787691623e-09]

In [26]:
# create array of real-valued alm coefficients, a40 a41 a42 a43 a44
realalm4 = np.asarray(emptylistalm2) # np.asarray() converts input into an array
print realalm4


[  2.00021958e-05  -1.18223178e-08   1.86717689e-06  -1.14394087e-05
  -1.78033878e-09]

In [27]:
# Calculate (abs(alm))**2 i.e. |alm|^2
abs_alm3 = np.absolute(realalm3)
abs_alm4 = np.absolute(realalm4)
print abs_alm3
print abs_alm4
# Now calculate the squares element-wise, x**2
alm3_squared = abs_alm3**2
alm4_squared = abs_alm4**2
print alm3_squared
print alm4_squared


[  9.40623087e-07   2.83992347e-09   1.96302698e-06   8.71036819e-06]
[  2.00021958e-05   1.18223178e-08   1.86717689e-06   1.14394087e-05
   1.78033878e-09]
[  8.84771791e-13   8.06516529e-18   3.85347491e-12   7.58705140e-11]
[  4.00087836e-10   1.39767199e-16   3.48634955e-12   1.30860072e-10
   3.16960617e-18]

In [28]:
# For l = 3 test, we need theoretical value of C_3; ditto for l = 4
print theoryCl
C3 = theoryCl[1]
print "C_3 is " +str(C3)
C4 = theoryCl[2]
print "C_4 is "+str(C4)


[  1.26392075e-09   5.88275040e-10   3.28673144e-10   2.06575299e-10
   1.41002890e-10   1.02338013e-10   7.78129366e-11   6.13624221e-11
   4.98225766e-11   4.14123076e-11   3.50811741e-11   3.01814025e-11
   2.63133803e-11   2.32104266e-11   2.06850804e-11   1.86004823e-11
   1.68565179e-11   1.53792031e-11   1.41130128e-11   1.30162998e-11
   1.20591913e-11   1.12186076e-11   1.04760627e-11   9.81660760e-12
   9.22804801e-12   8.70035207e-12   8.22520958e-12   7.79568684e-12
   7.40596039e-12   7.05096528e-12   6.72585642e-12]
C_3 is 5.88275e-10
C_4 is 3.28673e-10

In [29]:
# For lmax = 32, we must create an array of ell values, i.e. [0 1 2 3....31 32]
ell = np.arange(33)
print ell
# 
# Subtract the monopole and dipole, l=0, l=1
ellval = ell[2:]
print ellval


[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 25 26 27 28 29 30 31 32]
[ 2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 27 28 29 30 31 32]

In [30]:
# Calculate an array of (2*l + 1)C_l 
# i.e. 5*C_2, 7*C_3, 9*C_4, 11*C_5, 13*C_6, ...
print theoryCl

for i in ellval:
    paramsCl = (2*ellval + 1)*theoryCl # define array (2*l + 1)C_l 
    
print paramsCl


[  1.26392075e-09   5.88275040e-10   3.28673144e-10   2.06575299e-10
   1.41002890e-10   1.02338013e-10   7.78129366e-11   6.13624221e-11
   4.98225766e-11   4.14123076e-11   3.50811741e-11   3.01814025e-11
   2.63133803e-11   2.32104266e-11   2.06850804e-11   1.86004823e-11
   1.68565179e-11   1.53792031e-11   1.41130128e-11   1.30162998e-11
   1.20591913e-11   1.12186076e-11   1.04760627e-11   9.81660760e-12
   9.22804801e-12   8.70035207e-12   8.22520958e-12   7.79568684e-12
   7.40596039e-12   7.05096528e-12   6.72585642e-12]
[  6.31960373e-09   4.11792528e-09   2.95805830e-09   2.27232828e-09
   1.83303757e-09   1.53507020e-09   1.32281992e-09   1.16588602e-09
   1.04627411e-09   9.52483075e-10   8.77029352e-10   8.14897868e-10
   7.63088029e-10   7.19523226e-10   6.82607653e-10   6.51016879e-10
   6.23691163e-10   5.99788922e-10   5.78633527e-10   5.59700893e-10
   5.42663609e-10   5.27274559e-10   5.13327074e-10   5.00646987e-10
   4.89086545e-10   4.78519364e-10   4.68836946e-10   4.59945524e-10
   4.51763584e-10   4.44210813e-10   4.37180667e-10]

In [31]:
norm = ((2*ellval + 1))/(4*math.pi)
print norm


[ 0.39788736  0.5570423   0.71619724  0.87535219  1.03450713  1.19366207
  1.35281702  1.51197196  1.6711269   1.83028185  1.98943679  2.14859173
  2.30774667  2.46690162  2.62605656  2.7852115   2.94436645  3.10352139
  3.26267633  3.42183128  3.58098622  3.74014116  3.89929611  4.05845105
  4.21760599  4.37676094  4.53591588  4.69507082  4.85422576  5.01338071
  5.17253565]

In [32]:
anafastCl = hp.anafast(mapread_planck4, lmax=32)
#len(anafastCl) = 33
# remove monopole and dipole values, l=0, l=1
hatCl = anafastCl[2:] #len() = 31, type() = np.ndarray
hatC3 = hatCl[1]   # index 0 = C2, 1 = C3, etc.
hatC4 = hatCl[2]

In [33]:
# 
# Add a_lm squared, |a_lm|^2
#
print "The values for |a_lm|^2 are : "
print "For |a_3m|**2 such that a_30, a_31, a_32, a_33: "
print str(alm3_squared)
print "And for |a_4m|**2 such that a_40, a_41, a_42, a_43, a_44: "
print str(alm4_squared)


The values for |a_lm|^2 are : 
For |a_3m|**2 such that a_30, a_31, a_32, a_33: 
[  8.84771791e-13   8.06516529e-18   3.85347491e-12   7.58705140e-11]
And for |a_4m|**2 such that a_40, a_41, a_42, a_43, a_44: 
[  4.00087836e-10   1.39767199e-16   3.48634955e-12   1.30860072e-10
   3.16960617e-18]

In [34]:
# =========================================================================
#
# =========================================================================
#
# Data:
#     tempval      # the array of pixel values, (3072,)
#     realalm3     # array of alm values, a30, a31, a32, a33 
#     realalm4     # array of alm values, a40, a41, a42, a43, a44
#     alm3_squared # array of |alm|^2, (abs(a3m))**2
#     alm4_squared # array of |alm|^2, (abs(a4m))**2
#     hatCl        # array of anafast-calculated \hat{C}_l values, l=2 to l=32
#     hatC3        # \hat{C}_3 value
#     hatC4        # \hat{C}_4 value
#
# Parameters:
#     theoryCl     # array of Boltzmann code generated C_l, i.e. C^{theory}_l
#     paramsCl     # array of (2*l + 1)C_l from l=2 to l=lmax
#     C3           # array of C_3 value
#     C4           # array of C_4 value
#    
# Array of ell's: 
#     ellval       # array of l = 2 to l=lmax
#                  # [2 3 4 ... 31 32]
#     norm         # array of (2*l+1)/4pi
#                  # [5/4pi 7/4pi 9/4pi 11/4pi ... 63/4pi 65/4pi]
# =========================================================================
#
# =========================================================================

In [35]:
#
# Next, create the matrix, n_i /cdot n_j
# solely using Healpy routines, i.e. taking the dot product of the vectors
# The result is "dotproductmatrix"
#
# npix = 3072

In [36]:
totalpix = np.arange(npix) # An array indexing the total number of pixels

In [37]:
## healpy.pixelfunc.pix2vec(nside, ipix, nest=False)
## 
## will give three arrays
## arrays of all x values, all y values, all z values
## RING scheme default
# len()=3
# type()=tuple
#
#
vecval = hp.pix2vec(nside, totalpix) #Nside = 16, type()=tuple

In [38]:
vecvalx = vecval[0] #shape (3072,)
vecvaly = vecval[1]
vecvalz = vecval[2]

In [39]:
# First arrange arrays vertically
# numpy.vstack = Stack arrays in sequence vertically (row wise), input sequence of arrays
totalvecval = np.vstack((vecvalx, vecvaly, vecvalz)) #type()=numpy.ndarray

In [40]:
trans = totalvecval.T #transpose

In [41]:
dotproductmatrix = trans.dot(totalvecval) #take the dot product
# dotproductmatrix.shape = (npix, npix) = (3072, 3072)
# type(dotproductmatrix) = np.ndarray

In [42]:
# =========================================================
# =========================================================
#
# \Sum_l (2*l + 1)/4pi C^th_l P_l (dotproductmatrix)
# sum from l=2 to l=lmax
#
# arrays l = [2 3 4 .... lmax]
#        C_l = [C_2 C_3 .... C_lmax]
#
# The correct way to do the summation:
# 
# Step 1: calculate the matrix
#            M = dotproductmatrix
#
# Step 2: evaluate the function P_l(x) for each entry of the matrix
#         OUTPUT: [P_2(M) P_3(M) P_4(M) .... P_lmax(M) ]
#
# Step 3: (2*l +1)/4pi from l=2 to l=lmax
#          [5/4pi 7/4pi 9/4pi 11/4pi .... 65/4pi ]
#
# Step 4: multiply 
#         [5/4pi*P_2(M) + 7/4pi*P_3(M) +...... + 65/4pi*P_32(M)]
#
#
# Step 5: multiply by theoretical CAMB values, [C_2 C_3    C_31 C_32]
#         [5/4pi**C_2* P_2(M) + 7/4pi*C_3* P_3(M) +...... + 65/4pi*C_32* P_32(M)]
#
# Step 6: This is an array of S_ij for each theory C_l, l=2 to l=32
#         
#
#
# =========================================================
# =========================================================

In [43]:
# =========================================================
# =========================================================
#
# Now calculate the likelihood 
# -2lnL \propto m^T C^-1 m + ln det C + N ln (2pi)
#
# First term, m^T C^-1 m is the "model fit term"
# Second term, lndetC is the "complexity penalty"
# Third term, N ln 2pi, a constant
#
# m = tempval
# C = Sij
#
# STEP 1: do inverse of Sij
#        invSij = np.linalg.inv(Sij)
#
# STEP 2: do matrix mulplication, m.T*inv(C)*m
#       
# lnL_modelfit_terms = np.array([np.dot(tempval.T , np.dot(invSij[i] , tempval) ) for i in range(invSij.shape[0])])
#
# STEP 3: do logdet Sij
#
# logdetC = np.linalg.slogdet(Sij) #computes sign and log det C
# logdetC[1]
#
# STEP 4: compute N_pix * 2pi
#
# Npix2pi = (npix)*2*math.pi
#
# Step 5: -2loglikelihood = m.T*inv(C)*m + logdetC[1] + Npix2pi
# 
# =========================================================
# =========================================================

In [44]:
# CODE BOTTLENECK!
# 
# Evaluate Legendre from l=2 to l=lmax for each matrix entry
# [P_2(M) P_3(M) P_4(M) .... P_lmax(M) ]
# 
# WITHOUT BROADCASTING, one would do something like 
# PlMat = []
# for i in ellval:
#    PlMat.append( eval_legendre(i, dotproductmatrix) )
#
#
# With broadcasting, we use
PlMat = eval_legendre(ellval[:, None, None], dotproductmatrix)
# PlMat = [P_2(M) P_3(M) P_4(M) .... P_lmax(M) ]
# PlMat is an array, len()=31 of 31 3072 by 3072 matrices
# PlMat.shape = (31, 3072, 3072)

In [45]:
# multiply PlMat by (2*l+1)/4pi, i.e. norm
norm_matrix = norm[:, None, None] * PlMat
# [5/4pi * P_2(M)  7/4pi * P_3(M) ....   65/4pi * P_32(M)]

In [46]:
# JULY 1, 2015
#
#
# Here we define the LF 
#
# Next we should writen the REAL-space log-likelihood, -2 lnLikefunction
# this is a function of parameters
# plot against parameters, theory C_l
#
# Likelihood function should use -2lnL /propto m^T C^-1 M + log det M
#

In [47]:
# TEST C_3 Likelihood
#
# The covariance matrix is a function of variable "x" where "x" is "C_3", an unknown parameter. 
# 
# Our covariance matrix is therefore S_ij  = 7/4pi * x * P_3(matrix)   
# (We set l=3, i.e. l=3, and P_3)
# 
# The LF is then a function of x, LF(x). This is the only parameter we vary. 
#
# LF = -2loglikelihood /propto T^T inv(S_ij) T + log det (Sij) + N log (2pi)
# 
# We then plot LF(x) vs. parameters x. 
#

In [48]:
# define pixel-value arrays
mT = np.matrix(tempval)     # mT.shape = (1, 3072)
m = np.matrix(tempval).T    # m.shape = (3072, 1)
Npix2pi = (npix)*2*math.pi  # LF constant

In [49]:
print C3


5.88275e-10

In [50]:
# create Sij array, len()=31, l=2 to l=32
# Sij = norm_matrix * theoryCl[:, None, None]
# [5/4pi*C_2*P_2(M)  7/4pi*C_3*P_3(M) ....   65/4pi*C_32*P_32(M)]

In [51]:
# invSij = np.linalg.inv(Sij)

In [52]:
# logdetC = np.linalg.slogdet(Sij)
# print logdetC[1]

# Npix2pi = (npix)*2*math.pi

# loglikelihood = lnL_modelfit_terms + logdetC[1] + Npix2pi

In [53]:
def LogLike(param):
    # param is our parameter, C_3
    Sij = param[:, None, None] * norm_matrix[1][None, :, :]
    # Format 7/4pi * param * P_3(M) where param is the parameter we vary, C_l
    # Sij.shape = (50, 3072, 3072)
    invSij = np.linalg.inv(Sij)
    logdetC = np.linalg.slogdet(Sij)  # returns sign and determinant; use logdetC[1]
    # model_fit_terms = m^T C^-1 m
    model_fit_terms = np.array([np.dot(tempval.T , np.dot(invSij[i] , tempval) ) for i in range(invSij.shape[0])])
    return model_fit_terms + logdetC[1] + Npix2pi

In [54]:
print hatC3  # anafast generated C_l for l = 3 from sky map
print C3     # CAMB generated C_3, Boltzmann code output


1.53198686892e-10
5.88275e-10

In [55]:
print alm3_squared  # a_3m extracted from sky map, absolute value, squared


[  8.84771791e-13   8.06516529e-18   3.85347491e-12   7.58705140e-11]

In [56]:
np.set_printoptions(threshold=100000)  # Default is threshold=1000
## Use this to print all values, disables corner printing

In [ ]:


In [57]:
print Npix2pi # LogLF constant


19301.9452637

In [58]:
#
# MATRIX TEST, using C_3 value
# 
#
#
#
Sij1 = C3 * norm_matrix[1] #Sij.shape = (3072, 3072)

    # Format 7/4pi * param * P_3(M) where param is the parameter we vary, C_l
    # Sij.shape = (50, 3072, 3072)
    
idMatrix3072 = np.identity(3072) # idMatrix3072.shape
# Ax = b, use np.linalg.solve(A, b)
inverseSij = np.linalg.solve(Sij1, idMatrix3072)
invSij1 = np.linalg.inv(Sij1)
print invSij1
print "************"
print inverseSij
testest= np.allclose(invSij1, inverseSij)
print testest

logdetC = np.linalg.slogdet(Sij1)  # returns sign and determinant; use logdetC[1]
    # model_fit_terms = m^T C^-1 m
model_fit_terms = np.array([np.dot(tempval.T , np.dot(invSij1[i] , tempval) ) for i in range(invSij1.shape[0])])
Test_loglikelihood_func = model_fit_terms + logdetC[1] + Npix2pi


model_fit_terms_correct = np.array([np.dot(tempval.T , np.dot(inverseSij[i] , tempval) ) for i in range(inverseSij.shape[0])])
Test_loglikelihood_func_correct = model_fit_terms_correct + logdetC[1] + Npix2pi

print Test_loglikelihood_func
print "****************"
print Test_loglikelihood_func_correct
np.allclose(Test_loglikelihood_func, Test_loglikelihood_func_correct )


[[ -7.21118009e+23  -6.75107278e+23   2.15754351e+22 ...,   1.09978965e+23
   -2.30352884e+23  -2.94667967e+22]
 [ -2.45231101e+24  -1.95043106e+24   3.84884575e+23 ...,  -2.91245792e+23
   -2.14868600e+24   9.73448733e+22]
 [ -5.88343640e+23  -1.42199102e+23   1.85000426e+23 ...,   3.01173495e+23
   -7.46482262e+21   2.64071737e+23]
 ..., 
 [  1.71982934e+24   1.32101067e+24  -2.72238431e+23 ...,   2.85176879e+23
    1.13059743e+24  -1.71401713e+23]
 [  5.73225836e+23   6.42537586e+23  -8.84122876e+22 ...,   8.20095885e+22
    5.97695667e+23   8.41058324e+22]
 [  2.61177484e+23   2.48872588e+23  -9.49081209e+21 ...,  -7.33251086e+22
    1.55766073e+23   2.33941956e+23]]
************
[[ -7.21118009e+23  -6.75107278e+23   2.15754351e+22 ...,   1.09978965e+23
   -2.30352884e+23  -2.94667967e+22]
 [ -2.45231101e+24  -1.95043106e+24   3.84884575e+23 ...,  -2.91245792e+23
   -2.14868600e+24   9.73448733e+22]
 [ -5.88343640e+23  -1.42199102e+23   1.85000426e+23 ...,   3.01173495e+23
   -7.46482262e+21   2.64071737e+23]
 ..., 
 [  1.71982934e+24   1.32101067e+24  -2.72238431e+23 ...,   2.85176879e+23
    1.13059743e+24  -1.71401713e+23]
 [  5.73225836e+23   6.42537586e+23  -8.84122876e+22 ...,   8.20095885e+22
    5.97695667e+23   8.41058324e+22]
 [  2.61177484e+23   2.48872588e+23  -9.49081209e+21 ...,  -7.33251086e+22
    1.55766073e+23   2.33941956e+23]]
True
[[ -1.85831515e+15   2.96331283e+15  -8.39609603e+15 ...,   3.48138919e+16
    2.84668925e+16   2.26876262e+16]
 [ -8.56763271e+15   1.36621476e+16  -3.87096166e+16 ...,   1.60507026e+17
    1.31244627e+17   1.04599722e+17]
 [ -2.48908379e+15   3.96915126e+15  -1.12459862e+16 ...,   4.66307848e+16
    3.81294210e+16   3.03884960e+16]
 ..., 
 [  6.71116972e+15  -1.07017883e+16   3.03218889e+16 ...,  -1.25727833e+17
   -1.02806107e+17  -8.19347083e+16]
 [  2.44659659e+15  -3.90140018e+15   1.10540238e+16 ...,  -4.58348246e+16
   -3.74785741e+16  -2.98697822e+16]
 [  1.86091792e+15  -2.96746326e+15   8.40785566e+15 ...,  -3.48626524e+16
   -2.85067634e+16  -2.27194026e+16]]
****************
[[ -1.85831515e+15   2.96331283e+15  -8.39609603e+15 ...,   3.48138919e+16
    2.84668925e+16   2.26876262e+16]
 [ -8.56763271e+15   1.36621476e+16  -3.87096166e+16 ...,   1.60507026e+17
    1.31244627e+17   1.04599722e+17]
 [ -2.48908379e+15   3.96915126e+15  -1.12459862e+16 ...,   4.66307848e+16
    3.81294210e+16   3.03884960e+16]
 ..., 
 [  6.71116972e+15  -1.07017883e+16   3.03218889e+16 ...,  -1.25727833e+17
   -1.02806107e+17  -8.19347083e+16]
 [  2.44659659e+15  -3.90140018e+15   1.10540238e+16 ...,  -4.58348246e+16
   -3.74785741e+16  -2.98697822e+16]
 [  1.86091792e+15  -2.96746326e+15   8.40785566e+15 ...,  -3.48626524e+16
   -2.85067634e+16  -2.27194026e+16]]
Out[58]:
True

In [59]:
# print the matrix condition
matrix_condition = np.linalg.cond(Sij1)
print matrix_condition


9.07655083191e+19

In [60]:
#
# Note numpy.linalg.solve()
#
# Ax = b
# solve(A,b) = x = A^{-1} * b 
#
#
model_fit_dotprod = np.linalg.solve(Sij1, tempval)

In [61]:
print model_fit_dotprod.shape
print model_fit_dotprod


(3072,)
[  3.46097105e+20   1.59565662e+21   4.63572981e+20  -2.74310293e+20
  -8.62595978e+20  -6.81215590e+20  -2.14099713e+20  -7.55678712e+19
   1.47228841e+21  -4.67219874e+20  -2.61736668e+20  -1.92599809e+20
   8.64839195e+20   7.96227947e+19  -9.74570253e+20  -4.83788009e+20
   1.18878687e+20  -9.30748470e+18   1.15878594e+21  -7.39170543e+20
  -1.30762225e+21   5.88352520e+20   1.23380706e+21   4.48883775e+19
   1.36594160e+21   3.81726456e+20  -1.26208154e+21   9.29493431e+19
   9.38383480e+20   2.02762642e+21  -7.12954091e+20   8.41379226e+20
  -1.86601204e+20   3.58131800e+20   1.07186190e+20   2.19224984e+20
   3.92825006e+20  -1.63444845e+21  -2.17547691e+20   1.25559204e+20
  -1.83463675e+20  -1.35664225e+21  -1.13082217e+20   6.83814913e+20
   3.28638080e+20   7.45059348e+20  -1.35921545e+21  -5.95664832e+20
  -8.85061172e+19  -4.00176764e+20   1.03429592e+20   5.69455944e+20
  -4.91580197e+20  -1.07185632e+19   2.75469041e+20  -3.35165427e+20
   1.28353558e+21  -4.59583738e+20  -7.99324027e+18   1.34857112e+20
   8.68282275e+19  -1.21323888e+21   8.30802364e+20   1.19222857e+21
  -4.83009674e+20  -2.18274784e+20   6.90475237e+20  -6.86203031e+20
  -2.65955013e+20   3.91049140e+19  -2.22430460e+19  -6.00811522e+20
  -9.27301014e+20  -8.86768833e+20   3.66822255e+20   2.51809377e+20
   4.82530008e+20   1.02291214e+21  -1.67476156e+20   2.29031512e+20
   5.85399770e+20  -6.48044924e+20   5.97140328e+20  -8.71621613e+20
  -1.21193950e+21   5.02972999e+20  -3.03888909e+20  -8.11017452e+20
   3.64067804e+20   2.99049907e+20  -2.17873166e+20   5.82602996e+19
   1.42310405e+20   4.60072116e+20   5.68520161e+20  -5.55507864e+20
   2.77830582e+20  -2.98176099e+20   3.73383396e+20   3.47736364e+20
   1.59102685e+20  -1.76025192e+20  -1.14903690e+19  -5.81261153e+20
  -4.19911740e+20  -8.27948181e+20  -3.52678596e+20  -7.45154791e+20
   1.28748396e+20  -5.81238209e+20   9.83930819e+19  -3.45248705e+20
  -5.66472166e+20  -8.16648968e+20  -7.32423370e+20  -3.92098306e+20
  -6.70944768e+19  -4.31281854e+19   2.18176355e+20   2.23160523e+20
   4.13592559e+20   8.30881327e+20  -8.26743973e+18  -1.39074585e+20
  -2.22231326e+20   3.77090769e+20   5.73394641e+19  -9.55099669e+20
   5.67364893e+20   5.31709031e+20  -1.49020418e+21   4.15206653e+20
   5.15993285e+20  -1.36439374e+20   1.47268464e+20  -2.17419772e+20
   5.71194949e+20   3.98639675e+20   3.50820181e+20   1.55298655e+19
  -1.36692069e+20   9.98703973e+19  -7.54204944e+19  -2.79686901e+20
   4.26382139e+20   5.55469521e+20  -1.87871420e+20   5.67092691e+20
  -1.64932422e+20  -8.21423755e+20  -4.19471704e+20  -1.26504516e+19
  -1.70864181e+21  -5.99357078e+20   4.68786283e+20   6.18677964e+19
  -9.14665904e+20  -5.00061495e+20   7.15577435e+20   9.53059012e+20
   6.09170690e+20  -3.20018995e+20   7.75242103e+20  -4.08761392e+18
  -6.95786663e+20   4.66466954e+20   4.51133628e+20   8.56342399e+20
   4.36682088e+20  -1.05451388e+20  -3.22929879e+20  -9.26625390e+20
   5.66837166e+20  -5.41052793e+20   1.83128222e+20  -3.16996465e+20
   8.11320665e+20   6.14853447e+20  -1.96102600e+21   1.08342477e+21
   2.05107949e+20  -2.52148911e+19   1.30904008e+21  -1.87859353e+20
   1.80323480e+20  -2.98499438e+20  -4.40427764e+19   6.94075831e+20
   5.80913380e+20  -2.77741031e+20  -9.90347290e+19  -3.59407468e+20
  -5.16967650e+20  -2.01016214e+20  -5.08132561e+19   1.74694721e+19
  -3.34409528e+20   4.49700383e+20   2.07983571e+20  -6.91456607e+19
  -4.62795414e+20   2.15252829e+20  -1.02046806e+20  -6.57850232e+20
  -5.61733211e+20   7.19294622e+20  -4.79213663e+20  -1.82367178e+20
  -2.23358647e+20   4.27255756e+20   1.20961701e+21   1.37087523e+20
  -9.22024714e+20   9.24244562e+20   5.41474028e+20   2.41135922e+20
  -3.68961772e+20   1.68235892e+20  -1.01997223e+21  -9.94678208e+20
  -2.60078665e+20   1.58551906e+21  -5.59524768e+20  -6.56573559e+20
   4.15393178e+20   2.64551900e+20   9.20002949e+20   1.41646524e+21
   4.55782065e+20   1.51011034e+20  -3.64446419e+20  -5.82861686e+19
  -5.09962559e+19  -1.15527493e+21   6.21329880e+20   9.20407040e+20
   8.38200736e+20  -7.05475627e+20   3.63066452e+20   5.53241973e+20
  -7.19547509e+20  -8.54887750e+20  -1.26164213e+20   8.47480042e+20
  -1.66932167e+20   2.11742913e+20   4.71456179e+20  -1.58943155e+20
  -2.13264904e+20  -6.16500100e+19   7.45549862e+19   2.33195974e+20
  -3.13097210e+20  -8.74392938e+18   1.36415120e+21  -7.95119009e+20
  -1.47956323e+21   7.67000266e+19   4.22531086e+20   1.15555207e+20
   6.64928420e+18   7.70044390e+20  -3.03769312e+20   2.93446944e+20
  -1.26817385e+21   9.11850150e+20   4.23581192e+20  -3.51118593e+20
   1.50642089e+21   6.06096281e+20  -5.80575510e+20   1.28954805e+21
  -2.61637916e+20  -6.53347545e+20   7.29334502e+20  -1.87338987e+21
   4.05773155e+20  -7.40064443e+20   1.47698046e+21  -5.63870763e+20
  -5.80595708e+19   1.79369792e+18  -1.13814844e+21   2.96887042e+19
  -9.95112103e+19  -1.01684439e+21   2.07520778e+20  -6.91388430e+20
  -9.43849889e+18   1.09622894e+21   4.93150352e+20   1.15099718e+21
  -1.28409531e+20  -7.39625459e+19  -2.46860619e+19   1.87223452e+20
   3.65381328e+20  -8.51197198e+19   8.36082409e+20   5.81128557e+20
   2.69890237e+20   1.60707405e+20  -1.27874555e+21  -7.77355811e+20
   7.35475967e+19   5.80644211e+20   5.93526593e+20  -1.55786947e+19
  -5.17265125e+18   1.42537663e+20  -5.56384417e+19   1.10290973e+20
   3.42385147e+20  -4.75464054e+20   3.95970210e+20  -2.20971313e+20
   2.61449388e+20   1.07493919e+21  -7.46777824e+20  -1.25175267e+20
  -1.10666788e+21  -4.88237965e+20  -1.08453897e+21   8.52213331e+20
   8.80258198e+19  -9.10160703e+20  -4.85746535e+20  -2.57159413e+20
   5.50180602e+20   4.23597705e+20   2.08431770e+20   5.34304274e+20
   6.01000733e+20  -7.39988762e+20   4.01059418e+20   1.78215278e+20
   3.97492716e+20   1.44651691e+20   1.84886113e+20   2.91293483e+20
  -5.20612433e+20   4.19787747e+19  -8.26719915e+20   9.70873661e+20
   1.11921585e+20   3.25424260e+20   2.85533690e+20  -5.37453893e+20
  -3.41708585e+20   7.40400157e+20  -1.32544688e+20   4.73472699e+20
   2.97659644e+20   1.56140224e+20  -3.32818624e+20  -2.08834518e+18
  -5.81482690e+19   5.86254727e+20   1.58357498e+20   7.56166904e+20
   1.59037438e+21  -4.51497680e+20   4.35857171e+20  -3.80733714e+20
  -3.01513397e+20  -5.14714434e+20  -5.64904224e+20  -4.92278010e+20
   7.17310094e+20  -1.23049322e+20   9.52554740e+20   6.99207187e+20
   2.33663936e+20  -4.09016667e+20   5.42852101e+20   2.43812250e+19
  -2.23434191e+20   1.20388545e+20   2.14820608e+19  -4.63822834e+20
   1.49556574e+20   5.48133846e+20   5.43625554e+19  -6.87682196e+20
  -4.06785757e+20  -1.64819461e+18  -5.14856251e+20  -8.27046957e+19
  -2.77784833e+20   7.25076746e+20  -2.47403825e+20   1.10431631e+20
  -1.03754443e+21  -2.20453442e+20  -4.26665176e+20  -5.66008357e+20
   9.20463907e+20   1.49865608e+19   6.03121344e+19  -1.34724710e+20
  -4.89605768e+20  -7.06312794e+20   2.65562620e+20  -2.89728934e+20
   9.11091523e+20   1.04058727e+21  -1.56723457e+20   3.45796802e+20
   7.64810827e+20  -1.26491062e+19   2.12160843e+19  -2.09506128e+20
  -2.54769835e+20  -3.56240842e+20  -1.50800378e+20   9.22282704e+20
  -5.11899824e+20   2.98796320e+20   3.06114398e+20  -9.17303372e+20
  -6.29944344e+20   1.26108797e+20   7.35959606e+19   8.32803825e+20
  -1.08721170e+21  -6.08107476e+20   1.01572603e+21  -4.19947166e+20
  -1.11833202e+21   2.91262109e+20   6.75345853e+20  -1.84974153e+20
   9.64784739e+20  -2.71455650e+20   6.36615009e+20   6.20304236e+19
  -3.39961299e+20  -4.00680759e+20   6.46143227e+20   4.00580424e+18
   1.12575048e+21   3.81300562e+20   7.01727496e+20   5.87654036e+20
  -1.10118326e+21   5.89683068e+19   4.38931198e+20   9.25464087e+19
  -4.00877648e+20  -2.20489521e+20   9.35076480e+19  -7.53689728e+20
  -1.05288317e+21   6.49272781e+20  -3.06663556e+20  -6.79651545e+20
  -6.49689247e+18   2.62588316e+20  -1.06520251e+20   6.66404624e+20
  -7.45981856e+20   5.76598217e+19  -1.42483902e+20  -1.03083238e+21
  -2.09619946e+20  -3.68974817e+20  -7.58866992e+20   4.31347688e+20
  -5.02549465e+20  -4.10754306e+20   3.32082893e+20   8.42620111e+20
   3.00491360e+20  -2.42071051e+20  -4.94729561e+19  -1.00349885e+21
  -9.34175629e+20  -1.31992641e+20   3.68543065e+19   9.09651758e+20
   5.14901926e+20   5.61842861e+20   8.49525917e+20  -5.66880772e+20
  -1.77724198e+20   3.50424219e+20   2.39480678e+20  -1.79406677e+20
  -1.31312745e+21   2.10943092e+20  -1.14511429e+21   7.52374331e+20
  -5.91884288e+20  -1.09585352e+20   4.11778841e+20   1.11902946e+21
  -7.23124673e+20  -4.71193479e+20   8.49648813e+20  -2.86496499e+19
  -3.74217917e+19   1.04869589e+21  -1.78307797e+19   1.72428273e+20
   5.87827699e+20  -8.95460361e+20   7.37633064e+19   3.69331302e+20
  -1.61340686e+20  -5.13785037e+20   1.66918891e+20  -2.27038525e+20
   1.98861456e+20  -3.95607725e+20   7.84034139e+19   1.13009883e+21
  -3.63221350e+20  -5.63853042e+19  -7.93771167e+20   6.77718252e+20
   6.54462793e+17   1.51631170e+21  -1.03495501e+21  -8.76776315e+20
   3.45638042e+20  -1.57591753e+21   6.69887316e+20  -3.19555533e+20
   2.69247999e+20  -6.26344594e+20  -3.38129790e+20   3.48032878e+20
   9.21412029e+20   6.77050084e+20   7.59892582e+20   3.19928781e+20
   1.15196035e+21  -1.22279339e+21  -2.50567872e+17  -4.57760515e+20
   1.32372103e+21  -1.14533815e+21  -1.30930948e+20   6.88154891e+20
   2.60695341e+20  -4.16280404e+20   6.34272052e+20   5.51791782e+20
  -6.16087389e+20  -1.42372384e+20   4.81968931e+20   2.68170119e+20
  -2.36230194e+20  -2.92680635e+20  -1.96478803e+20  -3.52054522e+20
  -1.80043732e+20  -4.43549960e+20   5.63056225e+20   7.57120874e+19
   1.80091602e+21   6.34159699e+20   7.34227214e+20   2.45087498e+20
   1.25321236e+20   3.28441245e+20   3.09685421e+19   7.49745766e+20
   8.01706739e+20   1.20197227e+21   6.02073522e+20  -2.04272392e+20
   1.40282598e+21  -4.47244167e+20   1.14438569e+19  -6.52123705e+20
  -3.73217508e+20   5.57644437e+20  -5.08233828e+20  -6.25993089e+19
  -6.38151981e+20   1.00000131e+21   7.92775490e+20  -7.87124276e+20
  -3.93534375e+20   6.23434297e+20   3.33341313e+20   2.79427870e+20
   5.46321886e+20  -2.78653676e+20  -5.82421530e+20  -5.28600933e+20
   9.05020841e+20   6.27953808e+20   2.98434414e+20   3.57171415e+20
   4.63176086e+20   1.60544126e+20  -2.83638549e+20   1.23677561e+20
   9.72273179e+20   9.08488007e+19  -8.71728399e+19  -7.58486540e+19
  -1.12319110e+20  -5.13378322e+20  -6.00163497e+20  -1.35441830e+21
   7.18178418e+20  -7.72065612e+20  -3.08001316e+20  -1.55278532e+20
  -1.39478879e+21   3.31054671e+20   6.35150965e+20   7.35177913e+20
   2.11338652e+20  -1.21397291e+20   2.51972080e+20   4.16305544e+20
   1.29766797e+20   3.58449959e+20  -7.24123500e+20   6.86739627e+20
  -3.01761038e+20   4.40758817e+20  -4.48997397e+20  -3.46218989e+20
  -4.54271689e+20  -6.03215888e+20  -8.35218415e+20   1.31967562e+20
   1.14588040e+21  -2.18484155e+20   1.80649785e+20  -5.74603850e+20
   2.69934756e+20  -9.54239833e+20   4.47000632e+19  -2.66871442e+20
   3.23679355e+20  -7.45430362e+20   1.61993037e+20  -3.43885751e+18
   6.65160265e+20  -6.65421501e+20   2.20271737e+20   4.91343676e+20
   1.17373143e+20   3.27698611e+20  -3.83840923e+20   3.36434032e+20
   1.11977997e+21   2.74170886e+20  -7.77739188e+19   1.13906734e+20
  -4.17004483e+20   3.53678826e+20  -1.10900976e+21  -1.17480977e+21
  -1.82430084e+20  -7.45576476e+19  -1.41239282e+21  -5.21078666e+20
   4.47769716e+20   4.54009816e+20  -4.58040212e+20   2.01487293e+20
  -9.47276187e+19  -5.79266452e+20  -2.65984231e+19  -3.02362450e+20
  -2.90963673e+19  -1.26253308e+21   1.18499599e+21  -3.61182188e+20
  -5.21587457e+19   9.12385113e+20   1.20963903e+21   2.88250254e+20
  -4.14729000e+20  -5.16255611e+20  -6.86898033e+20  -9.12613473e+20
  -4.42210672e+20   3.81318025e+20   3.81641036e+20   1.26597293e+21
  -5.57931336e+20  -1.48071291e+21  -8.93320656e+19  -1.49985341e+20
   6.38262745e+20  -2.96157178e+20  -6.16641876e+20   8.13095392e+19
  -4.95699934e+20   3.45518224e+20   1.00815280e+21  -1.77751647e+20
   5.76058002e+20   1.30516780e+19  -4.34000916e+20  -3.29855885e+19
  -2.36976605e+20  -6.05551343e+20   4.73016602e+20  -3.74125112e+20
  -2.14937279e+20   1.33219440e+21  -2.26870964e+19   3.94303670e+20
  -2.79057335e+20   1.43661467e+20   8.71613605e+19   2.79818717e+20
  -3.31221182e+20  -4.65950012e+20   1.25865644e+20  -1.36389148e+21
   2.86080413e+20   6.15528651e+20  -4.72940025e+20   8.69471342e+20
  -7.14697481e+20   2.56835788e+20   4.85112389e+19  -3.98734620e+20
   6.93867559e+20   3.59084404e+20  -1.15544155e+21   2.01057688e+20
   8.09152583e+20  -4.81256003e+20  -1.03021396e+21  -1.67339540e+20
   1.40126547e+21   3.67963184e+20  -3.25928526e+20   8.34449631e+18
   1.57229190e+20  -9.90251682e+20  -7.96561141e+20   6.93971380e+20
  -3.03872511e+20  -5.22612406e+19   1.05895713e+20   1.43797029e+20
  -9.69479652e+20  -4.59120229e+20   2.56308551e+20  -9.54830927e+20
   7.93288192e+20  -8.64141306e+19   7.27667418e+20  -2.15444025e+20
  -1.40332818e+21  -5.36755258e+20   1.75998866e+20  -2.72223549e+20
   7.34572746e+20   4.03501977e+20   4.76460095e+20   9.16782669e+20
   7.67511018e+20   3.83149549e+20  -5.04516478e+20  -5.94433122e+20
   3.47864743e+20  -1.02121132e+21   9.68296221e+20  -7.55013817e+19
  -6.37256885e+20   4.82714265e+20  -3.25832629e+20  -6.14521933e+20
   7.78046703e+20  -5.49929809e+19  -2.56373016e+20   5.49958299e+20
  -2.87253813e+20   1.58878658e+20   1.05139654e+20  -6.08902238e+20
  -2.99145413e+20  -1.53296847e+20  -3.58228546e+20   9.09154265e+19
  -2.19364756e+20  -2.95773927e+20   5.77107728e+20  -6.38471231e+19
   5.73803629e+20   1.18022591e+21   8.78515822e+20   9.31655812e+20
   1.29022908e+20   1.60533052e+20   2.08111362e+20  -6.41400922e+20
  -5.84671974e+20   9.29696558e+20  -4.22954270e+20  -3.14653950e+19
   5.32923009e+19  -2.93858292e+20   1.01325851e+21   1.41799739e+20
  -1.23672015e+20  -4.81719608e+20   2.66558535e+20   1.21091814e+21
  -5.46408860e+20  -6.58516461e+20   1.08346288e+20  -3.57260021e+20
  -1.67703731e+20   3.47929709e+20   9.82596285e+20   3.21812777e+20
  -7.17901552e+20  -2.13648287e+20  -1.12713372e+21  -2.04105777e+20
  -3.74672058e+20  -7.16825353e+20  -1.67300663e+20   5.55353131e+20
  -3.01057017e+20  -6.44948860e+20  -5.39794698e+20   5.59082179e+19
   1.64804253e+20   6.66828032e+19  -2.02404223e+20   5.85310666e+20
  -1.29595427e+20  -8.79773419e+20  -8.69029307e+20   7.99906267e+20
  -1.30454214e+21  -1.03116051e+21  -6.38460319e+19   2.62173862e+19
   8.41814542e+20  -1.00374621e+20   3.16275563e+20  -7.24036077e+19
  -2.24566843e+20   2.02214412e+20   9.03116281e+20  -2.61872597e+20
   1.24273132e+20  -5.17405042e+19   2.37301809e+18   3.64064278e+20
  -8.97377258e+20  -3.17759477e+20  -5.92156251e+20   2.06099027e+19
   2.63533203e+20  -4.61041224e+20  -3.79672897e+20  -3.01902973e+20
  -5.10168470e+20   7.92708975e+20   9.18457551e+20   1.54191421e+20
   4.17790388e+20   1.19066984e+20   1.04358122e+19  -2.85411157e+20
  -1.11687703e+20   9.76103617e+20   1.19423363e+21  -4.12335355e+20
  -2.41224055e+19  -9.13239978e+20   1.00834620e+21   2.35257341e+20
  -1.05009439e+21   7.74384092e+20  -1.00730891e+21   1.27524400e+21
  -4.56805005e+20  -1.34539790e+21   4.69936115e+20  -2.79969110e+20
  -4.07678317e+20   4.49037712e+20   3.93974799e+20   1.34209869e+21
  -4.57986183e+20  -5.77843955e+20  -7.43947833e+20   8.81426968e+20
  -1.47201261e+21  -5.09682829e+20   3.16617086e+20   1.61833997e+21
  -4.23614632e+20   4.76592452e+20   3.26280821e+20   2.45482848e+20
   8.09034375e+20   3.12405572e+20   4.04128747e+20  -1.28517962e+21
   7.84655395e+20  -2.53771236e+20  -2.79669612e+20   7.26427383e+20
   5.86885201e+18  -1.58968627e+20   5.46684945e+20  -2.47576050e+19
   1.20984541e+21   4.77937207e+20   1.45055301e+20  -4.80777637e+20
   1.71439811e+20  -2.31136187e+20  -5.52659955e+19  -6.36246413e+20
  -2.10369210e+20  -8.96941940e+20  -3.60136819e+20  -6.20318136e+20
   2.55284461e+20  -1.05433664e+20   5.18173621e+20   3.12445746e+20
   3.39847824e+20  -5.44206222e+20  -4.75465254e+20   8.93448057e+20
  -5.36678814e+18   3.65051621e+20   4.23936453e+20  -1.30531877e+21
   2.82017642e+20  -4.43475979e+20  -3.09587728e+20   3.22199338e+20
  -3.00281955e+19   6.73718718e+19   7.71349856e+20  -4.19981120e+20
   2.16936598e+20   4.00398183e+20   1.08930395e+21  -5.86536833e+20
  -7.61262796e+19   7.96231353e+20   4.62473341e+20   3.91784053e+20
   5.37311075e+20   1.82431169e+20  -2.34393672e+20   5.75441672e+20
   1.87618045e+20  -8.61557673e+19  -3.32289047e+20  -6.32132658e+19
   6.32760687e+20  -1.10480653e+19  -4.32067680e+20   5.72628669e+20
  -2.32509689e+20   5.73289875e+20   2.39298379e+20   6.22288146e+19
  -4.15082241e+20  -1.32196544e+20   1.14968707e+21  -1.08900331e+21
  -8.92682709e+20   4.91278319e+20   6.31111633e+19  -1.29338615e+20
  -4.98743517e+19  -1.32399935e+21   9.86609143e+20  -5.38252308e+20
  -2.26055880e+20   2.27884507e+20  -1.36461922e+20   1.36636264e+21
   1.08279646e+20   2.71431475e+20   5.69360489e+19   8.72592235e+20
   6.35768480e+20   6.16510251e+20  -1.82865643e+20  -9.55863022e+20
   1.13094237e+18   3.73918514e+19  -4.70996594e+20  -2.45137154e+20
   3.72480747e+20   7.64923562e+19   9.46308013e+20  -1.21641613e+20
   8.40961148e+19   3.02756973e+20   5.62725768e+20  -1.74498539e+19
   6.70176696e+20  -4.47968517e+20   2.84215737e+20  -8.67549774e+20
  -1.04608502e+21   3.87080989e+20  -7.66884871e+18   1.37507590e+20
  -9.88061797e+20  -1.54346644e+20  -1.16435394e+21   1.42907096e+21
   3.66939876e+19   1.51477357e+20  -2.34839902e+20  -8.66844695e+17
  -8.32877236e+20   2.44040193e+20  -3.54508942e+20  -4.94520263e+20
   4.03148231e+20   5.42220940e+20  -5.89162190e+20  -8.39103825e+20
   6.78469948e+20   4.84405946e+20   4.15423513e+19   1.00521153e+21
   4.34666846e+20   4.57926985e+19   1.16745139e+21  -4.81617952e+20
  -3.33221780e+20   2.58933286e+20   6.61062479e+20  -2.94664190e+19
   3.88029006e+20   6.16552858e+20  -3.68456740e+20  -2.56545718e+20
  -3.83238383e+20  -4.20407055e+20  -1.51530415e+21  -1.53526281e+20
   4.34392414e+20  -1.29319050e+21   1.98026775e+20  -2.07107359e+20
  -7.21828137e+20   1.24572124e+21  -2.54800262e+20   4.83103710e+17
  -3.17435011e+20   1.14594092e+21   3.02533254e+20  -2.01803648e+20
   4.41674779e+20  -8.15522077e+20   9.74101780e+19  -7.91628236e+20
   5.29195990e+19   6.42862059e+20   1.03669490e+20  -6.99580981e+20
   5.94259577e+20   1.65178591e+21   2.32998352e+20   5.56950802e+20
   3.57951042e+20  -8.33807601e+20  -3.46835817e+19  -1.04625759e+20
  -4.37261651e+20  -2.62058972e+20   8.70871143e+20   5.65196012e+20
  -3.76456523e+20   4.55977520e+20  -8.65789540e+20   1.68680762e+20
   1.44989234e+20  -2.07650356e+20   3.23860901e+20  -6.78246682e+20
   4.53091301e+20   6.93651092e+20   1.59773861e+20   1.98758944e+20
   2.86696758e+20  -1.98462867e+20  -1.38337027e+21   5.29192328e+20
  -7.70899443e+18  -3.53939471e+20  -6.41500849e+20   7.23564675e+19
   8.78198823e+20  -2.92240739e+20  -4.46441331e+20   5.01642698e+20
  -1.60390684e+21   1.05563341e+21   3.74858201e+20   9.10042403e+19
  -3.47432120e+20   1.01325817e+21  -2.96747312e+20   3.59050422e+20
  -7.44642849e+20   5.79504831e+20   5.82050465e+20  -1.82730107e+20
   1.33046764e+21  -1.00450175e+20   4.84914878e+20   1.19570630e+21
   2.92122566e+20   5.71149947e+20  -7.57747596e+20   6.83536160e+20
   1.76326791e+20   7.41272756e+20  -8.03224633e+20   1.14671770e+21
  -3.25523677e+20   5.95463689e+20  -1.16219141e+21  -3.66749864e+20
   4.34794496e+20  -4.94633484e+20  -9.25183650e+20   6.65485741e+20
  -1.13869033e+20   8.16226517e+20  -5.79870546e+20  -8.37951924e+20
  -6.26847903e+20   1.76900291e+20  -9.03046105e+19  -9.46443954e+20
  -3.22243574e+20   8.71936121e+20   1.06644136e+20   9.12997323e+20
   8.55137473e+20  -3.51364185e+20   3.57308124e+20   3.50752774e+20
  -7.74789230e+20   1.04321049e+20   1.51439735e+20   3.28617859e+20
  -5.81593247e+20   5.25989512e+20   6.36796649e+20  -3.33548210e+18
  -3.76067416e+20  -8.70353960e+19  -6.10222630e+20  -8.13209002e+20
  -3.32421718e+20   1.22559032e+21   3.12196205e+20   7.10095376e+20
   2.97997223e+20  -6.00661847e+20  -1.15542312e+21  -3.94186733e+20
   3.54377314e+19   6.05755545e+20   6.74616575e+20   6.62884488e+20
  -7.60868753e+20   9.32313610e+20  -3.38375071e+20  -1.31688410e+21
   4.98453282e+20  -6.00735546e+20   3.45869529e+20   6.86439986e+20
  -1.68919482e+20   1.84655197e+20  -6.82511217e+19   1.00794206e+21
  -7.51956398e+20  -4.05620405e+20  -1.99384798e+20   8.99084045e+20
   8.13299005e+20   1.63602489e+21   1.17722658e+20   1.17261697e+21
  -1.11631018e+21  -1.08988127e+21   4.83725224e+20  -1.19573408e+20
   5.81287971e+20  -1.48742868e+20   4.76212735e+20  -4.03214240e+20
   7.10007659e+20  -9.08352402e+20   1.03836385e+21  -2.95077612e+20
  -1.30727604e+20  -3.97273482e+20  -4.52528143e+20   1.06862300e+21
  -1.53325762e+21   1.26398465e+20  -2.34335949e+20  -4.77887938e+20
   2.08948786e+20   3.70664664e+20  -3.91489301e+20   9.89206439e+19
  -8.37698857e+20   2.76588735e+20   5.59107601e+19   3.83354161e+19
  -4.79745834e+20  -2.68498251e+20   7.28648613e+20   4.59650405e+20
  -5.43944458e+20  -1.46611918e+21   6.32856543e+20   1.05244364e+21
  -6.74164723e+20   4.47225498e+20  -2.39049304e+20   6.39232975e+20
   6.85408666e+20   1.33547977e+21   5.88505088e+20  -2.31081665e+20
   1.23668805e+21  -7.01358183e+20   3.59556440e+20  -3.02559257e+20
  -1.00085229e+20   2.94957548e+20  -2.24865759e+20  -2.56572397e+20
   6.37097782e+20   3.09317750e+20   7.16995311e+19   1.68676710e+20
  -5.73522040e+19  -7.19607637e+19   2.81247657e+20  -5.53562136e+20
  -2.70700401e+20  -6.10025971e+20   3.00838908e+20  -5.62250268e+20
  -6.55677560e+20   6.72074539e+20  -1.98632917e+20   1.04074627e+21
   5.40660262e+20   8.92293784e+19  -9.19609473e+20  -3.56496073e+20
   6.09793854e+18   4.55259479e+18   4.80790748e+20  -2.50046036e+20
  -8.58426347e+20   9.94977180e+20  -1.71644248e+21   4.59473408e+20
  -3.48402276e+20  -9.88274595e+19   1.03814351e+21  -5.77660475e+20
  -5.55863798e+20   3.52719565e+20  -3.69697343e+20  -3.72254428e+20
  -5.28741237e+20   1.25797658e+20   2.16600195e+20   4.40521454e+20
  -6.42899412e+20   1.96766272e+20  -1.38693959e+20  -2.91489006e+20
   6.83389080e+19  -1.02942229e+20  -3.34699786e+20   1.19962317e+21
  -2.62927755e+20  -9.71259603e+19   1.08807759e+21   3.92008846e+20
  -1.24131932e+21  -1.19709580e+20  -8.11817074e+20  -5.71569092e+20
  -2.10377028e+20   5.01347753e+20   7.71679892e+20   4.05352183e+20
   6.25935937e+20  -4.13981598e+20   4.22489579e+20   9.50200420e+20
   8.25084078e+19  -4.44892169e+20   9.82639698e+19   7.60002845e+20
   2.61077004e+20  -5.36858559e+20   4.11865105e+20  -7.81298296e+18
  -1.46339090e+20   7.67720352e+20  -8.63761388e+20   5.05837141e+20
   1.92014687e+20   5.37125857e+20   1.44045422e+21  -2.40951894e+20
  -4.37279646e+19   5.55383002e+19  -2.99802958e+20   1.90435085e+20
   8.22747802e+20   6.98560924e+20  -6.83806233e+20  -5.53223820e+20
   1.26242456e+21  -4.80504025e+20   4.40995494e+20   5.52163506e+20
   2.97681331e+20   3.74833735e+20   6.14369977e+18  -2.09107793e+20
  -6.82464478e+20  -3.34269259e+20  -3.15547347e+20   5.84072307e+20
   4.17752915e+20  -9.33577479e+20   1.25096291e+21  -2.40559417e+20
   1.44080745e+20   1.60833209e+20   2.32058766e+19  -3.09505077e+19
   2.02234489e+20  -1.72712992e+20  -8.56447755e+20  -2.88357411e+20
  -4.64034962e+20   1.04409614e+20  -2.13713461e+20   1.00347205e+19
  -4.88553228e+20  -5.57149027e+20   4.23704611e+19   1.58374647e+20
   3.89032187e+20  -3.94962180e+20   5.22408604e+20  -4.99034495e+20
   1.98544799e+20   5.62271782e+20  -7.40163452e+20  -6.94722243e+20
   3.05713151e+20  -5.22709622e+20  -3.62983184e+20  -2.63987706e+20
   8.86809497e+19  -7.36655418e+20   3.99016089e+20   1.89574554e+20
   1.11446794e+19  -8.71864322e+20  -3.49376375e+20   8.72861582e+20
  -1.03216450e+20   4.23327390e+20  -1.86589070e+20   5.60136325e+20
  -1.22240916e+20  -4.12810135e+20  -1.71793392e+20  -7.13415133e+18
  -2.82773782e+20   5.53404680e+20  -1.88045243e+20  -4.22582737e+20
   3.22658902e+20   8.74933219e+20  -1.00331152e+21   6.81009328e+20
  -5.78420982e+20  -7.05182242e+19   1.07612215e+21  -2.91532403e+20
   6.01604160e+20  -6.02892442e+20   8.10625804e+19   1.15734093e+21
  -7.39537653e+20  -1.77707783e+20   3.30595067e+20   8.57365532e+19
   3.66308260e+20   1.23117211e+20  -6.58494508e+20   2.90626756e+19
   5.34222713e+20   5.03701732e+20   4.24176179e+20   2.00404926e+19
  -3.71499833e+20   7.00855434e+20   4.05775897e+20  -1.89546796e+20
  -4.69727635e+20  -1.47184258e+19   8.14553741e+19   1.09146361e+21
  -4.85317792e+20  -7.93434634e+20   6.43846666e+20  -6.09709098e+20
   7.74695127e+19  -3.26567899e+20   2.07391507e+20  -5.11530810e+20
  -8.75253118e+20   4.12540823e+20  -5.08110021e+20  -6.63839800e+20
   6.39611198e+20   4.96870842e+19  -8.91789407e+20   3.24221028e+20
  -1.59120721e+20  -4.18481643e+20   7.75886788e+19   8.55477725e+20
  -1.35571151e+21   1.31265021e+21  -7.25777218e+20   2.16746713e+20
  -1.11231714e+21  -6.05243204e+20   4.21780057e+20  -6.75315369e+20
  -2.75204873e+20  -3.07844767e+20  -1.31554657e+20  -2.76061936e+19
   4.00596271e+20  -4.75544073e+20  -5.89279235e+19  -1.29680385e+19
  -2.58956699e+20   2.23562401e+20   2.24346047e+20   4.73114986e+20
  -3.57887069e+19  -8.30338321e+19  -3.10787283e+20  -4.18535863e+20
   2.92726178e+20  -3.28514918e+19   1.26791679e+19   1.70108549e+19
   5.64908413e+20   4.22398430e+20   1.66746843e+20   1.88683851e+20
   8.03278730e+20  -8.33793799e+20   5.02494347e+20   5.95874855e+20
  -2.99908754e+20   4.89386274e+20  -2.97496915e+20  -8.89472670e+20
  -6.01563909e+20   4.24583572e+20   2.19048828e+20  -2.09804215e+19
  -7.14475757e+18  -3.73377674e+17  -1.38988363e+19  -2.55954648e+20
   4.39675323e+20  -8.48424827e+19   2.63765016e+20   1.06292770e+21
  -9.08202450e+20   2.14270472e+20  -7.57643555e+20   1.59736989e+21
  -5.92524838e+20   8.22244752e+19  -2.53723338e+20  -3.54591151e+20
  -4.56221151e+20   1.89382948e+20  -9.29136226e+20   2.79584192e+20
   1.80037179e+19  -3.44430727e+20   4.91928832e+20   3.39785665e+20
  -4.88763214e+20   1.16447101e+21  -4.94684930e+18  -3.04745009e+20
   3.62377688e+20   1.15460551e+21  -8.03378614e+20  -4.47777509e+20
   8.59508877e+20  -4.58344726e+20   1.58819386e+20  -1.21909848e+20
   5.92953037e+20  -8.90386103e+19  -4.01036799e+19   2.99404426e+20
  -4.73963266e+20  -7.10382729e+20  -8.16890418e+20   4.01871030e+20
   6.19723150e+20  -2.21845819e+19   3.35044186e+19  -4.21784656e+20
   9.39657393e+20  -2.31366385e+20  -3.56067330e+20   1.77578249e+20
  -1.77452128e+20   5.26399840e+20   2.92840816e+20   5.04614485e+20
  -2.65952058e+20  -5.97113409e+20   1.69391716e+20  -1.62075690e+21
  -6.52374052e+20  -8.07492255e+19   4.46225199e+20   1.09782949e+21
   3.00266234e+20   2.50718683e+20  -4.73889501e+19  -4.15417544e+20
  -1.57414671e+20   6.56745245e+20   6.69571138e+20  -9.82402414e+20
  -8.02371505e+19  -4.17321872e+19  -7.59669275e+20   9.62783944e+20
  -1.27382403e+20  -9.25589224e+20   6.06222955e+20  -8.03022560e+19
  -5.18301559e+20   9.97844312e+20   3.39594815e+20  -1.94476317e+19
   5.21146681e+20   4.50622762e+20   2.27206555e+20   4.00136490e+20
   4.73906134e+18   1.08851613e+21  -8.87454257e+20   2.80728261e+20
   7.51083298e+20   5.30583707e+20  -1.05651943e+21   1.96294127e+20
   1.23016154e+19   2.90298030e+20   2.39937669e+19   5.27173554e+20
   8.93493830e+20   9.61801164e+20   7.01157778e+19  -1.75792552e+20
  -1.99078523e+20   1.13948124e+21   1.03698548e+21   4.46628409e+20
  -6.04548988e+20   7.64523113e+20  -3.88265593e+20  -1.60192297e+20
   4.69956329e+20  -3.31574658e+20  -1.14895246e+20  -9.98466476e+20
  -6.59872352e+20   1.00372757e+21  -1.39318197e+21   5.96625929e+20
  -1.08492564e+21   8.64472720e+20   1.61770068e+20  -1.18068528e+21
  -9.78601172e+20   7.15749557e+20   7.03024276e+20   8.64180924e+20
  -1.26095686e+18   4.15240730e+20  -9.18115066e+20  -1.81624851e+20
  -1.19519866e+21  -1.44948509e+20   6.67555332e+20  -8.84896760e+20
  -7.07088759e+20  -1.64459238e+21   5.45746364e+20   5.33147987e+20
  -5.82383139e+20   1.60292761e+21  -6.54674514e+20  -9.62121023e+20
   1.20656167e+21   7.56462516e+20   3.33466721e+20  -9.98357778e+20
   1.40442098e+21  -3.81197459e+20  -4.20214247e+19  -1.49157071e+20
  -1.54569073e+20  -1.19571379e+20   1.11806065e+20  -4.62024667e+19
   4.40176145e+20  -1.10731848e+21   1.02997602e+21   2.11770370e+19
   7.89840584e+20   8.83011844e+19   6.06568395e+20  -5.86186318e+20
  -3.15261402e+20  -2.65541930e+20  -1.23536139e+21   1.18125999e+21
  -7.29682581e+20  -3.75121414e+20   3.90006221e+20   1.79877902e+20
   1.29132771e+21   9.54609960e+19   2.88847765e+20  -4.68172884e+20
  -1.55272997e+20   2.17631541e+20  -2.67099859e+20  -9.41166866e+20
   6.60876704e+19  -4.99416085e+19  -9.13028591e+20  -4.87594315e+20
   1.08820723e+20   2.41314003e+20  -2.47010864e+18   2.66847451e+20
   1.12330665e+20   2.28074033e+20  -3.84479769e+20  -3.60031088e+20
   1.97225951e+20  -3.29509567e+20   2.20550962e+20   9.17257695e+20
   1.85452411e+21   7.47587872e+20  -3.44734867e+20  -2.02479073e+20
   8.95560529e+20   3.11691938e+20  -1.14532798e+20   1.19844569e+21
  -7.99252489e+20  -4.61436802e+20  -3.89753609e+20  -1.49001966e+21
  -1.30612167e+20   7.42508651e+20   2.87628065e+20   6.48916006e+19
  -8.37082552e+20  -1.20715681e+21  -5.96620517e+20  -4.91077608e+20
   6.89405141e+20  -1.05830250e+20   3.91748265e+20   1.78547830e+20
  -1.08655482e+21  -1.08363610e+21  -4.31748379e+20   9.73603152e+20
  -2.28894386e+20  -8.30839311e+20  -2.49332045e+20   1.90732139e+20
   7.29289215e+20  -7.28473625e+20  -4.74238182e+19   5.13682978e+19
  -3.13018381e+18  -4.39170807e+19  -9.66928070e+19  -1.49181737e+21
   4.13274566e+20  -3.88207047e+20  -4.01724442e+20  -1.57326469e+20
  -4.39533257e+20  -4.28620912e+20   7.15175284e+20   5.33428501e+19
  -9.73317438e+20   6.56749853e+20  -2.93051078e+20  -5.51476511e+20
   8.38016883e+20   7.90888959e+19  -3.20378665e+20  -5.55890184e+20
   8.16562283e+20  -6.30540609e+20  -5.15805751e+20  -4.11723563e+20
   5.98431142e+20   4.82013343e+20  -6.38697598e+20   5.63712737e+20
  -5.87225392e+20  -2.35468321e+20   5.48740309e+20   7.29157578e+20
  -6.83433573e+19  -4.86478611e+20  -4.02501318e+20  -1.12579563e+21
  -1.00270909e+21  -1.50990768e+21   8.61256462e+20   5.67128132e+20
  -6.05162991e+20   7.62230050e+20   7.14257225e+20   5.49193423e+19
   2.63750128e+20  -1.22552116e+21  -1.12682498e+21   6.21518506e+20
  -4.29127519e+20   5.36400692e+20  -2.26035041e+20  -1.27739318e+21
   3.14790354e+20  -9.05779481e+19   3.68139142e+20   5.22820837e+20
   2.04923342e+20  -8.46517041e+20   3.48820364e+20  -1.29699865e+21
   8.12339499e+19   9.42168798e+20  -9.92165330e+18  -6.64337576e+19
   1.72210244e+20   1.03650126e+21  -1.91089323e+20  -3.25672470e+20
   1.84283674e+20  -6.50234940e+20  -4.48752649e+20  -7.53712640e+20
  -7.58916003e+20  -2.53054727e+20   5.04112647e+20   1.48903518e+21
  -9.53509012e+20   1.93721799e+20  -6.31910905e+20   2.01561153e+20
   3.92706986e+20   6.11750684e+20  -9.12207281e+20   2.29949233e+20
   3.67760165e+20   9.37010074e+19   2.84530132e+20  -4.33400748e+20
  -2.78034229e+20  -8.53789251e+20  -6.26257395e+20   1.01720756e+21
  -7.15040640e+20   5.57701121e+20   4.04889813e+20  -2.38240924e+20
   2.14413654e+20   6.81134693e+20  -4.27942013e+20   2.01691043e+20
   7.53430596e+20   9.36437245e+19   7.96148026e+19  -8.86971554e+20
   8.58416591e+19  -8.38392911e+20   3.88310639e+20  -8.41179600e+20
   4.30227155e+20   2.97072700e+19   7.30382337e+20   7.48535708e+20
   1.02884478e+21  -6.51775753e+20  -1.27657312e+21  -8.81029765e+20
  -9.10809528e+20  -2.63414057e+20   5.45251956e+20   1.16802595e+20
   8.52054660e+20  -2.27199699e+20   6.61290543e+20  -1.22000402e+20
  -9.02736640e+20  -8.87167284e+20  -4.64700574e+20   1.17352417e+21
   4.53703642e+19   3.54606512e+20  -2.85450592e+20   1.33243222e+20
  -3.67093599e+20  -1.46731383e+20   5.82050431e+20  -7.65056690e+20
   8.47024051e+20  -1.71505408e+20  -3.92085343e+20   3.03211779e+20
  -4.21313086e+20   5.83150810e+20  -2.18089221e+20   8.18502919e+20
   9.75851887e+19  -4.95792014e+19   1.20672751e+21  -2.13826298e+20
  -3.50608008e+20   8.94047711e+19   8.75494782e+20  -9.10348676e+20
   1.92386622e+20   2.34865670e+20   2.78484553e+20  -5.67290797e+19
   4.91427299e+20  -6.67563985e+19   2.96988735e+20  -1.21994847e+21
  -4.06089378e+20  -5.42652912e+20   1.16516610e+21   2.64256040e+20
  -5.70501795e+20  -5.41287920e+20   5.55509641e+20  -4.80078734e+20
  -3.63780588e+20   3.31751377e+20   5.83218484e+20   4.56984642e+20
  -3.48654692e+20  -5.33219192e+20   8.80538174e+19  -4.32070048e+20
   8.85107681e+20  -2.16678877e+20  -7.03849411e+19   2.46977522e+20
   7.29234611e+20  -3.18029889e+20  -9.52328086e+20   5.51561297e+20
  -7.32374642e+19  -2.09080426e+20   7.27323258e+20  -7.25249297e+19
   3.57631859e+20   1.25583527e+20   2.49847770e+20   4.28333571e+20
  -3.89771426e+20   1.64563672e+20  -1.56226292e+21   1.84295798e+21
  -1.35531370e+20  -6.80502186e+20   1.05592220e+20   4.30014247e+19
   5.93985637e+20  -6.01822861e+19  -4.06869663e+19  -8.54823661e+20
   1.43098533e+20  -8.17383189e+20  -2.81396779e+19  -9.31082694e+19
   4.18693624e+20   3.51435101e+20  -7.39551099e+20  -5.43131555e+20
  -3.96369083e+20  -3.61032882e+20  -4.41253527e+20  -1.49110361e+20
   4.99305494e+20  -9.67199196e+20   4.32899222e+20  -2.05744936e+21
   1.14199840e+21  -7.48746128e+20  -4.51594527e+20   7.62062477e+20
  -1.04524547e+21   1.48620156e+20  -1.03425643e+21   5.89498730e+20
   5.11057112e+19   2.65549186e+20  -3.67987431e+20  -5.48268159e+20
   1.00726657e+21  -3.61723763e+20  -1.02512406e+21   6.22826137e+18
  -2.37844736e+20  -4.97038551e+20   2.49447733e+20   1.57177922e+20
  -7.35400697e+20   5.49216773e+20   2.31284323e+20  -1.79715630e+20
   5.59294984e+20   1.27003967e+21   2.88250015e+20   6.34411275e+20
   3.16920762e+20   5.45266143e+20   5.83210066e+19  -2.37849741e+20
   3.12963447e+20   1.33183594e+20   8.96725720e+20   4.84664683e+20
   1.58154430e+20  -1.32559308e+20  -3.43179932e+20   1.61072842e+20
   5.35183272e+20  -3.27087655e+20   4.93705665e+20  -5.59221937e+20
  -9.26792984e+19  -8.74436082e+19   4.74143411e+20  -6.41665297e+20
  -4.76504547e+19   3.73909977e+20   5.18917213e+19   7.76723949e+19
  -7.34602030e+20   1.02566377e+20   1.73833309e+20  -8.35155123e+19
  -5.30674541e+20  -1.62092168e+20   6.23020480e+20  -3.75192883e+20
   8.39305563e+20  -1.33853848e+21   3.64336225e+20   1.68466516e+20
  -4.49014209e+19   4.62655676e+20   6.67692005e+20   6.08320902e+20
   2.35106182e+20   7.77538537e+20   4.82014440e+20  -1.12649149e+20
  -4.36885730e+20   3.11511048e+20   2.93270800e+20   1.11466558e+20
   4.35465954e+20  -2.83508671e+20   1.00430648e+20  -8.10018838e+19
  -4.79375930e+20  -2.61245757e+20  -6.44942468e+20  -6.00083503e+20
   1.18914942e+21  -1.88385147e+20   7.11855508e+20  -4.83369427e+20
  -1.10662968e+21  -4.60362694e+20   5.60174452e+19   4.15494304e+20
   1.16246172e+20  -2.77076635e+20   4.20458382e+20   3.17545570e+20
   7.85172561e+20   5.93755092e+20   4.35573223e+20  -9.34467707e+20
  -2.31413331e+20   1.17621332e+21   3.92431651e+20  -1.62668844e+20
  -3.87007744e+20   2.16017317e+20  -6.85859573e+20   1.01443532e+21
  -1.32279164e+20   6.40449766e+20  -1.58259124e+20  -1.01010646e+19
   9.09126976e+20  -1.71725967e+20   1.89147415e+20  -6.87842189e+20
   6.41405081e+19   2.05346615e+21   7.21240426e+20  -1.39025388e+20
  -8.45328924e+20  -2.68002871e+19   2.54947754e+20  -8.08457416e+20
  -8.90969473e+20   5.64690917e+18   1.10770266e+21  -1.09330146e+21
   1.72739712e+20   1.50141864e+21  -2.45584266e+20   6.40478841e+20
   8.06824070e+20   1.51308505e+21   3.28144339e+20  -1.38017524e+21
  -4.50596168e+20   9.31890942e+18  -1.35297370e+21   1.93820702e+20
   7.63885403e+20  -9.37114026e+20  -9.16023017e+18   6.77872065e+20
   1.09878218e+20  -2.25452341e+20   1.24632831e+21  -7.18030760e+20
   4.22872127e+20   1.00050438e+20   3.12369196e+20   7.98862931e+19
  -5.51229582e+19   2.30920696e+19  -3.09777883e+20   3.64713910e+20
   7.94500226e+19  -5.98389510e+20  -3.23677747e+20   5.07692006e+20
   1.72440583e+19   1.61756238e+20   7.78567559e+19  -3.63437594e+20
   3.33451276e+20   2.58046834e+20  -4.75595523e+20   9.05280007e+20
   6.91318469e+20   5.91456249e+20  -6.59935153e+20  -1.51590684e+21
   6.32553482e+20   3.77943176e+20  -1.56790937e+21   4.52168186e+20
  -5.18253427e+20   5.65263145e+20   2.16722731e+19   1.88058388e+20
  -3.31071008e+20   2.83860461e+20   7.48788189e+20  -1.20815107e+20
  -3.21746098e+20   5.11282680e+19  -6.93437519e+20   7.73032692e+18
  -6.80662259e+20   8.52494248e+20  -6.80254117e+20  -6.45549664e+20
  -5.30581213e+20  -1.53034313e+20  -1.01346378e+20   8.98744941e+20
   3.86887946e+20  -7.25064117e+20   3.09528486e+20  -7.17566122e+20
  -7.17621308e+19   9.68059217e+20   3.64466476e+20  -4.28819201e+20
   2.66427462e+20   4.56912620e+20  -2.27141683e+20   6.60211790e+20
   1.55074970e+20  -4.91302079e+18   2.94349020e+20   1.25426848e+21
   1.28787789e+20  -7.08502699e+20  -1.20865637e+20  -9.39840103e+20
  -4.05545576e+20   8.25182290e+19   3.35492426e+20  -1.58096243e+20
  -2.67501116e+20   1.13932700e+20  -2.46211618e+20   4.52488153e+20
   1.40594270e+21  -1.63951133e+20   2.60783885e+20  -2.19291945e+20
  -1.39383169e+20  -6.65620488e+20   2.54905058e+20  -1.04805787e+20
   3.63561785e+20  -4.77422376e+19  -2.89087174e+20  -1.17656483e+20
   6.88332222e+19  -6.39977747e+20   8.70194338e+20   1.70710414e+21
  -1.17055960e+21   3.27650933e+20   3.85628182e+20   1.53456159e+20
  -2.88545535e+20   2.47604074e+20  -8.27616029e+20  -9.66335829e+20
   5.82987862e+20   9.42029827e+19  -1.00833006e+20   1.28029211e+21
  -6.19848078e+20   6.94110589e+20   4.66682410e+20  -8.26719653e+20
  -5.46301029e+20  -5.22027721e+19  -2.64649536e+20  -4.55392962e+20
   6.42312282e+20   5.76356802e+20   7.28027481e+20  -3.37792508e+20
  -3.44818274e+20   4.25953392e+20  -6.09487369e+20  -7.72210127e+20
  -8.21852991e+20  -2.29806951e+20  -1.46101771e+20  -2.99943364e+18
   1.05228774e+21   6.11884984e+20   6.48171368e+20   1.99598093e+20
  -6.46134589e+20  -2.37148868e+19   6.54038269e+20  -5.09430494e+20
  -4.03246997e+20  -6.05390922e+20  -6.97043701e+20   1.31141316e+19
  -5.19174167e+20   1.87307241e+21  -1.77353967e+20  -3.19816896e+20
   5.22707715e+20   1.20935251e+19  -1.48432160e+20   6.07484446e+19
  -1.47492200e+20  -8.30369065e+20  -9.75297170e+18   4.91260545e+20
   9.05469906e+20   9.64089568e+19  -1.86648911e+20  -4.52977215e+20
  -3.45334942e+20   1.10894463e+20   4.43056120e+20   3.38078199e+20
  -1.23240597e+20   9.80101184e+19   1.09947701e+21  -3.83942733e+20
  -7.95458959e+20  -3.39323825e+20   1.88496175e+20  -7.57646836e+20
  -2.98858109e+20   4.76815671e+20   3.23479450e+20  -4.55521363e+20
   2.78770553e+20  -6.51659794e+19  -2.57220775e+20   6.00477394e+20
  -1.52150316e+20  -6.36109228e+20  -4.56380527e+19  -4.58729967e+20
  -8.36186814e+20   3.44882287e+20  -6.31824835e+19   4.23535251e+19
   1.20464664e+21  -8.35065450e+20   9.01857773e+20  -1.32454592e+20
  -1.13988449e+20  -2.06398675e+20  -1.68240750e+20  -2.63872025e+20
  -1.28548504e+20   4.83107127e+19  -7.65804242e+20   5.58780139e+20
  -1.45443295e+21  -4.22374443e+20   3.46501582e+20   5.08855077e+20
   9.31636282e+20   6.41864030e+20  -3.45673446e+20   1.80901122e+20
  -8.20793091e+19  -1.23611653e+21  -2.33434959e+20  -8.52321716e+20
  -9.15065257e+19  -1.81344001e+20   3.97558002e+20   5.84256125e+20
  -8.68692145e+20  -7.16951215e+20   6.09945747e+20  -7.89628892e+20
  -2.37543897e+20   4.16318843e+19   2.13593160e+20  -5.97613015e+19
  -1.27023357e+19   5.46976658e+20  -1.81068755e+20  -1.00127015e+20
   7.79476352e+20   3.59738894e+20   4.32182065e+20  -6.37841572e+19
   3.02436861e+20   8.11819791e+19   1.04754458e+21   7.62606109e+19
   1.51720842e+20   7.77795099e+20   7.40788153e+20   1.31686443e+21
   1.12682183e+19   7.89448909e+20  -2.45821742e+20  -8.21386135e+20
   3.93080750e+20   3.49286428e+19  -1.87650031e+20   4.48797509e+20
   8.80471322e+20   6.64684752e+20  -5.77489222e+20   6.78627429e+20
   1.78131704e+20   8.28979827e+20  -3.33625224e+20   3.62799504e+20
  -1.69591246e+20  -2.85364274e+20  -6.95233158e+20  -6.55236045e+18
   7.98359394e+20   4.14248995e+20  -8.70967536e+20   1.32796256e+20
  -4.14915301e+19  -5.75649630e+19  -9.14717192e+19  -3.94472443e+20
   6.54728217e+20   4.23244675e+20  -1.75714163e+20   3.68833143e+20
  -5.17037155e+20  -1.54701732e+20  -2.12395558e+19  -7.14816517e+20
   7.23278325e+19  -5.17892709e+20  -3.22226609e+20   4.03845336e+20
   1.96699082e+20   7.34091599e+18   2.26324041e+20  -4.92021545e+20
  -2.99805377e+20   5.02959918e+19   6.31034836e+20   1.53282688e+20
  -2.49422225e+20   4.83442720e+20  -7.30957937e+19  -4.04911996e+20
   6.15259451e+20  -1.71737133e+20   4.72632697e+20  -3.80588044e+20
   1.31851992e+20  -1.01604807e+21   3.18105362e+20  -1.78447507e+20
  -8.16793194e+20  -1.39539100e+20  -1.18329652e+20   1.44529470e+20
   5.73071517e+20  -5.31746869e+20  -5.49728932e+20   1.17459109e+21
  -9.34024121e+20   4.59917256e+20   2.52506422e+20   3.95982976e+20
  -1.99841792e+20   1.76380931e+20  -2.79377613e+20   6.19635898e+20
  -1.15616957e+21   7.55512025e+20   4.17568353e+20   1.88794077e+20
  -2.76010542e+19  -5.97751949e+20  -5.94440290e+20   2.57366359e+20
   1.29801881e+21   2.23807738e+20   2.29133625e+20  -7.53609795e+20
   2.11217277e+20  -1.01509630e+21  -3.70622277e+20  -1.00351970e+21
  -1.31838824e+21   8.61158841e+20  -7.95061668e+20   9.26162193e+20
   9.03271246e+19   1.77348883e+20   5.99148758e+20  -1.67195081e+20
  -9.56637768e+20  -4.79473327e+20  -1.99870130e+20   7.17724963e+19
  -5.53257792e+20   1.87723171e+20  -1.50087496e+21  -9.18171876e+20
   1.03941581e+20   1.09790982e+21   1.07934866e+21  -1.82781088e+20
  -4.07391061e+20  -3.33651312e+20   5.03159152e+20   1.65692029e+20
   1.00958497e+20  -3.99730663e+20   7.05415784e+20   6.91600670e+20
   2.90481199e+20  -9.12579508e+19  -2.67048933e+19  -3.32436485e+20
  -3.92974725e+18  -1.02026969e+21  -2.01872252e+19  -1.51279306e+20
  -5.84360366e+19  -6.18850285e+20   5.43942020e+20  -2.30573921e+20
   9.09922390e+20  -1.01754506e+21  -1.24378285e+20  -3.25717729e+19
   2.41606140e+20   1.65150753e+21  -8.03280510e+19  -1.24518839e+21
   1.28241015e+20   8.37082427e+20  -3.98786428e+20   5.61196816e+19
   7.34285534e+20   2.09947380e+20   7.96365814e+20   8.90790079e+19
   1.04978835e+21  -5.03048878e+20   4.78214924e+20   1.82931925e+20
   6.03310814e+20  -7.68873019e+20   1.23391789e+20  -9.51661508e+20
  -1.01347732e+21  -4.92566812e+20  -4.75283762e+20  -2.47842974e+20
   4.85881533e+20  -5.98039546e+20  -8.27456046e+20  -7.63759347e+20
   1.43215854e+21   1.48528132e+20  -9.68863902e+19  -5.25682712e+20
  -5.05510431e+20  -2.31055484e+20  -1.88901134e+20  -3.71302660e+20
  -1.21734027e+21  -2.20340416e+20   8.87363094e+20  -2.76706864e+19
   4.08034032e+19   2.12753440e+20  -3.90634711e+20   1.03748095e+21
   6.98139694e+20  -8.21994194e+20   8.11820085e+20   2.49873230e+20
   8.59336259e+20  -1.51744505e+20   4.63662980e+20   1.00176207e+21
   1.01185774e+21  -3.74908217e+20   1.37659604e+20   5.17473397e+20
  -2.75370762e+20   1.60331029e+20   6.06102437e+20   1.58671739e+20
  -1.47986592e+20  -9.85881942e+20   3.01168647e+20   3.34437285e+20
  -4.05744581e+20  -2.54444486e+20   1.21286800e+20  -1.10918464e+18
  -8.27125636e+20   2.10643105e+20   7.35809349e+20  -3.44978426e+20
  -2.26736763e+20   2.10519023e+20  -1.04957720e+21  -1.25510473e+21
   2.31633880e+19   9.89432295e+20   9.02550585e+20  -1.41390803e+20
  -1.38654351e+19  -5.49150921e+19   1.84561735e+21   3.81302977e+20
   2.36569982e+20  -1.17815514e+21  -1.22624192e+21  -1.78462966e+19
  -3.49007673e+20   5.17242480e+19   1.05863872e+21   3.18528903e+20
  -7.17103546e+20   7.44558830e+20   2.57375383e+20   3.59936893e+20
  -8.30190507e+20   1.20426516e+21  -7.94904562e+19  -6.78253855e+20
   1.98793956e+20   8.40901864e+20   9.04491868e+19  -1.95191445e+20
   3.77461677e+20  -1.13671438e+20   1.09874575e+21   1.18748898e+21
  -8.91274104e+20  -9.56505903e+20  -5.00420463e+20  -7.18655119e+20
  -6.34516134e+20   5.23350933e+20  -6.55846417e+20  -1.29475545e+20
  -7.38839587e+20   1.17943927e+21  -2.14094358e+20  -2.65582706e+20
   1.11957749e+21  -6.71024078e+19  -9.46452820e+20   7.95438784e+20
   4.50655462e+19  -3.44685774e+20  -9.62125936e+20  -2.55483766e+20
   6.40933087e+20  -8.48626455e+20  -5.17311370e+20  -1.67382400e+19
   2.30683045e+20   1.49886341e+20   6.62150654e+20  -4.52110137e+20
   2.17248392e+20  -4.08014800e+20   7.80187569e+20   1.70819950e+21
  -6.32281196e+19  -4.23366901e+19   7.53138861e+20  -1.26300769e+20
   3.78524648e+20   3.26105870e+20  -1.62635459e+20   1.54789271e+21
   4.60280477e+20  -2.71335253e+20   1.54677235e+20  -4.41548822e+20
   2.94081727e+20   4.60819026e+20   1.17666223e+20  -9.06456651e+20
   2.74421140e+20   1.61249296e+20  -4.29060292e+20   2.22702014e+20
   3.11439159e+18  -3.29511053e+20   4.10231392e+19   8.65337386e+19
   1.54888016e+20   1.65670030e+21   1.89501165e+19   4.17382444e+20
   7.58148022e+20  -7.02799972e+19  -8.03716031e+19  -1.11087671e+21
   4.40525334e+20  -5.40712652e+20   1.73032586e+20  -4.90277438e+20
  -3.62107129e+20  -7.61946729e+18   6.14683848e+20  -6.83132639e+20
   5.75333837e+19  -1.02223572e+21   1.64467026e+20  -8.84179861e+20
  -9.18285047e+19  -6.74172208e+20  -4.41216031e+20  -1.44139528e+21
  -8.98170470e+20  -3.87921366e+20  -3.41108312e+20   7.58543199e+20
   1.28298292e+21   6.43793603e+20  -4.47831037e+20   6.83576728e+20
  -6.74623294e+20   2.61099495e+18  -1.04568123e+20   1.16236321e+20
   4.12207079e+20   5.36057527e+20   4.31184458e+20  -3.14180921e+20
  -1.33857427e+20  -6.09649065e+20  -6.05474885e+20   1.25773506e+21
   5.97873988e+19   9.11067349e+20  -5.48735991e+20  -1.14106453e+20
   4.19686234e+20   1.12246738e+21   2.06447429e+20  -3.20288522e+20
   3.38994644e+20  -5.75084860e+20  -4.19728961e+20   7.23610756e+20
   2.89759051e+20  -1.23697818e+20  -6.89928175e+20  -6.03074376e+19
   4.89503588e+20   1.74027762e+19  -5.80168896e+20  -9.34723676e+20
   3.62780500e+20  -4.12637779e+19  -2.67738695e+20  -2.83375781e+20
   9.31403111e+20   1.46585057e+21   9.66334391e+20  -3.18897498e+20
   1.31990793e+21   1.13031698e+21   5.03083105e+20  -6.50243176e+20
   3.31915787e+20  -1.35518619e+21   5.39296886e+20   9.64311593e+20
   2.70725141e+19  -4.47075915e+20   7.90224732e+20  -2.28271634e+20
  -5.17240562e+20   6.28248843e+20   9.88512437e+20   9.14451512e+20
   4.04461319e+20  -2.15103528e+20  -2.47645367e+20   2.06791598e+18
  -6.76125105e+20  -9.13161985e+20   1.14378569e+21   6.06598429e+20
   1.65420845e+21  -4.19064061e+20  -4.84539668e+20  -4.34886977e+20
   7.36584226e+20  -1.41066456e+20   1.39036469e+20  -9.40195690e+19
  -4.55985831e+20   3.33596337e+20  -2.44745742e+20  -7.10371637e+20
   3.34223315e+20   6.74476142e+20  -1.05698879e+20   2.19001691e+20
  -1.17731928e+21  -3.74657272e+20  -9.12796629e+20   7.53276481e+20
   1.76957215e+20   2.93465063e+20  -6.94989902e+20  -2.86117736e+19
  -4.58621979e+20   4.76627999e+20   3.81436487e+20  -2.13463833e+20
  -1.05800049e+21  -3.22410166e+20  -2.29031500e+20  -6.26715302e+20
  -2.51317698e+20   5.14003114e+20  -3.52648711e+20   8.30410406e+18
   9.34597883e+19   6.08685933e+20  -3.14650685e+20  -2.97659231e+20
  -5.22303271e+20  -8.29946742e+20  -7.42833781e+20   3.14997406e+20
   2.13612489e+20  -3.78453851e+20   2.50487285e+20   5.64527226e+20
  -3.17373065e+20  -3.56450292e+20  -2.52419495e+20   3.50518233e+20
   2.49395221e+19  -8.00938873e+20  -4.80925961e+19   1.29234354e+20
  -2.18404715e+20   7.11036615e+20   1.23889421e+21   5.29611662e+20
   3.23300462e+20   6.71614713e+20  -8.09187545e+20  -9.78957094e+20
  -4.58345656e+20  -4.41217074e+20  -5.78762090e+20   1.51595182e+21
   9.18026440e+20  -8.98317781e+20  -3.23271426e+20   8.88065711e+18
  -2.32808594e+20   8.03106528e+19  -9.07939429e+20   1.08658893e+21
  -3.49454925e+20   6.67993756e+20  -3.56127032e+20  -2.85872800e+20
   4.51244508e+20   1.94827076e+20  -3.94072999e+20   1.18538955e+21
  -1.33766787e+21  -4.63052463e+20   2.87459680e+20   2.53765373e+20
   1.26813523e+20  -5.68497328e+20   5.02672678e+20   6.48923900e+20
  -3.69931725e+20  -6.27516526e+20  -3.29984768e+20   1.19926526e+21
  -7.03113083e+20  -1.54100382e+20   2.30574450e+20  -1.86334613e+19
   4.94909001e+20  -7.29397600e+20   2.27804237e+20  -1.44272041e+20
   6.74513886e+20   7.80304206e+20   3.26419206e+20  -5.38785910e+20
   3.18712627e+20   2.12820137e+20  -1.20743114e+21   5.59124776e+20
  -6.10565617e+20   1.00216327e+21   8.07813992e+20  -1.09428417e+20
   1.39001476e+19  -5.47894034e+20   1.07622747e+19   1.13719105e+20
  -7.06028291e+19  -7.22099789e+20   7.20244003e+20   3.36463481e+20
  -2.27236202e+20   2.07185813e+20   9.90327291e+20   5.90992870e+20
  -4.91700308e+20  -1.62596540e+20  -8.47732093e+19   4.50808316e+20
   1.06482332e+20  -5.89745018e+20   1.05811945e+20  -2.89397934e+20
   1.18671120e+21   3.74287435e+20  -6.54602757e+20   2.66041160e+19
  -1.26042371e+21   8.03841734e+20  -5.38685811e+19  -1.11699377e+20
  -4.01555265e+20  -4.67438705e+20   3.25551574e+20  -1.23924513e+21
   3.42481042e+20  -3.90692031e+20  -9.85598784e+19   4.96159964e+20
  -4.41196684e+20  -6.67522608e+18  -4.94876118e+20   3.35551063e+20
  -1.50889412e+20  -5.46305150e+20  -4.46588686e+20   8.21795526e+20
   6.39471514e+20  -2.01986899e+20   2.80118206e+20  -2.53567635e+20
   3.89906878e+20  -5.40219179e+20  -4.60876621e+20   4.07214866e+20
  -3.99952761e+20   5.62249004e+20   4.17417665e+19  -8.57935905e+20
  -6.37627985e+20  -1.28739918e+20   2.90839802e+20   4.36736620e+20
   2.11047645e+20   8.86895474e+20   1.53681502e+20   5.06578898e+20
  -5.06204108e+20   6.54551203e+20   2.56448176e+20   5.72301545e+20
   1.18654396e+21   3.41673781e+20  -6.30757560e+20  -1.77215780e+20
   3.17562687e+20  -5.77659061e+20   4.30167016e+20   1.01097172e+20
  -8.09155677e+20   4.10812422e+20   8.43362075e+19   7.05173245e+20
   2.39608302e+20  -4.67041199e+20   3.80563846e+20  -3.76445382e+20
   6.00689457e+20   5.38772146e+20   4.38448564e+20   3.72589296e+20
  -2.41952316e+20  -5.70957620e+20   7.82615569e+20   4.61838831e+20
   2.35036688e+20  -1.33553158e+21  -3.66890879e+20   2.08491928e+20
   5.56254457e+20  -6.07526924e+20   5.64493540e+20  -2.62417166e+20
  -6.42663295e+19   3.07877317e+20   7.36467220e+19  -7.32643213e+19
   1.06698313e+21   1.69453701e+21  -3.97067888e+20  -3.01767422e+20
   1.29148564e+21  -3.15497823e+20  -8.30992477e+20   1.14044975e+20
  -3.70512915e+20   3.35330880e+19  -4.55885994e+20   2.82380089e+20
   9.54328881e+20  -2.47493809e+20   2.86671836e+20   1.46681654e+21
   2.09769607e+20  -5.29887062e+20  -3.50299738e+20   5.25417508e+19
  -5.53545518e+20  -8.76261129e+19  -4.07170577e+19   3.97318418e+20
  -3.50389499e+20   2.56303551e+20   5.59855407e+20  -1.97464427e+20
   1.84889875e+19  -1.16823508e+20  -6.52337625e+20  -1.12958245e+20
   6.54095189e+20  -4.35509268e+20  -4.66052988e+19   1.99443931e+20
  -2.15518043e+20   4.88538838e+20   1.60144265e+19  -5.46014909e+20
   4.79540658e+20   6.53262718e+20  -9.61349986e+20  -1.49081371e+20
   8.36667851e+20   5.69449498e+20  -6.97916960e+20   3.37344855e+20
  -1.46026637e+20   2.81796617e+20  -8.03407161e+20  -3.68950501e+20
  -3.25305121e+20   4.77523382e+20   2.07310257e+20  -3.39683492e+20
  -1.76491337e+20   2.20075251e+19  -3.04185404e+20   3.19318076e+20
  -1.37968807e+21  -7.75950161e+19   7.52901971e+20   3.39432166e+20
   8.60678346e+20  -1.44991569e+21   1.04226106e+21  -4.75695788e+20
   7.73629127e+20  -8.12676316e+20   1.03840205e+19  -4.99701349e+20
   3.17881914e+20  -4.51870253e+20   2.50407667e+20  -2.50645670e+20
  -5.95618044e+20  -7.90610535e+19  -6.38949633e+20  -1.80149051e+20
  -8.62125196e+19   8.18665207e+20  -9.48061961e+20   8.80392322e+20
  -2.70512552e+20   1.05546127e+21   7.55574493e+20  -7.86981994e+20
  -3.08736816e+20  -1.20899985e+21   5.31412872e+20   8.05746690e+20
  -5.34696707e+20   5.97960589e+20   1.06515836e+20   3.55987487e+20
  -2.45672728e+20   3.42314044e+20  -8.42084364e+20   2.15494487e+20
   2.06424641e+19   2.43732320e+20  -2.96547309e+20  -7.45363617e+20
   3.43320891e+20  -3.58113870e+20  -2.66827186e+20  -4.69170180e+20
   1.33458114e+21  -3.04936233e+20  -5.40191326e+19   2.31005033e+20
   1.03334664e+21   5.84995536e+19  -4.97724072e+20  -1.63910399e+20
  -2.02839253e+20  -1.55818639e+20  -4.00767506e+20  -1.50423354e+21
  -7.12213147e+20  -1.24990447e+21  -4.55660062e+20  -3.46581851e+20]

In [62]:
model_fit_terms2 = np.array([np.dot(tempval.T , model_fit_dotprod )])

In [63]:
print model_fit_terms2


[ -8.05905191e+17]

In [64]:
#
# compute C^{-1} * m and compare this to numpy.linalg.solve(C, m)
#
compare_matrixMult = np.dot(inverseSij , tempval)  # C^{-1} * m

In [65]:
print compare_matrixMult


[  3.46097105e+20   1.59565662e+21   4.63572981e+20  -2.74310293e+20
  -8.62595978e+20  -6.81215590e+20  -2.14099713e+20  -7.55678712e+19
   1.47228841e+21  -4.67219874e+20  -2.61736668e+20  -1.92599809e+20
   8.64839195e+20   7.96227947e+19  -9.74570253e+20  -4.83788009e+20
   1.18878687e+20  -9.30748470e+18   1.15878594e+21  -7.39170543e+20
  -1.30762225e+21   5.88352520e+20   1.23380706e+21   4.48883775e+19
   1.36594160e+21   3.81726456e+20  -1.26208154e+21   9.29493431e+19
   9.38383480e+20   2.02762642e+21  -7.12954091e+20   8.41379226e+20
  -1.86601204e+20   3.58131800e+20   1.07186190e+20   2.19224984e+20
   3.92825006e+20  -1.63444845e+21  -2.17547691e+20   1.25559204e+20
  -1.83463675e+20  -1.35664225e+21  -1.13082217e+20   6.83814913e+20
   3.28638080e+20   7.45059348e+20  -1.35921545e+21  -5.95664832e+20
  -8.85061172e+19  -4.00176764e+20   1.03429592e+20   5.69455944e+20
  -4.91580197e+20  -1.07185632e+19   2.75469041e+20  -3.35165427e+20
   1.28353558e+21  -4.59583738e+20  -7.99324027e+18   1.34857112e+20
   8.68282275e+19  -1.21323888e+21   8.30802364e+20   1.19222857e+21
  -4.83009674e+20  -2.18274784e+20   6.90475237e+20  -6.86203031e+20
  -2.65955013e+20   3.91049140e+19  -2.22430460e+19  -6.00811522e+20
  -9.27301014e+20  -8.86768833e+20   3.66822255e+20   2.51809377e+20
   4.82530008e+20   1.02291214e+21  -1.67476156e+20   2.29031512e+20
   5.85399770e+20  -6.48044924e+20   5.97140328e+20  -8.71621613e+20
  -1.21193950e+21   5.02972999e+20  -3.03888909e+20  -8.11017452e+20
   3.64067804e+20   2.99049907e+20  -2.17873166e+20   5.82602996e+19
   1.42310405e+20   4.60072116e+20   5.68520161e+20  -5.55507864e+20
   2.77830582e+20  -2.98176099e+20   3.73383396e+20   3.47736364e+20
   1.59102685e+20  -1.76025192e+20  -1.14903690e+19  -5.81261153e+20
  -4.19911740e+20  -8.27948181e+20  -3.52678596e+20  -7.45154791e+20
   1.28748396e+20  -5.81238209e+20   9.83930819e+19  -3.45248705e+20
  -5.66472166e+20  -8.16648968e+20  -7.32423370e+20  -3.92098306e+20
  -6.70944768e+19  -4.31281854e+19   2.18176355e+20   2.23160523e+20
   4.13592559e+20   8.30881327e+20  -8.26743973e+18  -1.39074585e+20
  -2.22231326e+20   3.77090769e+20   5.73394641e+19  -9.55099669e+20
   5.67364893e+20   5.31709031e+20  -1.49020418e+21   4.15206653e+20
   5.15993285e+20  -1.36439374e+20   1.47268464e+20  -2.17419772e+20
   5.71194949e+20   3.98639675e+20   3.50820181e+20   1.55298655e+19
  -1.36692069e+20   9.98703973e+19  -7.54204944e+19  -2.79686901e+20
   4.26382139e+20   5.55469521e+20  -1.87871420e+20   5.67092691e+20
  -1.64932422e+20  -8.21423755e+20  -4.19471704e+20  -1.26504516e+19
  -1.70864181e+21  -5.99357078e+20   4.68786283e+20   6.18677964e+19
  -9.14665904e+20  -5.00061495e+20   7.15577435e+20   9.53059012e+20
   6.09170690e+20  -3.20018995e+20   7.75242103e+20  -4.08761392e+18
  -6.95786663e+20   4.66466954e+20   4.51133628e+20   8.56342399e+20
   4.36682088e+20  -1.05451388e+20  -3.22929879e+20  -9.26625390e+20
   5.66837166e+20  -5.41052793e+20   1.83128222e+20  -3.16996465e+20
   8.11320665e+20   6.14853447e+20  -1.96102600e+21   1.08342477e+21
   2.05107949e+20  -2.52148911e+19   1.30904008e+21  -1.87859353e+20
   1.80323480e+20  -2.98499438e+20  -4.40427764e+19   6.94075831e+20
   5.80913380e+20  -2.77741031e+20  -9.90347290e+19  -3.59407468e+20
  -5.16967650e+20  -2.01016214e+20  -5.08132561e+19   1.74694721e+19
  -3.34409528e+20   4.49700383e+20   2.07983571e+20  -6.91456607e+19
  -4.62795414e+20   2.15252829e+20  -1.02046806e+20  -6.57850232e+20
  -5.61733211e+20   7.19294622e+20  -4.79213663e+20  -1.82367178e+20
  -2.23358647e+20   4.27255756e+20   1.20961701e+21   1.37087523e+20
  -9.22024714e+20   9.24244562e+20   5.41474028e+20   2.41135922e+20
  -3.68961772e+20   1.68235892e+20  -1.01997223e+21  -9.94678208e+20
  -2.60078665e+20   1.58551906e+21  -5.59524768e+20  -6.56573559e+20
   4.15393178e+20   2.64551900e+20   9.20002949e+20   1.41646524e+21
   4.55782065e+20   1.51011034e+20  -3.64446419e+20  -5.82861686e+19
  -5.09962559e+19  -1.15527493e+21   6.21329880e+20   9.20407040e+20
   8.38200736e+20  -7.05475627e+20   3.63066452e+20   5.53241973e+20
  -7.19547509e+20  -8.54887750e+20  -1.26164213e+20   8.47480042e+20
  -1.66932167e+20   2.11742913e+20   4.71456179e+20  -1.58943155e+20
  -2.13264904e+20  -6.16500100e+19   7.45549862e+19   2.33195974e+20
  -3.13097210e+20  -8.74392938e+18   1.36415120e+21  -7.95119009e+20
  -1.47956323e+21   7.67000266e+19   4.22531086e+20   1.15555207e+20
   6.64928420e+18   7.70044390e+20  -3.03769312e+20   2.93446944e+20
  -1.26817385e+21   9.11850150e+20   4.23581192e+20  -3.51118593e+20
   1.50642089e+21   6.06096281e+20  -5.80575510e+20   1.28954805e+21
  -2.61637916e+20  -6.53347545e+20   7.29334502e+20  -1.87338987e+21
   4.05773155e+20  -7.40064443e+20   1.47698046e+21  -5.63870763e+20
  -5.80595708e+19   1.79369792e+18  -1.13814844e+21   2.96887042e+19
  -9.95112103e+19  -1.01684439e+21   2.07520778e+20  -6.91388430e+20
  -9.43849889e+18   1.09622894e+21   4.93150352e+20   1.15099718e+21
  -1.28409531e+20  -7.39625459e+19  -2.46860619e+19   1.87223452e+20
   3.65381328e+20  -8.51197198e+19   8.36082409e+20   5.81128557e+20
   2.69890237e+20   1.60707405e+20  -1.27874555e+21  -7.77355811e+20
   7.35475967e+19   5.80644211e+20   5.93526593e+20  -1.55786947e+19
  -5.17265125e+18   1.42537663e+20  -5.56384417e+19   1.10290973e+20
   3.42385147e+20  -4.75464054e+20   3.95970210e+20  -2.20971313e+20
   2.61449388e+20   1.07493919e+21  -7.46777824e+20  -1.25175267e+20
  -1.10666788e+21  -4.88237965e+20  -1.08453897e+21   8.52213331e+20
   8.80258198e+19  -9.10160703e+20  -4.85746535e+20  -2.57159413e+20
   5.50180602e+20   4.23597705e+20   2.08431770e+20   5.34304274e+20
   6.01000733e+20  -7.39988762e+20   4.01059418e+20   1.78215278e+20
   3.97492716e+20   1.44651691e+20   1.84886113e+20   2.91293483e+20
  -5.20612433e+20   4.19787747e+19  -8.26719915e+20   9.70873661e+20
   1.11921585e+20   3.25424260e+20   2.85533690e+20  -5.37453893e+20
  -3.41708585e+20   7.40400157e+20  -1.32544688e+20   4.73472699e+20
   2.97659644e+20   1.56140224e+20  -3.32818624e+20  -2.08834518e+18
  -5.81482690e+19   5.86254727e+20   1.58357498e+20   7.56166904e+20
   1.59037438e+21  -4.51497680e+20   4.35857171e+20  -3.80733714e+20
  -3.01513397e+20  -5.14714434e+20  -5.64904224e+20  -4.92278010e+20
   7.17310094e+20  -1.23049322e+20   9.52554740e+20   6.99207187e+20
   2.33663936e+20  -4.09016667e+20   5.42852101e+20   2.43812250e+19
  -2.23434191e+20   1.20388545e+20   2.14820608e+19  -4.63822834e+20
   1.49556574e+20   5.48133846e+20   5.43625554e+19  -6.87682196e+20
  -4.06785757e+20  -1.64819461e+18  -5.14856251e+20  -8.27046957e+19
  -2.77784833e+20   7.25076746e+20  -2.47403825e+20   1.10431631e+20
  -1.03754443e+21  -2.20453442e+20  -4.26665176e+20  -5.66008357e+20
   9.20463907e+20   1.49865608e+19   6.03121344e+19  -1.34724710e+20
  -4.89605768e+20  -7.06312794e+20   2.65562620e+20  -2.89728934e+20
   9.11091523e+20   1.04058727e+21  -1.56723457e+20   3.45796802e+20
   7.64810827e+20  -1.26491062e+19   2.12160843e+19  -2.09506128e+20
  -2.54769835e+20  -3.56240842e+20  -1.50800378e+20   9.22282704e+20
  -5.11899824e+20   2.98796320e+20   3.06114398e+20  -9.17303372e+20
  -6.29944344e+20   1.26108797e+20   7.35959606e+19   8.32803825e+20
  -1.08721170e+21  -6.08107476e+20   1.01572603e+21  -4.19947166e+20
  -1.11833202e+21   2.91262109e+20   6.75345853e+20  -1.84974153e+20
   9.64784739e+20  -2.71455650e+20   6.36615009e+20   6.20304236e+19
  -3.39961299e+20  -4.00680759e+20   6.46143227e+20   4.00580424e+18
   1.12575048e+21   3.81300562e+20   7.01727496e+20   5.87654036e+20
  -1.10118326e+21   5.89683068e+19   4.38931198e+20   9.25464087e+19
  -4.00877648e+20  -2.20489521e+20   9.35076480e+19  -7.53689728e+20
  -1.05288317e+21   6.49272781e+20  -3.06663556e+20  -6.79651545e+20
  -6.49689247e+18   2.62588316e+20  -1.06520251e+20   6.66404624e+20
  -7.45981856e+20   5.76598217e+19  -1.42483902e+20  -1.03083238e+21
  -2.09619946e+20  -3.68974817e+20  -7.58866992e+20   4.31347688e+20
  -5.02549465e+20  -4.10754306e+20   3.32082893e+20   8.42620111e+20
   3.00491360e+20  -2.42071051e+20  -4.94729561e+19  -1.00349885e+21
  -9.34175629e+20  -1.31992641e+20   3.68543065e+19   9.09651758e+20
   5.14901926e+20   5.61842861e+20   8.49525917e+20  -5.66880772e+20
  -1.77724198e+20   3.50424219e+20   2.39480678e+20  -1.79406677e+20
  -1.31312745e+21   2.10943092e+20  -1.14511429e+21   7.52374331e+20
  -5.91884288e+20  -1.09585352e+20   4.11778841e+20   1.11902946e+21
  -7.23124673e+20  -4.71193479e+20   8.49648813e+20  -2.86496499e+19
  -3.74217917e+19   1.04869589e+21  -1.78307797e+19   1.72428273e+20
   5.87827699e+20  -8.95460361e+20   7.37633064e+19   3.69331302e+20
  -1.61340686e+20  -5.13785037e+20   1.66918891e+20  -2.27038525e+20
   1.98861456e+20  -3.95607725e+20   7.84034139e+19   1.13009883e+21
  -3.63221350e+20  -5.63853042e+19  -7.93771167e+20   6.77718252e+20
   6.54462793e+17   1.51631170e+21  -1.03495501e+21  -8.76776315e+20
   3.45638042e+20  -1.57591753e+21   6.69887316e+20  -3.19555533e+20
   2.69247999e+20  -6.26344594e+20  -3.38129790e+20   3.48032878e+20
   9.21412029e+20   6.77050084e+20   7.59892582e+20   3.19928781e+20
   1.15196035e+21  -1.22279339e+21  -2.50567872e+17  -4.57760515e+20
   1.32372103e+21  -1.14533815e+21  -1.30930948e+20   6.88154891e+20
   2.60695341e+20  -4.16280404e+20   6.34272052e+20   5.51791782e+20
  -6.16087389e+20  -1.42372384e+20   4.81968931e+20   2.68170119e+20
  -2.36230194e+20  -2.92680635e+20  -1.96478803e+20  -3.52054522e+20
  -1.80043732e+20  -4.43549960e+20   5.63056225e+20   7.57120874e+19
   1.80091602e+21   6.34159699e+20   7.34227214e+20   2.45087498e+20
   1.25321236e+20   3.28441245e+20   3.09685421e+19   7.49745766e+20
   8.01706739e+20   1.20197227e+21   6.02073522e+20  -2.04272392e+20
   1.40282598e+21  -4.47244167e+20   1.14438569e+19  -6.52123705e+20
  -3.73217508e+20   5.57644437e+20  -5.08233828e+20  -6.25993089e+19
  -6.38151981e+20   1.00000131e+21   7.92775490e+20  -7.87124276e+20
  -3.93534375e+20   6.23434297e+20   3.33341313e+20   2.79427870e+20
   5.46321886e+20  -2.78653676e+20  -5.82421530e+20  -5.28600933e+20
   9.05020841e+20   6.27953808e+20   2.98434414e+20   3.57171415e+20
   4.63176086e+20   1.60544126e+20  -2.83638549e+20   1.23677561e+20
   9.72273179e+20   9.08488007e+19  -8.71728399e+19  -7.58486540e+19
  -1.12319110e+20  -5.13378322e+20  -6.00163497e+20  -1.35441830e+21
   7.18178418e+20  -7.72065612e+20  -3.08001316e+20  -1.55278532e+20
  -1.39478879e+21   3.31054671e+20   6.35150965e+20   7.35177913e+20
   2.11338652e+20  -1.21397291e+20   2.51972080e+20   4.16305544e+20
   1.29766797e+20   3.58449959e+20  -7.24123500e+20   6.86739627e+20
  -3.01761038e+20   4.40758817e+20  -4.48997397e+20  -3.46218989e+20
  -4.54271689e+20  -6.03215888e+20  -8.35218415e+20   1.31967562e+20
   1.14588040e+21  -2.18484155e+20   1.80649785e+20  -5.74603850e+20
   2.69934756e+20  -9.54239833e+20   4.47000632e+19  -2.66871442e+20
   3.23679355e+20  -7.45430362e+20   1.61993037e+20  -3.43885751e+18
   6.65160265e+20  -6.65421501e+20   2.20271737e+20   4.91343676e+20
   1.17373143e+20   3.27698611e+20  -3.83840923e+20   3.36434032e+20
   1.11977997e+21   2.74170886e+20  -7.77739188e+19   1.13906734e+20
  -4.17004483e+20   3.53678826e+20  -1.10900976e+21  -1.17480977e+21
  -1.82430084e+20  -7.45576476e+19  -1.41239282e+21  -5.21078666e+20
   4.47769716e+20   4.54009816e+20  -4.58040212e+20   2.01487293e+20
  -9.47276187e+19  -5.79266452e+20  -2.65984231e+19  -3.02362450e+20
  -2.90963673e+19  -1.26253308e+21   1.18499599e+21  -3.61182188e+20
  -5.21587457e+19   9.12385113e+20   1.20963903e+21   2.88250254e+20
  -4.14729000e+20  -5.16255611e+20  -6.86898033e+20  -9.12613473e+20
  -4.42210672e+20   3.81318025e+20   3.81641036e+20   1.26597293e+21
  -5.57931336e+20  -1.48071291e+21  -8.93320656e+19  -1.49985341e+20
   6.38262745e+20  -2.96157178e+20  -6.16641876e+20   8.13095392e+19
  -4.95699934e+20   3.45518224e+20   1.00815280e+21  -1.77751647e+20
   5.76058002e+20   1.30516780e+19  -4.34000916e+20  -3.29855885e+19
  -2.36976605e+20  -6.05551343e+20   4.73016602e+20  -3.74125112e+20
  -2.14937279e+20   1.33219440e+21  -2.26870964e+19   3.94303670e+20
  -2.79057335e+20   1.43661467e+20   8.71613605e+19   2.79818717e+20
  -3.31221182e+20  -4.65950012e+20   1.25865644e+20  -1.36389148e+21
   2.86080413e+20   6.15528651e+20  -4.72940025e+20   8.69471342e+20
  -7.14697481e+20   2.56835788e+20   4.85112389e+19  -3.98734620e+20
   6.93867559e+20   3.59084404e+20  -1.15544155e+21   2.01057688e+20
   8.09152583e+20  -4.81256003e+20  -1.03021396e+21  -1.67339540e+20
   1.40126547e+21   3.67963184e+20  -3.25928526e+20   8.34449631e+18
   1.57229190e+20  -9.90251682e+20  -7.96561141e+20   6.93971380e+20
  -3.03872511e+20  -5.22612406e+19   1.05895713e+20   1.43797029e+20
  -9.69479652e+20  -4.59120229e+20   2.56308551e+20  -9.54830927e+20
   7.93288192e+20  -8.64141306e+19   7.27667418e+20  -2.15444025e+20
  -1.40332818e+21  -5.36755258e+20   1.75998866e+20  -2.72223549e+20
   7.34572746e+20   4.03501977e+20   4.76460095e+20   9.16782669e+20
   7.67511018e+20   3.83149549e+20  -5.04516478e+20  -5.94433122e+20
   3.47864743e+20  -1.02121132e+21   9.68296221e+20  -7.55013817e+19
  -6.37256885e+20   4.82714265e+20  -3.25832629e+20  -6.14521933e+20
   7.78046703e+20  -5.49929809e+19  -2.56373016e+20   5.49958299e+20
  -2.87253813e+20   1.58878658e+20   1.05139654e+20  -6.08902238e+20
  -2.99145413e+20  -1.53296847e+20  -3.58228546e+20   9.09154265e+19
  -2.19364756e+20  -2.95773927e+20   5.77107728e+20  -6.38471231e+19
   5.73803629e+20   1.18022591e+21   8.78515822e+20   9.31655812e+20
   1.29022908e+20   1.60533052e+20   2.08111362e+20  -6.41400922e+20
  -5.84671974e+20   9.29696558e+20  -4.22954270e+20  -3.14653950e+19
   5.32923009e+19  -2.93858292e+20   1.01325851e+21   1.41799739e+20
  -1.23672015e+20  -4.81719608e+20   2.66558535e+20   1.21091814e+21
  -5.46408860e+20  -6.58516461e+20   1.08346288e+20  -3.57260021e+20
  -1.67703731e+20   3.47929709e+20   9.82596285e+20   3.21812777e+20
  -7.17901552e+20  -2.13648287e+20  -1.12713372e+21  -2.04105777e+20
  -3.74672058e+20  -7.16825353e+20  -1.67300663e+20   5.55353131e+20
  -3.01057017e+20  -6.44948860e+20  -5.39794698e+20   5.59082179e+19
   1.64804253e+20   6.66828032e+19  -2.02404223e+20   5.85310666e+20
  -1.29595427e+20  -8.79773419e+20  -8.69029307e+20   7.99906267e+20
  -1.30454214e+21  -1.03116051e+21  -6.38460319e+19   2.62173862e+19
   8.41814542e+20  -1.00374621e+20   3.16275563e+20  -7.24036077e+19
  -2.24566843e+20   2.02214412e+20   9.03116281e+20  -2.61872597e+20
   1.24273132e+20  -5.17405042e+19   2.37301809e+18   3.64064278e+20
  -8.97377258e+20  -3.17759477e+20  -5.92156251e+20   2.06099027e+19
   2.63533203e+20  -4.61041224e+20  -3.79672897e+20  -3.01902973e+20
  -5.10168470e+20   7.92708975e+20   9.18457551e+20   1.54191421e+20
   4.17790388e+20   1.19066984e+20   1.04358122e+19  -2.85411157e+20
  -1.11687703e+20   9.76103617e+20   1.19423363e+21  -4.12335355e+20
  -2.41224055e+19  -9.13239978e+20   1.00834620e+21   2.35257341e+20
  -1.05009439e+21   7.74384092e+20  -1.00730891e+21   1.27524400e+21
  -4.56805005e+20  -1.34539790e+21   4.69936115e+20  -2.79969110e+20
  -4.07678317e+20   4.49037712e+20   3.93974799e+20   1.34209869e+21
  -4.57986183e+20  -5.77843955e+20  -7.43947833e+20   8.81426968e+20
  -1.47201261e+21  -5.09682829e+20   3.16617086e+20   1.61833997e+21
  -4.23614632e+20   4.76592452e+20   3.26280821e+20   2.45482848e+20
   8.09034375e+20   3.12405572e+20   4.04128747e+20  -1.28517962e+21
   7.84655395e+20  -2.53771236e+20  -2.79669612e+20   7.26427383e+20
   5.86885201e+18  -1.58968627e+20   5.46684945e+20  -2.47576050e+19
   1.20984541e+21   4.77937207e+20   1.45055301e+20  -4.80777637e+20
   1.71439811e+20  -2.31136187e+20  -5.52659955e+19  -6.36246413e+20
  -2.10369210e+20  -8.96941940e+20  -3.60136819e+20  -6.20318136e+20
   2.55284461e+20  -1.05433664e+20   5.18173621e+20   3.12445746e+20
   3.39847824e+20  -5.44206222e+20  -4.75465254e+20   8.93448057e+20
  -5.36678814e+18   3.65051621e+20   4.23936453e+20  -1.30531877e+21
   2.82017642e+20  -4.43475979e+20  -3.09587728e+20   3.22199338e+20
  -3.00281955e+19   6.73718718e+19   7.71349856e+20  -4.19981120e+20
   2.16936598e+20   4.00398183e+20   1.08930395e+21  -5.86536833e+20
  -7.61262796e+19   7.96231353e+20   4.62473341e+20   3.91784053e+20
   5.37311075e+20   1.82431169e+20  -2.34393672e+20   5.75441672e+20
   1.87618045e+20  -8.61557673e+19  -3.32289047e+20  -6.32132658e+19
   6.32760687e+20  -1.10480653e+19  -4.32067680e+20   5.72628669e+20
  -2.32509689e+20   5.73289875e+20   2.39298379e+20   6.22288146e+19
  -4.15082241e+20  -1.32196544e+20   1.14968707e+21  -1.08900331e+21
  -8.92682709e+20   4.91278319e+20   6.31111633e+19  -1.29338615e+20
  -4.98743517e+19  -1.32399935e+21   9.86609143e+20  -5.38252308e+20
  -2.26055880e+20   2.27884507e+20  -1.36461922e+20   1.36636264e+21
   1.08279646e+20   2.71431475e+20   5.69360489e+19   8.72592235e+20
   6.35768480e+20   6.16510251e+20  -1.82865643e+20  -9.55863022e+20
   1.13094237e+18   3.73918514e+19  -4.70996594e+20  -2.45137154e+20
   3.72480747e+20   7.64923562e+19   9.46308013e+20  -1.21641613e+20
   8.40961148e+19   3.02756973e+20   5.62725768e+20  -1.74498539e+19
   6.70176696e+20  -4.47968517e+20   2.84215737e+20  -8.67549774e+20
  -1.04608502e+21   3.87080989e+20  -7.66884871e+18   1.37507590e+20
  -9.88061797e+20  -1.54346644e+20  -1.16435394e+21   1.42907096e+21
   3.66939876e+19   1.51477357e+20  -2.34839902e+20  -8.66844695e+17
  -8.32877236e+20   2.44040193e+20  -3.54508942e+20  -4.94520263e+20
   4.03148231e+20   5.42220940e+20  -5.89162190e+20  -8.39103825e+20
   6.78469948e+20   4.84405946e+20   4.15423513e+19   1.00521153e+21
   4.34666846e+20   4.57926985e+19   1.16745139e+21  -4.81617952e+20
  -3.33221780e+20   2.58933286e+20   6.61062479e+20  -2.94664190e+19
   3.88029006e+20   6.16552858e+20  -3.68456740e+20  -2.56545718e+20
  -3.83238383e+20  -4.20407055e+20  -1.51530415e+21  -1.53526281e+20
   4.34392414e+20  -1.29319050e+21   1.98026775e+20  -2.07107359e+20
  -7.21828137e+20   1.24572124e+21  -2.54800262e+20   4.83103710e+17
  -3.17435011e+20   1.14594092e+21   3.02533254e+20  -2.01803648e+20
   4.41674779e+20  -8.15522077e+20   9.74101780e+19  -7.91628236e+20
   5.29195990e+19   6.42862059e+20   1.03669490e+20  -6.99580981e+20
   5.94259577e+20   1.65178591e+21   2.32998352e+20   5.56950802e+20
   3.57951042e+20  -8.33807601e+20  -3.46835817e+19  -1.04625759e+20
  -4.37261651e+20  -2.62058972e+20   8.70871143e+20   5.65196012e+20
  -3.76456523e+20   4.55977520e+20  -8.65789540e+20   1.68680762e+20
   1.44989234e+20  -2.07650356e+20   3.23860901e+20  -6.78246682e+20
   4.53091301e+20   6.93651092e+20   1.59773861e+20   1.98758944e+20
   2.86696758e+20  -1.98462867e+20  -1.38337027e+21   5.29192328e+20
  -7.70899443e+18  -3.53939471e+20  -6.41500849e+20   7.23564675e+19
   8.78198823e+20  -2.92240739e+20  -4.46441331e+20   5.01642698e+20
  -1.60390684e+21   1.05563341e+21   3.74858201e+20   9.10042403e+19
  -3.47432120e+20   1.01325817e+21  -2.96747312e+20   3.59050422e+20
  -7.44642849e+20   5.79504831e+20   5.82050465e+20  -1.82730107e+20
   1.33046764e+21  -1.00450175e+20   4.84914878e+20   1.19570630e+21
   2.92122566e+20   5.71149947e+20  -7.57747596e+20   6.83536160e+20
   1.76326791e+20   7.41272756e+20  -8.03224633e+20   1.14671770e+21
  -3.25523677e+20   5.95463689e+20  -1.16219141e+21  -3.66749864e+20
   4.34794496e+20  -4.94633484e+20  -9.25183650e+20   6.65485741e+20
  -1.13869033e+20   8.16226517e+20  -5.79870546e+20  -8.37951924e+20
  -6.26847903e+20   1.76900291e+20  -9.03046105e+19  -9.46443954e+20
  -3.22243574e+20   8.71936121e+20   1.06644136e+20   9.12997323e+20
   8.55137473e+20  -3.51364185e+20   3.57308124e+20   3.50752774e+20
  -7.74789230e+20   1.04321049e+20   1.51439735e+20   3.28617859e+20
  -5.81593247e+20   5.25989512e+20   6.36796649e+20  -3.33548210e+18
  -3.76067416e+20  -8.70353960e+19  -6.10222630e+20  -8.13209002e+20
  -3.32421718e+20   1.22559032e+21   3.12196205e+20   7.10095376e+20
   2.97997223e+20  -6.00661847e+20  -1.15542312e+21  -3.94186733e+20
   3.54377314e+19   6.05755545e+20   6.74616575e+20   6.62884488e+20
  -7.60868753e+20   9.32313610e+20  -3.38375071e+20  -1.31688410e+21
   4.98453282e+20  -6.00735546e+20   3.45869529e+20   6.86439986e+20
  -1.68919482e+20   1.84655197e+20  -6.82511217e+19   1.00794206e+21
  -7.51956398e+20  -4.05620405e+20  -1.99384798e+20   8.99084045e+20
   8.13299005e+20   1.63602489e+21   1.17722658e+20   1.17261697e+21
  -1.11631018e+21  -1.08988127e+21   4.83725224e+20  -1.19573408e+20
   5.81287971e+20  -1.48742868e+20   4.76212735e+20  -4.03214240e+20
   7.10007659e+20  -9.08352402e+20   1.03836385e+21  -2.95077612e+20
  -1.30727604e+20  -3.97273482e+20  -4.52528143e+20   1.06862300e+21
  -1.53325762e+21   1.26398465e+20  -2.34335949e+20  -4.77887938e+20
   2.08948786e+20   3.70664664e+20  -3.91489301e+20   9.89206439e+19
  -8.37698857e+20   2.76588735e+20   5.59107601e+19   3.83354161e+19
  -4.79745834e+20  -2.68498251e+20   7.28648613e+20   4.59650405e+20
  -5.43944458e+20  -1.46611918e+21   6.32856543e+20   1.05244364e+21
  -6.74164723e+20   4.47225498e+20  -2.39049304e+20   6.39232975e+20
   6.85408666e+20   1.33547977e+21   5.88505088e+20  -2.31081665e+20
   1.23668805e+21  -7.01358183e+20   3.59556440e+20  -3.02559257e+20
  -1.00085229e+20   2.94957548e+20  -2.24865759e+20  -2.56572397e+20
   6.37097782e+20   3.09317750e+20   7.16995311e+19   1.68676710e+20
  -5.73522040e+19  -7.19607637e+19   2.81247657e+20  -5.53562136e+20
  -2.70700401e+20  -6.10025971e+20   3.00838908e+20  -5.62250268e+20
  -6.55677560e+20   6.72074539e+20  -1.98632917e+20   1.04074627e+21
   5.40660262e+20   8.92293784e+19  -9.19609473e+20  -3.56496073e+20
   6.09793854e+18   4.55259479e+18   4.80790748e+20  -2.50046036e+20
  -8.58426347e+20   9.94977180e+20  -1.71644248e+21   4.59473408e+20
  -3.48402276e+20  -9.88274595e+19   1.03814351e+21  -5.77660475e+20
  -5.55863798e+20   3.52719565e+20  -3.69697343e+20  -3.72254428e+20
  -5.28741237e+20   1.25797658e+20   2.16600195e+20   4.40521454e+20
  -6.42899412e+20   1.96766272e+20  -1.38693959e+20  -2.91489006e+20
   6.83389080e+19  -1.02942229e+20  -3.34699786e+20   1.19962317e+21
  -2.62927755e+20  -9.71259603e+19   1.08807759e+21   3.92008846e+20
  -1.24131932e+21  -1.19709580e+20  -8.11817074e+20  -5.71569092e+20
  -2.10377028e+20   5.01347753e+20   7.71679892e+20   4.05352183e+20
   6.25935937e+20  -4.13981598e+20   4.22489579e+20   9.50200420e+20
   8.25084078e+19  -4.44892169e+20   9.82639698e+19   7.60002845e+20
   2.61077004e+20  -5.36858559e+20   4.11865105e+20  -7.81298296e+18
  -1.46339090e+20   7.67720352e+20  -8.63761388e+20   5.05837141e+20
   1.92014687e+20   5.37125857e+20   1.44045422e+21  -2.40951894e+20
  -4.37279646e+19   5.55383002e+19  -2.99802958e+20   1.90435085e+20
   8.22747802e+20   6.98560924e+20  -6.83806233e+20  -5.53223820e+20
   1.26242456e+21  -4.80504025e+20   4.40995494e+20   5.52163506e+20
   2.97681331e+20   3.74833735e+20   6.14369977e+18  -2.09107793e+20
  -6.82464478e+20  -3.34269259e+20  -3.15547347e+20   5.84072307e+20
   4.17752915e+20  -9.33577479e+20   1.25096291e+21  -2.40559417e+20
   1.44080745e+20   1.60833209e+20   2.32058766e+19  -3.09505077e+19
   2.02234489e+20  -1.72712992e+20  -8.56447755e+20  -2.88357411e+20
  -4.64034962e+20   1.04409614e+20  -2.13713461e+20   1.00347205e+19
  -4.88553228e+20  -5.57149027e+20   4.23704611e+19   1.58374647e+20
   3.89032187e+20  -3.94962180e+20   5.22408604e+20  -4.99034495e+20
   1.98544799e+20   5.62271782e+20  -7.40163452e+20  -6.94722243e+20
   3.05713151e+20  -5.22709622e+20  -3.62983184e+20  -2.63987706e+20
   8.86809497e+19  -7.36655418e+20   3.99016089e+20   1.89574554e+20
   1.11446794e+19  -8.71864322e+20  -3.49376375e+20   8.72861582e+20
  -1.03216450e+20   4.23327390e+20  -1.86589070e+20   5.60136325e+20
  -1.22240916e+20  -4.12810135e+20  -1.71793392e+20  -7.13415133e+18
  -2.82773782e+20   5.53404680e+20  -1.88045243e+20  -4.22582737e+20
   3.22658902e+20   8.74933219e+20  -1.00331152e+21   6.81009328e+20
  -5.78420982e+20  -7.05182242e+19   1.07612215e+21  -2.91532403e+20
   6.01604160e+20  -6.02892442e+20   8.10625804e+19   1.15734093e+21
  -7.39537653e+20  -1.77707783e+20   3.30595067e+20   8.57365532e+19
   3.66308260e+20   1.23117211e+20  -6.58494508e+20   2.90626756e+19
   5.34222713e+20   5.03701732e+20   4.24176179e+20   2.00404926e+19
  -3.71499833e+20   7.00855434e+20   4.05775897e+20  -1.89546796e+20
  -4.69727635e+20  -1.47184258e+19   8.14553741e+19   1.09146361e+21
  -4.85317792e+20  -7.93434634e+20   6.43846666e+20  -6.09709098e+20
   7.74695127e+19  -3.26567899e+20   2.07391507e+20  -5.11530810e+20
  -8.75253118e+20   4.12540823e+20  -5.08110021e+20  -6.63839800e+20
   6.39611198e+20   4.96870842e+19  -8.91789407e+20   3.24221028e+20
  -1.59120721e+20  -4.18481643e+20   7.75886788e+19   8.55477725e+20
  -1.35571151e+21   1.31265021e+21  -7.25777218e+20   2.16746713e+20
  -1.11231714e+21  -6.05243204e+20   4.21780057e+20  -6.75315369e+20
  -2.75204873e+20  -3.07844767e+20  -1.31554657e+20  -2.76061936e+19
   4.00596271e+20  -4.75544073e+20  -5.89279235e+19  -1.29680385e+19
  -2.58956699e+20   2.23562401e+20   2.24346047e+20   4.73114986e+20
  -3.57887069e+19  -8.30338321e+19  -3.10787283e+20  -4.18535863e+20
   2.92726178e+20  -3.28514918e+19   1.26791679e+19   1.70108549e+19
   5.64908413e+20   4.22398430e+20   1.66746843e+20   1.88683851e+20
   8.03278730e+20  -8.33793799e+20   5.02494347e+20   5.95874855e+20
  -2.99908754e+20   4.89386274e+20  -2.97496915e+20  -8.89472670e+20
  -6.01563909e+20   4.24583572e+20   2.19048828e+20  -2.09804215e+19
  -7.14475757e+18  -3.73377674e+17  -1.38988363e+19  -2.55954648e+20
   4.39675323e+20  -8.48424827e+19   2.63765016e+20   1.06292770e+21
  -9.08202450e+20   2.14270472e+20  -7.57643555e+20   1.59736989e+21
  -5.92524838e+20   8.22244752e+19  -2.53723338e+20  -3.54591151e+20
  -4.56221151e+20   1.89382948e+20  -9.29136226e+20   2.79584192e+20
   1.80037179e+19  -3.44430727e+20   4.91928832e+20   3.39785665e+20
  -4.88763214e+20   1.16447101e+21  -4.94684930e+18  -3.04745009e+20
   3.62377688e+20   1.15460551e+21  -8.03378614e+20  -4.47777509e+20
   8.59508877e+20  -4.58344726e+20   1.58819386e+20  -1.21909848e+20
   5.92953037e+20  -8.90386103e+19  -4.01036799e+19   2.99404426e+20
  -4.73963266e+20  -7.10382729e+20  -8.16890418e+20   4.01871030e+20
   6.19723150e+20  -2.21845819e+19   3.35044186e+19  -4.21784656e+20
   9.39657393e+20  -2.31366385e+20  -3.56067330e+20   1.77578249e+20
  -1.77452128e+20   5.26399840e+20   2.92840816e+20   5.04614485e+20
  -2.65952058e+20  -5.97113409e+20   1.69391716e+20  -1.62075690e+21
  -6.52374052e+20  -8.07492255e+19   4.46225199e+20   1.09782949e+21
   3.00266234e+20   2.50718683e+20  -4.73889501e+19  -4.15417544e+20
  -1.57414671e+20   6.56745245e+20   6.69571138e+20  -9.82402414e+20
  -8.02371505e+19  -4.17321872e+19  -7.59669275e+20   9.62783944e+20
  -1.27382403e+20  -9.25589224e+20   6.06222955e+20  -8.03022560e+19
  -5.18301559e+20   9.97844312e+20   3.39594815e+20  -1.94476317e+19
   5.21146681e+20   4.50622762e+20   2.27206555e+20   4.00136490e+20
   4.73906134e+18   1.08851613e+21  -8.87454257e+20   2.80728261e+20
   7.51083298e+20   5.30583707e+20  -1.05651943e+21   1.96294127e+20
   1.23016154e+19   2.90298030e+20   2.39937669e+19   5.27173554e+20
   8.93493830e+20   9.61801164e+20   7.01157778e+19  -1.75792552e+20
  -1.99078523e+20   1.13948124e+21   1.03698548e+21   4.46628409e+20
  -6.04548988e+20   7.64523113e+20  -3.88265593e+20  -1.60192297e+20
   4.69956329e+20  -3.31574658e+20  -1.14895246e+20  -9.98466476e+20
  -6.59872352e+20   1.00372757e+21  -1.39318197e+21   5.96625929e+20
  -1.08492564e+21   8.64472720e+20   1.61770068e+20  -1.18068528e+21
  -9.78601172e+20   7.15749557e+20   7.03024276e+20   8.64180924e+20
  -1.26095686e+18   4.15240730e+20  -9.18115066e+20  -1.81624851e+20
  -1.19519866e+21  -1.44948509e+20   6.67555332e+20  -8.84896760e+20
  -7.07088759e+20  -1.64459238e+21   5.45746364e+20   5.33147987e+20
  -5.82383139e+20   1.60292761e+21  -6.54674514e+20  -9.62121023e+20
   1.20656167e+21   7.56462516e+20   3.33466721e+20  -9.98357778e+20
   1.40442098e+21  -3.81197459e+20  -4.20214247e+19  -1.49157071e+20
  -1.54569073e+20  -1.19571379e+20   1.11806065e+20  -4.62024667e+19
   4.40176145e+20  -1.10731848e+21   1.02997602e+21   2.11770370e+19
   7.89840584e+20   8.83011844e+19   6.06568395e+20  -5.86186318e+20
  -3.15261402e+20  -2.65541930e+20  -1.23536139e+21   1.18125999e+21
  -7.29682581e+20  -3.75121414e+20   3.90006221e+20   1.79877902e+20
   1.29132771e+21   9.54609960e+19   2.88847765e+20  -4.68172884e+20
  -1.55272997e+20   2.17631541e+20  -2.67099859e+20  -9.41166866e+20
   6.60876704e+19  -4.99416085e+19  -9.13028591e+20  -4.87594315e+20
   1.08820723e+20   2.41314003e+20  -2.47010864e+18   2.66847451e+20
   1.12330665e+20   2.28074033e+20  -3.84479769e+20  -3.60031088e+20
   1.97225951e+20  -3.29509567e+20   2.20550962e+20   9.17257695e+20
   1.85452411e+21   7.47587872e+20  -3.44734867e+20  -2.02479073e+20
   8.95560529e+20   3.11691938e+20  -1.14532798e+20   1.19844569e+21
  -7.99252489e+20  -4.61436802e+20  -3.89753609e+20  -1.49001966e+21
  -1.30612167e+20   7.42508651e+20   2.87628065e+20   6.48916006e+19
  -8.37082552e+20  -1.20715681e+21  -5.96620517e+20  -4.91077608e+20
   6.89405141e+20  -1.05830250e+20   3.91748265e+20   1.78547830e+20
  -1.08655482e+21  -1.08363610e+21  -4.31748379e+20   9.73603152e+20
  -2.28894386e+20  -8.30839311e+20  -2.49332045e+20   1.90732139e+20
   7.29289215e+20  -7.28473625e+20  -4.74238182e+19   5.13682978e+19
  -3.13018381e+18  -4.39170807e+19  -9.66928070e+19  -1.49181737e+21
   4.13274566e+20  -3.88207047e+20  -4.01724442e+20  -1.57326469e+20
  -4.39533257e+20  -4.28620912e+20   7.15175284e+20   5.33428501e+19
  -9.73317438e+20   6.56749853e+20  -2.93051078e+20  -5.51476511e+20
   8.38016883e+20   7.90888959e+19  -3.20378665e+20  -5.55890184e+20
   8.16562283e+20  -6.30540609e+20  -5.15805751e+20  -4.11723563e+20
   5.98431142e+20   4.82013343e+20  -6.38697598e+20   5.63712737e+20
  -5.87225392e+20  -2.35468321e+20   5.48740309e+20   7.29157578e+20
  -6.83433573e+19  -4.86478611e+20  -4.02501318e+20  -1.12579563e+21
  -1.00270909e+21  -1.50990768e+21   8.61256462e+20   5.67128132e+20
  -6.05162991e+20   7.62230050e+20   7.14257225e+20   5.49193423e+19
   2.63750128e+20  -1.22552116e+21  -1.12682498e+21   6.21518506e+20
  -4.29127519e+20   5.36400692e+20  -2.26035041e+20  -1.27739318e+21
   3.14790354e+20  -9.05779481e+19   3.68139142e+20   5.22820837e+20
   2.04923342e+20  -8.46517041e+20   3.48820364e+20  -1.29699865e+21
   8.12339499e+19   9.42168798e+20  -9.92165330e+18  -6.64337576e+19
   1.72210244e+20   1.03650126e+21  -1.91089323e+20  -3.25672470e+20
   1.84283674e+20  -6.50234940e+20  -4.48752649e+20  -7.53712640e+20
  -7.58916003e+20  -2.53054727e+20   5.04112647e+20   1.48903518e+21
  -9.53509012e+20   1.93721799e+20  -6.31910905e+20   2.01561153e+20
   3.92706986e+20   6.11750684e+20  -9.12207281e+20   2.29949233e+20
   3.67760165e+20   9.37010074e+19   2.84530132e+20  -4.33400748e+20
  -2.78034229e+20  -8.53789251e+20  -6.26257395e+20   1.01720756e+21
  -7.15040640e+20   5.57701121e+20   4.04889813e+20  -2.38240924e+20
   2.14413654e+20   6.81134693e+20  -4.27942013e+20   2.01691043e+20
   7.53430596e+20   9.36437245e+19   7.96148026e+19  -8.86971554e+20
   8.58416591e+19  -8.38392911e+20   3.88310639e+20  -8.41179600e+20
   4.30227155e+20   2.97072700e+19   7.30382337e+20   7.48535708e+20
   1.02884478e+21  -6.51775753e+20  -1.27657312e+21  -8.81029765e+20
  -9.10809528e+20  -2.63414057e+20   5.45251956e+20   1.16802595e+20
   8.52054660e+20  -2.27199699e+20   6.61290543e+20  -1.22000402e+20
  -9.02736640e+20  -8.87167284e+20  -4.64700574e+20   1.17352417e+21
   4.53703642e+19   3.54606512e+20  -2.85450592e+20   1.33243222e+20
  -3.67093599e+20  -1.46731383e+20   5.82050431e+20  -7.65056690e+20
   8.47024051e+20  -1.71505408e+20  -3.92085343e+20   3.03211779e+20
  -4.21313086e+20   5.83150810e+20  -2.18089221e+20   8.18502919e+20
   9.75851887e+19  -4.95792014e+19   1.20672751e+21  -2.13826298e+20
  -3.50608008e+20   8.94047711e+19   8.75494782e+20  -9.10348676e+20
   1.92386622e+20   2.34865670e+20   2.78484553e+20  -5.67290797e+19
   4.91427299e+20  -6.67563985e+19   2.96988735e+20  -1.21994847e+21
  -4.06089378e+20  -5.42652912e+20   1.16516610e+21   2.64256040e+20
  -5.70501795e+20  -5.41287920e+20   5.55509641e+20  -4.80078734e+20
  -3.63780588e+20   3.31751377e+20   5.83218484e+20   4.56984642e+20
  -3.48654692e+20  -5.33219192e+20   8.80538174e+19  -4.32070048e+20
   8.85107681e+20  -2.16678877e+20  -7.03849411e+19   2.46977522e+20
   7.29234611e+20  -3.18029889e+20  -9.52328086e+20   5.51561297e+20
  -7.32374642e+19  -2.09080426e+20   7.27323258e+20  -7.25249297e+19
   3.57631859e+20   1.25583527e+20   2.49847770e+20   4.28333571e+20
  -3.89771426e+20   1.64563672e+20  -1.56226292e+21   1.84295798e+21
  -1.35531370e+20  -6.80502186e+20   1.05592220e+20   4.30014247e+19
   5.93985637e+20  -6.01822861e+19  -4.06869663e+19  -8.54823661e+20
   1.43098533e+20  -8.17383189e+20  -2.81396779e+19  -9.31082694e+19
   4.18693624e+20   3.51435101e+20  -7.39551099e+20  -5.43131555e+20
  -3.96369083e+20  -3.61032882e+20  -4.41253527e+20  -1.49110361e+20
   4.99305494e+20  -9.67199196e+20   4.32899222e+20  -2.05744936e+21
   1.14199840e+21  -7.48746128e+20  -4.51594527e+20   7.62062477e+20
  -1.04524547e+21   1.48620156e+20  -1.03425643e+21   5.89498730e+20
   5.11057112e+19   2.65549186e+20  -3.67987431e+20  -5.48268159e+20
   1.00726657e+21  -3.61723763e+20  -1.02512406e+21   6.22826137e+18
  -2.37844736e+20  -4.97038551e+20   2.49447733e+20   1.57177922e+20
  -7.35400697e+20   5.49216773e+20   2.31284323e+20  -1.79715630e+20
   5.59294984e+20   1.27003967e+21   2.88250015e+20   6.34411275e+20
   3.16920762e+20   5.45266143e+20   5.83210066e+19  -2.37849741e+20
   3.12963447e+20   1.33183594e+20   8.96725720e+20   4.84664683e+20
   1.58154430e+20  -1.32559308e+20  -3.43179932e+20   1.61072842e+20
   5.35183272e+20  -3.27087655e+20   4.93705665e+20  -5.59221937e+20
  -9.26792984e+19  -8.74436082e+19   4.74143411e+20  -6.41665297e+20
  -4.76504547e+19   3.73909977e+20   5.18917213e+19   7.76723949e+19
  -7.34602030e+20   1.02566377e+20   1.73833309e+20  -8.35155123e+19
  -5.30674541e+20  -1.62092168e+20   6.23020480e+20  -3.75192883e+20
   8.39305563e+20  -1.33853848e+21   3.64336225e+20   1.68466516e+20
  -4.49014209e+19   4.62655676e+20   6.67692005e+20   6.08320902e+20
   2.35106182e+20   7.77538537e+20   4.82014440e+20  -1.12649149e+20
  -4.36885730e+20   3.11511048e+20   2.93270800e+20   1.11466558e+20
   4.35465954e+20  -2.83508671e+20   1.00430648e+20  -8.10018838e+19
  -4.79375930e+20  -2.61245757e+20  -6.44942468e+20  -6.00083503e+20
   1.18914942e+21  -1.88385147e+20   7.11855508e+20  -4.83369427e+20
  -1.10662968e+21  -4.60362694e+20   5.60174452e+19   4.15494304e+20
   1.16246172e+20  -2.77076635e+20   4.20458382e+20   3.17545570e+20
   7.85172561e+20   5.93755092e+20   4.35573223e+20  -9.34467707e+20
  -2.31413331e+20   1.17621332e+21   3.92431651e+20  -1.62668844e+20
  -3.87007744e+20   2.16017317e+20  -6.85859573e+20   1.01443532e+21
  -1.32279164e+20   6.40449766e+20  -1.58259124e+20  -1.01010646e+19
   9.09126976e+20  -1.71725967e+20   1.89147415e+20  -6.87842189e+20
   6.41405081e+19   2.05346615e+21   7.21240426e+20  -1.39025388e+20
  -8.45328924e+20  -2.68002871e+19   2.54947754e+20  -8.08457416e+20
  -8.90969473e+20   5.64690917e+18   1.10770266e+21  -1.09330146e+21
   1.72739712e+20   1.50141864e+21  -2.45584266e+20   6.40478841e+20
   8.06824070e+20   1.51308505e+21   3.28144339e+20  -1.38017524e+21
  -4.50596168e+20   9.31890942e+18  -1.35297370e+21   1.93820702e+20
   7.63885403e+20  -9.37114026e+20  -9.16023017e+18   6.77872065e+20
   1.09878218e+20  -2.25452341e+20   1.24632831e+21  -7.18030760e+20
   4.22872127e+20   1.00050438e+20   3.12369196e+20   7.98862931e+19
  -5.51229582e+19   2.30920696e+19  -3.09777883e+20   3.64713910e+20
   7.94500226e+19  -5.98389510e+20  -3.23677747e+20   5.07692006e+20
   1.72440583e+19   1.61756238e+20   7.78567559e+19  -3.63437594e+20
   3.33451276e+20   2.58046834e+20  -4.75595523e+20   9.05280007e+20
   6.91318469e+20   5.91456249e+20  -6.59935153e+20  -1.51590684e+21
   6.32553482e+20   3.77943176e+20  -1.56790937e+21   4.52168186e+20
  -5.18253427e+20   5.65263145e+20   2.16722731e+19   1.88058388e+20
  -3.31071008e+20   2.83860461e+20   7.48788189e+20  -1.20815107e+20
  -3.21746098e+20   5.11282680e+19  -6.93437519e+20   7.73032692e+18
  -6.80662259e+20   8.52494248e+20  -6.80254117e+20  -6.45549664e+20
  -5.30581213e+20  -1.53034313e+20  -1.01346378e+20   8.98744941e+20
   3.86887946e+20  -7.25064117e+20   3.09528486e+20  -7.17566122e+20
  -7.17621308e+19   9.68059217e+20   3.64466476e+20  -4.28819201e+20
   2.66427462e+20   4.56912620e+20  -2.27141683e+20   6.60211790e+20
   1.55074970e+20  -4.91302079e+18   2.94349020e+20   1.25426848e+21
   1.28787789e+20  -7.08502699e+20  -1.20865637e+20  -9.39840103e+20
  -4.05545576e+20   8.25182290e+19   3.35492426e+20  -1.58096243e+20
  -2.67501116e+20   1.13932700e+20  -2.46211618e+20   4.52488153e+20
   1.40594270e+21  -1.63951133e+20   2.60783885e+20  -2.19291945e+20
  -1.39383169e+20  -6.65620488e+20   2.54905058e+20  -1.04805787e+20
   3.63561785e+20  -4.77422376e+19  -2.89087174e+20  -1.17656483e+20
   6.88332222e+19  -6.39977747e+20   8.70194338e+20   1.70710414e+21
  -1.17055960e+21   3.27650933e+20   3.85628182e+20   1.53456159e+20
  -2.88545535e+20   2.47604074e+20  -8.27616029e+20  -9.66335829e+20
   5.82987862e+20   9.42029827e+19  -1.00833006e+20   1.28029211e+21
  -6.19848078e+20   6.94110589e+20   4.66682410e+20  -8.26719653e+20
  -5.46301029e+20  -5.22027721e+19  -2.64649536e+20  -4.55392962e+20
   6.42312282e+20   5.76356802e+20   7.28027481e+20  -3.37792508e+20
  -3.44818274e+20   4.25953392e+20  -6.09487369e+20  -7.72210127e+20
  -8.21852991e+20  -2.29806951e+20  -1.46101771e+20  -2.99943364e+18
   1.05228774e+21   6.11884984e+20   6.48171368e+20   1.99598093e+20
  -6.46134589e+20  -2.37148868e+19   6.54038269e+20  -5.09430494e+20
  -4.03246997e+20  -6.05390922e+20  -6.97043701e+20   1.31141316e+19
  -5.19174167e+20   1.87307241e+21  -1.77353967e+20  -3.19816896e+20
   5.22707715e+20   1.20935251e+19  -1.48432160e+20   6.07484446e+19
  -1.47492200e+20  -8.30369065e+20  -9.75297170e+18   4.91260545e+20
   9.05469906e+20   9.64089568e+19  -1.86648911e+20  -4.52977215e+20
  -3.45334942e+20   1.10894463e+20   4.43056120e+20   3.38078199e+20
  -1.23240597e+20   9.80101184e+19   1.09947701e+21  -3.83942733e+20
  -7.95458959e+20  -3.39323825e+20   1.88496175e+20  -7.57646836e+20
  -2.98858109e+20   4.76815671e+20   3.23479450e+20  -4.55521363e+20
   2.78770553e+20  -6.51659794e+19  -2.57220775e+20   6.00477394e+20
  -1.52150316e+20  -6.36109228e+20  -4.56380527e+19  -4.58729967e+20
  -8.36186814e+20   3.44882287e+20  -6.31824835e+19   4.23535251e+19
   1.20464664e+21  -8.35065450e+20   9.01857773e+20  -1.32454592e+20
  -1.13988449e+20  -2.06398675e+20  -1.68240750e+20  -2.63872025e+20
  -1.28548504e+20   4.83107127e+19  -7.65804242e+20   5.58780139e+20
  -1.45443295e+21  -4.22374443e+20   3.46501582e+20   5.08855077e+20
   9.31636282e+20   6.41864030e+20  -3.45673446e+20   1.80901122e+20
  -8.20793091e+19  -1.23611653e+21  -2.33434959e+20  -8.52321716e+20
  -9.15065257e+19  -1.81344001e+20   3.97558002e+20   5.84256125e+20
  -8.68692145e+20  -7.16951215e+20   6.09945747e+20  -7.89628892e+20
  -2.37543897e+20   4.16318843e+19   2.13593160e+20  -5.97613015e+19
  -1.27023357e+19   5.46976658e+20  -1.81068755e+20  -1.00127015e+20
   7.79476352e+20   3.59738894e+20   4.32182065e+20  -6.37841572e+19
   3.02436861e+20   8.11819791e+19   1.04754458e+21   7.62606109e+19
   1.51720842e+20   7.77795099e+20   7.40788153e+20   1.31686443e+21
   1.12682183e+19   7.89448909e+20  -2.45821742e+20  -8.21386135e+20
   3.93080750e+20   3.49286428e+19  -1.87650031e+20   4.48797509e+20
   8.80471322e+20   6.64684752e+20  -5.77489222e+20   6.78627429e+20
   1.78131704e+20   8.28979827e+20  -3.33625224e+20   3.62799504e+20
  -1.69591246e+20  -2.85364274e+20  -6.95233158e+20  -6.55236045e+18
   7.98359394e+20   4.14248995e+20  -8.70967536e+20   1.32796256e+20
  -4.14915301e+19  -5.75649630e+19  -9.14717192e+19  -3.94472443e+20
   6.54728217e+20   4.23244675e+20  -1.75714163e+20   3.68833143e+20
  -5.17037155e+20  -1.54701732e+20  -2.12395558e+19  -7.14816517e+20
   7.23278325e+19  -5.17892709e+20  -3.22226609e+20   4.03845336e+20
   1.96699082e+20   7.34091599e+18   2.26324041e+20  -4.92021545e+20
  -2.99805377e+20   5.02959918e+19   6.31034836e+20   1.53282688e+20
  -2.49422225e+20   4.83442720e+20  -7.30957937e+19  -4.04911996e+20
   6.15259451e+20  -1.71737133e+20   4.72632697e+20  -3.80588044e+20
   1.31851992e+20  -1.01604807e+21   3.18105362e+20  -1.78447507e+20
  -8.16793194e+20  -1.39539100e+20  -1.18329652e+20   1.44529470e+20
   5.73071517e+20  -5.31746869e+20  -5.49728932e+20   1.17459109e+21
  -9.34024121e+20   4.59917256e+20   2.52506422e+20   3.95982976e+20
  -1.99841792e+20   1.76380931e+20  -2.79377613e+20   6.19635898e+20
  -1.15616957e+21   7.55512025e+20   4.17568353e+20   1.88794077e+20
  -2.76010542e+19  -5.97751949e+20  -5.94440290e+20   2.57366359e+20
   1.29801881e+21   2.23807738e+20   2.29133625e+20  -7.53609795e+20
   2.11217277e+20  -1.01509630e+21  -3.70622277e+20  -1.00351970e+21
  -1.31838824e+21   8.61158841e+20  -7.95061668e+20   9.26162193e+20
   9.03271246e+19   1.77348883e+20   5.99148758e+20  -1.67195081e+20
  -9.56637768e+20  -4.79473327e+20  -1.99870130e+20   7.17724963e+19
  -5.53257792e+20   1.87723171e+20  -1.50087496e+21  -9.18171876e+20
   1.03941581e+20   1.09790982e+21   1.07934866e+21  -1.82781088e+20
  -4.07391061e+20  -3.33651312e+20   5.03159152e+20   1.65692029e+20
   1.00958497e+20  -3.99730663e+20   7.05415784e+20   6.91600670e+20
   2.90481199e+20  -9.12579508e+19  -2.67048933e+19  -3.32436485e+20
  -3.92974725e+18  -1.02026969e+21  -2.01872252e+19  -1.51279306e+20
  -5.84360366e+19  -6.18850285e+20   5.43942020e+20  -2.30573921e+20
   9.09922390e+20  -1.01754506e+21  -1.24378285e+20  -3.25717729e+19
   2.41606140e+20   1.65150753e+21  -8.03280510e+19  -1.24518839e+21
   1.28241015e+20   8.37082427e+20  -3.98786428e+20   5.61196816e+19
   7.34285534e+20   2.09947380e+20   7.96365814e+20   8.90790079e+19
   1.04978835e+21  -5.03048878e+20   4.78214924e+20   1.82931925e+20
   6.03310814e+20  -7.68873019e+20   1.23391789e+20  -9.51661508e+20
  -1.01347732e+21  -4.92566812e+20  -4.75283762e+20  -2.47842974e+20
   4.85881533e+20  -5.98039546e+20  -8.27456046e+20  -7.63759347e+20
   1.43215854e+21   1.48528132e+20  -9.68863902e+19  -5.25682712e+20
  -5.05510431e+20  -2.31055484e+20  -1.88901134e+20  -3.71302660e+20
  -1.21734027e+21  -2.20340416e+20   8.87363094e+20  -2.76706864e+19
   4.08034032e+19   2.12753440e+20  -3.90634711e+20   1.03748095e+21
   6.98139694e+20  -8.21994194e+20   8.11820085e+20   2.49873230e+20
   8.59336259e+20  -1.51744505e+20   4.63662980e+20   1.00176207e+21
   1.01185774e+21  -3.74908217e+20   1.37659604e+20   5.17473397e+20
  -2.75370762e+20   1.60331029e+20   6.06102437e+20   1.58671739e+20
  -1.47986592e+20  -9.85881942e+20   3.01168647e+20   3.34437285e+20
  -4.05744581e+20  -2.54444486e+20   1.21286800e+20  -1.10918464e+18
  -8.27125636e+20   2.10643105e+20   7.35809349e+20  -3.44978426e+20
  -2.26736763e+20   2.10519023e+20  -1.04957720e+21  -1.25510473e+21
   2.31633880e+19   9.89432295e+20   9.02550585e+20  -1.41390803e+20
  -1.38654351e+19  -5.49150921e+19   1.84561735e+21   3.81302977e+20
   2.36569982e+20  -1.17815514e+21  -1.22624192e+21  -1.78462966e+19
  -3.49007673e+20   5.17242480e+19   1.05863872e+21   3.18528903e+20
  -7.17103546e+20   7.44558830e+20   2.57375383e+20   3.59936893e+20
  -8.30190507e+20   1.20426516e+21  -7.94904562e+19  -6.78253855e+20
   1.98793956e+20   8.40901864e+20   9.04491868e+19  -1.95191445e+20
   3.77461677e+20  -1.13671438e+20   1.09874575e+21   1.18748898e+21
  -8.91274104e+20  -9.56505903e+20  -5.00420463e+20  -7.18655119e+20
  -6.34516134e+20   5.23350933e+20  -6.55846417e+20  -1.29475545e+20
  -7.38839587e+20   1.17943927e+21  -2.14094358e+20  -2.65582706e+20
   1.11957749e+21  -6.71024078e+19  -9.46452820e+20   7.95438784e+20
   4.50655462e+19  -3.44685774e+20  -9.62125936e+20  -2.55483766e+20
   6.40933087e+20  -8.48626455e+20  -5.17311370e+20  -1.67382400e+19
   2.30683045e+20   1.49886341e+20   6.62150654e+20  -4.52110137e+20
   2.17248392e+20  -4.08014800e+20   7.80187569e+20   1.70819950e+21
  -6.32281196e+19  -4.23366901e+19   7.53138861e+20  -1.26300769e+20
   3.78524648e+20   3.26105870e+20  -1.62635459e+20   1.54789271e+21
   4.60280477e+20  -2.71335253e+20   1.54677235e+20  -4.41548822e+20
   2.94081727e+20   4.60819026e+20   1.17666223e+20  -9.06456651e+20
   2.74421140e+20   1.61249296e+20  -4.29060292e+20   2.22702014e+20
   3.11439159e+18  -3.29511053e+20   4.10231392e+19   8.65337386e+19
   1.54888016e+20   1.65670030e+21   1.89501165e+19   4.17382444e+20
   7.58148022e+20  -7.02799972e+19  -8.03716031e+19  -1.11087671e+21
   4.40525334e+20  -5.40712652e+20   1.73032586e+20  -4.90277438e+20
  -3.62107129e+20  -7.61946729e+18   6.14683848e+20  -6.83132639e+20
   5.75333837e+19  -1.02223572e+21   1.64467026e+20  -8.84179861e+20
  -9.18285047e+19  -6.74172208e+20  -4.41216031e+20  -1.44139528e+21
  -8.98170470e+20  -3.87921366e+20  -3.41108312e+20   7.58543199e+20
   1.28298292e+21   6.43793603e+20  -4.47831037e+20   6.83576728e+20
  -6.74623294e+20   2.61099495e+18  -1.04568123e+20   1.16236321e+20
   4.12207079e+20   5.36057527e+20   4.31184458e+20  -3.14180921e+20
  -1.33857427e+20  -6.09649065e+20  -6.05474885e+20   1.25773506e+21
   5.97873988e+19   9.11067349e+20  -5.48735991e+20  -1.14106453e+20
   4.19686234e+20   1.12246738e+21   2.06447429e+20  -3.20288522e+20
   3.38994644e+20  -5.75084860e+20  -4.19728961e+20   7.23610756e+20
   2.89759051e+20  -1.23697818e+20  -6.89928175e+20  -6.03074376e+19
   4.89503588e+20   1.74027762e+19  -5.80168896e+20  -9.34723676e+20
   3.62780500e+20  -4.12637779e+19  -2.67738695e+20  -2.83375781e+20
   9.31403111e+20   1.46585057e+21   9.66334391e+20  -3.18897498e+20
   1.31990793e+21   1.13031698e+21   5.03083105e+20  -6.50243176e+20
   3.31915787e+20  -1.35518619e+21   5.39296886e+20   9.64311593e+20
   2.70725141e+19  -4.47075915e+20   7.90224732e+20  -2.28271634e+20
  -5.17240562e+20   6.28248843e+20   9.88512437e+20   9.14451512e+20
   4.04461319e+20  -2.15103528e+20  -2.47645367e+20   2.06791598e+18
  -6.76125105e+20  -9.13161985e+20   1.14378569e+21   6.06598429e+20
   1.65420845e+21  -4.19064061e+20  -4.84539668e+20  -4.34886977e+20
   7.36584226e+20  -1.41066456e+20   1.39036469e+20  -9.40195690e+19
  -4.55985831e+20   3.33596337e+20  -2.44745742e+20  -7.10371637e+20
   3.34223315e+20   6.74476142e+20  -1.05698879e+20   2.19001691e+20
  -1.17731928e+21  -3.74657272e+20  -9.12796629e+20   7.53276481e+20
   1.76957215e+20   2.93465063e+20  -6.94989902e+20  -2.86117736e+19
  -4.58621979e+20   4.76627999e+20   3.81436487e+20  -2.13463833e+20
  -1.05800049e+21  -3.22410166e+20  -2.29031500e+20  -6.26715302e+20
  -2.51317698e+20   5.14003114e+20  -3.52648711e+20   8.30410406e+18
   9.34597883e+19   6.08685933e+20  -3.14650685e+20  -2.97659231e+20
  -5.22303271e+20  -8.29946742e+20  -7.42833781e+20   3.14997406e+20
   2.13612489e+20  -3.78453851e+20   2.50487285e+20   5.64527226e+20
  -3.17373065e+20  -3.56450292e+20  -2.52419495e+20   3.50518233e+20
   2.49395221e+19  -8.00938873e+20  -4.80925961e+19   1.29234354e+20
  -2.18404715e+20   7.11036615e+20   1.23889421e+21   5.29611662e+20
   3.23300462e+20   6.71614713e+20  -8.09187545e+20  -9.78957094e+20
  -4.58345656e+20  -4.41217074e+20  -5.78762090e+20   1.51595182e+21
   9.18026440e+20  -8.98317781e+20  -3.23271426e+20   8.88065711e+18
  -2.32808594e+20   8.03106528e+19  -9.07939429e+20   1.08658893e+21
  -3.49454925e+20   6.67993756e+20  -3.56127032e+20  -2.85872800e+20
   4.51244508e+20   1.94827076e+20  -3.94072999e+20   1.18538955e+21
  -1.33766787e+21  -4.63052463e+20   2.87459680e+20   2.53765373e+20
   1.26813523e+20  -5.68497328e+20   5.02672678e+20   6.48923900e+20
  -3.69931725e+20  -6.27516526e+20  -3.29984768e+20   1.19926526e+21
  -7.03113083e+20  -1.54100382e+20   2.30574450e+20  -1.86334613e+19
   4.94909001e+20  -7.29397600e+20   2.27804237e+20  -1.44272041e+20
   6.74513886e+20   7.80304206e+20   3.26419206e+20  -5.38785910e+20
   3.18712627e+20   2.12820137e+20  -1.20743114e+21   5.59124776e+20
  -6.10565617e+20   1.00216327e+21   8.07813992e+20  -1.09428417e+20
   1.39001476e+19  -5.47894034e+20   1.07622747e+19   1.13719105e+20
  -7.06028291e+19  -7.22099789e+20   7.20244003e+20   3.36463481e+20
  -2.27236202e+20   2.07185813e+20   9.90327291e+20   5.90992870e+20
  -4.91700308e+20  -1.62596540e+20  -8.47732093e+19   4.50808316e+20
   1.06482332e+20  -5.89745018e+20   1.05811945e+20  -2.89397934e+20
   1.18671120e+21   3.74287435e+20  -6.54602757e+20   2.66041160e+19
  -1.26042371e+21   8.03841734e+20  -5.38685811e+19  -1.11699377e+20
  -4.01555265e+20  -4.67438705e+20   3.25551574e+20  -1.23924513e+21
   3.42481042e+20  -3.90692031e+20  -9.85598784e+19   4.96159964e+20
  -4.41196684e+20  -6.67522608e+18  -4.94876118e+20   3.35551063e+20
  -1.50889412e+20  -5.46305150e+20  -4.46588686e+20   8.21795526e+20
   6.39471514e+20  -2.01986899e+20   2.80118206e+20  -2.53567635e+20
   3.89906878e+20  -5.40219179e+20  -4.60876621e+20   4.07214866e+20
  -3.99952761e+20   5.62249004e+20   4.17417665e+19  -8.57935905e+20
  -6.37627985e+20  -1.28739918e+20   2.90839802e+20   4.36736620e+20
   2.11047645e+20   8.86895474e+20   1.53681502e+20   5.06578898e+20
  -5.06204108e+20   6.54551203e+20   2.56448176e+20   5.72301545e+20
   1.18654396e+21   3.41673781e+20  -6.30757560e+20  -1.77215780e+20
   3.17562687e+20  -5.77659061e+20   4.30167016e+20   1.01097172e+20
  -8.09155677e+20   4.10812422e+20   8.43362075e+19   7.05173245e+20
   2.39608302e+20  -4.67041199e+20   3.80563846e+20  -3.76445382e+20
   6.00689457e+20   5.38772146e+20   4.38448564e+20   3.72589296e+20
  -2.41952316e+20  -5.70957620e+20   7.82615569e+20   4.61838831e+20
   2.35036688e+20  -1.33553158e+21  -3.66890879e+20   2.08491928e+20
   5.56254457e+20  -6.07526924e+20   5.64493540e+20  -2.62417166e+20
  -6.42663295e+19   3.07877317e+20   7.36467220e+19  -7.32643213e+19
   1.06698313e+21   1.69453701e+21  -3.97067888e+20  -3.01767422e+20
   1.29148564e+21  -3.15497823e+20  -8.30992477e+20   1.14044975e+20
  -3.70512915e+20   3.35330880e+19  -4.55885994e+20   2.82380089e+20
   9.54328881e+20  -2.47493809e+20   2.86671836e+20   1.46681654e+21
   2.09769607e+20  -5.29887062e+20  -3.50299738e+20   5.25417508e+19
  -5.53545518e+20  -8.76261129e+19  -4.07170577e+19   3.97318418e+20
  -3.50389499e+20   2.56303551e+20   5.59855407e+20  -1.97464427e+20
   1.84889875e+19  -1.16823508e+20  -6.52337625e+20  -1.12958245e+20
   6.54095189e+20  -4.35509268e+20  -4.66052988e+19   1.99443931e+20
  -2.15518043e+20   4.88538838e+20   1.60144265e+19  -5.46014909e+20
   4.79540658e+20   6.53262718e+20  -9.61349986e+20  -1.49081371e+20
   8.36667851e+20   5.69449498e+20  -6.97916960e+20   3.37344855e+20
  -1.46026637e+20   2.81796617e+20  -8.03407161e+20  -3.68950501e+20
  -3.25305121e+20   4.77523382e+20   2.07310257e+20  -3.39683492e+20
  -1.76491337e+20   2.20075251e+19  -3.04185404e+20   3.19318076e+20
  -1.37968807e+21  -7.75950161e+19   7.52901971e+20   3.39432166e+20
   8.60678346e+20  -1.44991569e+21   1.04226106e+21  -4.75695788e+20
   7.73629127e+20  -8.12676316e+20   1.03840205e+19  -4.99701349e+20
   3.17881914e+20  -4.51870253e+20   2.50407667e+20  -2.50645670e+20
  -5.95618044e+20  -7.90610535e+19  -6.38949633e+20  -1.80149051e+20
  -8.62125196e+19   8.18665207e+20  -9.48061961e+20   8.80392322e+20
  -2.70512552e+20   1.05546127e+21   7.55574493e+20  -7.86981994e+20
  -3.08736816e+20  -1.20899985e+21   5.31412872e+20   8.05746690e+20
  -5.34696707e+20   5.97960589e+20   1.06515836e+20   3.55987487e+20
  -2.45672728e+20   3.42314044e+20  -8.42084364e+20   2.15494487e+20
   2.06424641e+19   2.43732320e+20  -2.96547309e+20  -7.45363617e+20
   3.43320891e+20  -3.58113870e+20  -2.66827186e+20  -4.69170180e+20
   1.33458114e+21  -3.04936233e+20  -5.40191326e+19   2.31005033e+20
   1.03334664e+21   5.84995536e+19  -4.97724072e+20  -1.63910399e+20
  -2.02839253e+20  -1.55818639e+20  -4.00767506e+20  -1.50423354e+21
  -7.12213147e+20  -1.24990447e+21  -4.55660062e+20  -3.46581851e+20]

In [66]:
np.allclose(model_fit_dotprod, compare_matrixMult) #compare


Out[66]:
True

In [67]:
np.dot(tempval.T, compare_matrixMult)


Out[67]:
-8.0590519116934554e+17

In [ ]: