diff --git a/.gitignore b/.gitignore index f8eec899..38eeaa26 100644 --- a/.gitignore +++ b/.gitignore @@ -173,6 +173,8 @@ cosmo_inference/cosmosis_config/cosmosis_pipeline_glass_mock_0*.ini cosmo_inference/cosmosis_config/cosmosis_pipeline_glass_mock_v0*.ini cosmo_inference/cosmosis_config/glass_mocks_v* +config/glass_mock/test_data/results + # Regenerable catalog-paper plots: the paper TeX lives in the separate docs/ # repo, so these are script/notebook outputs, not LaTeX-tracked figures. papers/catalog/plots/*.pdf @@ -196,5 +198,6 @@ papers/catalog/plots/*.pdf # SLURM run logs from cosmo_val validation runs papers/cosmo_val/logs/ -# Ignore scratch notebooks -scratch/*/*.ipynb \ No newline at end of file +# Ignore scratch work notebooks +scratch/guerrini/work_notebooks +scratch/guerrini/launch_scripts \ No newline at end of file diff --git a/config/glass_mock/config_glass_mock.yaml b/config/glass_mock/config_glass_mock.yaml new file mode 100644 index 00000000..02edd5c2 --- /dev/null +++ b/config/glass_mock/config_glass_mock.yaml @@ -0,0 +1,41 @@ +# Config file to generate a GLASS mock. +# Example config file, uncomment and modify the inplace value if needed. + +# To run this configuration run the script `make_glass_sim.py` +# Options: +# -s, --seed: Random seed +# -N, --number: Mock Number for labelling +# -t, --test: Run in test mode +# -cb, --camb: get Camb C_ell +# -c, --config: Path to the configuration file to generate the simulation (Required) + +# --- Cosmological parameters (CAMB) --- +#h: 0.6766 +#Om: 0.30966 +#Ob: 0.04897 +#ns: 0.9665 +#sigma8: 0.8102 +#mnu: 0.06 +#log_T_AGN: 7.8 +#As_init: 2.1e-9 #seed As before sigma8 rescaling +#kmax: 20.0 + +# --- Resolution --- +nside: 4096 +dx: 120.0 +zmax: 3.0 + +# --- galaxy population (downstream of map generation) --- +nbins: 6 +n_arcmin2: [1, 1.02, 1.05, 0.85, 0.9, 1.2] +sigma_e: 0.2684 +bias: 1.2 +phz_sigma_0: 0.03 +#ia_bias: null + +# --- Runtime options --- +limber: True +mask_path: /n09data/guerrini/glass_mock_v1.4.6_rerun/mask_nside4096.fits +nz_path: /home/guerrini/sp_validation_cosmostat/config/glass_mock/test_data/redshift_distribution_tomo.txt +output_path: /n09data/guerrini/glass_mock_test/ +output_prefix: tomo_test \ No newline at end of file diff --git a/config/glass_mock/config_glass_mock_test.yaml b/config/glass_mock/config_glass_mock_test.yaml new file mode 100644 index 00000000..bb5c8b3f --- /dev/null +++ b/config/glass_mock/config_glass_mock_test.yaml @@ -0,0 +1,41 @@ +# Config file to generate a GLASS mock. +# Example config file, uncomment and modify the inplace value if needed. + +# To run this configuration run the script `make_glass_sim.py` +# Options: +# -s, --seed: Random seed +# -N, --number: Mock Number for labelling +# -t, --test: Run in test mode +# -cb, --camb: get Camb C_ell +# -c, --config: Path to the configuration file to generate the simulation (Required) + +# --- Cosmological parameters (CAMB) --- +#h: 0.7 +#Om: 0.30966 +#Ob: 0.04897 +#ns: 0.9665 +#sigma8: 0.8102 +#mnu: 0.06 +#log_T_AGN: 7.8 +#As_init: 2.1e-9 #seed As before sigma8 rescaling +#kmax: 20.0 + +# --- Resolution --- +nside: 32 +dx: 200.0 +zmax: 3 + +# --- galaxy population (downstream of map generation) --- +nbins: 6 +n_arcmin2: [4.0, 3.8, 4.2, 3.95, 4.05, 4.0] +sigma_e: 0.2684 +bias: 1.2 +phz_sigma_0: 0.03 +#ia_bias: null + +# --- Runtime options --- +limber: True +mask_path: /n09data/guerrini/glass_mock_v1.4.6_rerun/mask_nside4096.fits +nz_path: /home/guerrini/sp_validation_cosmostat/config/glass_mock/test_data/redshift_distribution_tomo.txt +output_path: /n09data/guerrini/glass_mock_test/ +output_prefix: unions \ No newline at end of file diff --git a/config/glass_mock/test_data/mask.fits b/config/glass_mock/test_data/mask.fits new file mode 100644 index 00000000..4f86bf25 Binary files /dev/null and b/config/glass_mock/test_data/mask.fits differ diff --git a/config/glass_mock/test_data/redshift_distribution_non_tomo.txt b/config/glass_mock/test_data/redshift_distribution_non_tomo.txt new file mode 100644 index 00000000..15c4a47b --- /dev/null +++ b/config/glass_mock/test_data/redshift_distribution_non_tomo.txt @@ -0,0 +1,501 @@ +0.000000000000000000e+00 0.000000000000000000e+00 +1.000000000000000021e-02 1.539937506863479477e-03 +2.000000000000000042e-02 4.354621114841233237e-03 +2.999999999999999889e-02 7.996950397128197580e-03 +4.000000000000000083e-02 1.230564841035703891e-02 +5.000000000000000278e-02 1.718606196257605606e-02 +5.999999999999999778e-02 2.257303471016786772e-02 +7.000000000000000666e-02 2.841755418221013352e-02 +8.000000000000000167e-02 3.468055475441410296e-02 +8.999999999999999667e-02 4.132958972425367777e-02 +1.000000000000000056e-01 4.833686282899146008e-02 +1.100000000000000006e-01 5.567798045703171994e-02 +1.199999999999999956e-01 6.333111840482133492e-02 +1.300000000000000044e-01 7.127644240940279874e-02 +1.400000000000000133e-01 7.949569188500757444e-02 +1.499999999999999944e-01 8.797187290406095761e-02 +1.600000000000000033e-01 9.668902677243641774e-02 +1.700000000000000122e-01 1.056320523994966204e-01 +1.799999999999999933e-01 1.147865678773978826e-01 +1.900000000000000022e-01 1.241388012363979498e-01 +2.000000000000000111e-01 1.336755033059782716e-01 +2.099999999999999922e-01 1.433838775930178222e-01 +2.200000000000000011e-01 1.532515234450602115e-01 +2.300000000000000100e-01 1.632663897155546551e-01 +2.399999999999999911e-01 1.734167368240674412e-01 +2.500000000000000000e-01 1.836911055944393523e-01 +2.600000000000000089e-01 1.940782916144088155e-01 +2.700000000000000178e-01 2.045673241292221278e-01 +2.800000000000000266e-01 2.151474486850073475e-01 +2.899999999999999800e-01 2.258081128930605475e-01 +2.999999999999999889e-01 2.365389548062355740e-01 +3.099999999999999978e-01 2.473297934922943364e-01 +3.200000000000000067e-01 2.581706214628362583e-01 +3.300000000000000155e-01 2.690515986750057764e-01 +3.400000000000000244e-01 2.799630478700771419e-01 +3.500000000000000333e-01 2.908954510508430791e-01 +3.599999999999999867e-01 3.018394469304660488e-01 +3.699999999999999956e-01 3.127858292105780147e-01 +3.800000000000000044e-01 3.237255455670945414e-01 +3.900000000000000133e-01 3.346496972393329106e-01 +4.000000000000000222e-01 3.455495391322799814e-01 +4.100000000000000311e-01 3.564164803537959170e-01 +4.199999999999999845e-01 3.672420851185922985e-01 +4.299999999999999933e-01 3.780180739593260730e-01 +4.400000000000000022e-01 3.887363251923902085e-01 +4.500000000000000111e-01 3.993888765921613793e-01 +4.600000000000000200e-01 4.099679272327816371e-01 +4.700000000000000289e-01 4.204658394611290873e-01 +4.799999999999999822e-01 4.308751409686109590e-01 +4.899999999999999911e-01 4.411885269328758574e-01 +5.000000000000000000e-01 4.513988622035659537e-01 +5.100000000000000089e-01 4.614991835089001793e-01 +5.200000000000000178e-01 4.714827016622296085e-01 +5.300000000000000266e-01 4.813428037497889944e-01 +5.400000000000000355e-01 4.910730552827363704e-01 +5.500000000000000444e-01 5.006672022982299186e-01 +5.600000000000000533e-01 5.101191733957912700e-01 +5.700000000000000622e-01 5.194230816965546005e-01 +5.799999999999999600e-01 5.285732267142277951e-01 +5.899999999999999689e-01 5.375640961277033947e-01 +5.999999999999999778e-01 5.463903674462829985e-01 +6.099999999999999867e-01 5.550469095594072755e-01 +6.199999999999999956e-01 5.635287841636549278e-01 +6.300000000000000044e-01 5.718312470605623199e-01 +6.400000000000000133e-01 5.799497493195616693e-01 +6.500000000000000222e-01 5.878799383010221424e-01 +6.600000000000000311e-01 5.956176585350180241e-01 +6.700000000000000400e-01 6.031589524520577505e-01 +6.800000000000000488e-01 6.105000609625610419e-01 +6.900000000000000577e-01 6.176374238824169360e-01 +7.000000000000000666e-01 6.245676802024405783e-01 +7.099999999999999645e-01 6.312876682000376771e-01 +7.199999999999999734e-01 6.377944253918177431e-01 +7.299999999999999822e-01 6.440851883263314370e-01 +7.399999999999999911e-01 6.501573922165090336e-01 +7.500000000000000000e-01 6.560086704117557010e-01 +7.600000000000000089e-01 6.616368537100251190e-01 +7.700000000000000178e-01 6.670399695105416749e-01 +7.800000000000000266e-01 6.722162408081657770e-01 +7.900000000000000355e-01 6.771640850307087955e-01 +8.000000000000000444e-01 6.818821127208092303e-01 +8.100000000000000533e-01 6.863691260642560410e-01 +8.200000000000000622e-01 6.906241172669157491e-01 +8.300000000000000711e-01 6.946462667826814874e-01 +8.399999999999999689e-01 6.984349413950913243e-01 +8.499999999999999778e-01 7.019896921555075497e-01 +8.599999999999999867e-01 7.053102521809501146e-01 +8.699999999999999956e-01 7.083965343148931337e-01 +8.800000000000000044e-01 7.112486286545204317e-01 +8.900000000000000133e-01 7.138667999481170812e-01 +9.000000000000000222e-01 7.162514848664459644e-01 +9.100000000000000311e-01 7.184032891521118236e-01 +9.200000000000000400e-01 7.203229846510679213e-01 +9.300000000000000488e-01 7.220115062305524356e-01 +9.400000000000000577e-01 7.234699485878687275e-01 +9.500000000000000666e-01 7.246995629545379680e-01 +9.599999999999999645e-01 7.257017537004600838e-01 +9.699999999999999734e-01 7.264780748428069090e-01 +9.799999999999999822e-01 7.270302264644648016e-01 +9.899999999999999911e-01 7.273600510469091507e-01 +1.000000000000000000e+00 7.274695297224667012e-01 +1.010000000000000009e+00 7.273607784509685814e-01 +1.020000000000000018e+00 7.270360441258496564e-01 +1.030000000000000027e+00 7.264977006147820271e-01 +1.040000000000000036e+00 7.257482447399601355e-01 +1.050000000000000044e+00 7.247902922031738138e-01 +1.060000000000000053e+00 7.236265734608122724e-01 +1.070000000000000062e+00 7.222599295539492426e-01 +1.080000000000000071e+00 7.206933078986481611e-01 +1.090000000000000080e+00 7.189297580416124100e-01 +1.100000000000000089e+00 7.169724273862850827e-01 +1.110000000000000098e+00 7.148245568944672224e-01 +1.120000000000000107e+00 7.124894767684958330e-01 +1.130000000000000115e+00 7.099706021189617910e-01 +1.140000000000000124e+00 7.072714286229138114e-01 +1.150000000000000133e+00 7.043955281774211263e-01 +1.159999999999999920e+00 7.013465445533126896e-01 +1.169999999999999929e+00 6.981281890538297841e-01 +1.179999999999999938e+00 6.947442361828605195e-01 +1.189999999999999947e+00 6.911985193273350037e-01 +1.199999999999999956e+00 6.874949264582724817e-01 +1.209999999999999964e+00 6.836373958548797036e-01 +1.219999999999999973e+00 6.796299118559959718e-01 +1.229999999999999982e+00 6.754765006430851759e-01 +1.239999999999999991e+00 6.711812260588544410e-01 +1.250000000000000000e+00 6.667481854654786488e-01 +1.260000000000000009e+00 6.621815056462829752e-01 +1.270000000000000018e+00 6.574853387546280015e-01 +1.280000000000000027e+00 6.526638583136016303e-01 +1.290000000000000036e+00 6.477212552700154502e-01 +1.300000000000000044e+00 6.426617341060522071e-01 +1.310000000000000053e+00 6.374895090118015695e-01 +1.320000000000000062e+00 6.322088001217657238e-01 +1.330000000000000071e+00 6.268238298182954304e-01 +1.340000000000000080e+00 6.213388191047718445e-01 +1.350000000000000089e+00 6.157579840512120706e-01 +1.360000000000000098e+00 6.100855323148330900e-01 +1.370000000000000107e+00 6.043256597379692563e-01 +1.380000000000000115e+00 5.984825470255971114e-01 +1.390000000000000124e+00 5.925603565045712839e-01 +1.400000000000000133e+00 5.865632289665424492e-01 +1.409999999999999920e+00 5.804952805963723428e-01 +1.419999999999999929e+00 5.743605999877305912e-01 +1.429999999999999938e+00 5.681632452474034700e-01 +1.439999999999999947e+00 5.619072411897095831e-01 +1.449999999999999956e+00 5.555965766222765723e-01 +1.459999999999999964e+00 5.492352017242854156e-01 +1.469999999999999973e+00 5.428270255181580906e-01 +1.479999999999999982e+00 5.363759134355238212e-01 +1.489999999999999991e+00 5.298856849781603540e-01 +1.500000000000000000e+00 5.233601114744772520e-01 +1.510000000000000009e+00 5.168029139319725296e-01 +1.520000000000000018e+00 5.102177609859670504e-01 +1.530000000000000027e+00 5.036082669447908833e-01 +1.540000000000000036e+00 4.969779899314723526e-01 +1.550000000000000044e+00 4.903304301218576189e-01 +1.560000000000000053e+00 4.836690280789701091e-01 +1.570000000000000062e+00 4.769971631832984893e-01 +1.580000000000000071e+00 4.703181521585940161e-01 +1.590000000000000080e+00 4.636352476926445809e-01 +1.600000000000000089e+00 4.569516371523797416e-01 +1.610000000000000098e+00 4.502704413925717186e-01 +1.620000000000000107e+00 4.435947136572779836e-01 +1.630000000000000115e+00 4.369274385730903543e-01 +1.640000000000000124e+00 4.302715312331513720e-01 +1.650000000000000133e+00 4.236298363708130843e-01 +1.660000000000000142e+00 4.170051276217281999e-01 +1.669999999999999929e+00 4.104001068730749879e-01 +1.679999999999999938e+00 4.038174036985497928e-01 +1.689999999999999947e+00 3.972595748776704960e-01 +1.699999999999999956e+00 3.907291039978806890e-01 +1.709999999999999964e+00 3.842284011378613306e-01 +1.719999999999999973e+00 3.777598026304040957e-01 +1.729999999999999982e+00 3.713255709031357821e-01 +1.739999999999999991e+00 3.649278943953298548e-01 +1.750000000000000000e+00 3.585688875489879690e-01 +1.760000000000000009e+00 3.522505908723272405e-01 +1.770000000000000018e+00 3.459749710737644590e-01 +1.780000000000000027e+00 3.397439212644507434e-01 +1.790000000000000036e+00 3.335592612273660107e-01 +1.800000000000000044e+00 3.274227377509619230e-01 +1.810000000000000053e+00 3.213360250253015638e-01 +1.820000000000000062e+00 3.153007250986233356e-01 +1.830000000000000071e+00 3.093183683922376415e-01 +1.840000000000000080e+00 3.033904142716395969e-01 +1.850000000000000089e+00 2.975182516717121417e-01 +1.860000000000000098e+00 2.917031997738803728e-01 +1.870000000000000107e+00 2.859465087330672062e-01 +1.880000000000000115e+00 2.802493604523003667e-01 +1.890000000000000124e+00 2.746128694028142636e-01 +1.900000000000000133e+00 2.690380834874948612e-01 +1.910000000000000142e+00 2.635259849455179881e-01 +1.919999999999999929e+00 2.580774912960386858e-01 +1.929999999999999938e+00 2.526934563188009686e-01 +1.939999999999999947e+00 2.473746710695480799e-01 +1.949999999999999956e+00 2.421218649281299262e-01 +1.959999999999999964e+00 2.369357066772201093e-01 +1.969999999999999973e+00 2.318168056095795404e-01 +1.979999999999999982e+00 2.267657126618208285e-01 +1.989999999999999991e+00 2.217829215726565273e-01 +2.000000000000000000e+00 2.168688700636401956e-01 +2.010000000000000231e+00 2.120239410404359814e-01 +2.020000000000000018e+00 2.072484638126886325e-01 +2.030000000000000249e+00 2.025427153305902617e-01 +2.040000000000000036e+00 1.979069214362860762e-01 +2.049999999999999822e+00 1.933412581282832887e-01 +2.060000000000000053e+00 1.888458528370793865e-01 +2.069999999999999840e+00 1.844207857102533321e-01 +2.080000000000000071e+00 1.800660909053100611e-01 +2.089999999999999858e+00 1.757817578886092247e-01 +2.100000000000000089e+00 1.715677327387462869e-01 +2.109999999999999876e+00 1.674239194528092944e-01 +2.120000000000000107e+00 1.633501812539643328e-01 +2.129999999999999893e+00 1.593463418988812497e-01 +2.140000000000000124e+00 1.554121869835467795e-01 +2.149999999999999911e+00 1.515474652460686023e-01 +2.160000000000000142e+00 1.477518898651102308e-01 +2.169999999999999929e+00 1.440251397526542965e-01 +2.180000000000000160e+00 1.403668608398331852e-01 +2.189999999999999947e+00 1.367766673546163547e-01 +2.200000000000000178e+00 1.332541430901921786e-01 +2.209999999999999964e+00 1.297988426629307357e-01 +2.220000000000000195e+00 1.264102927588607039e-01 +2.229999999999999982e+00 1.230879933676455457e-01 +2.240000000000000213e+00 1.198314190030877746e-01 +2.250000000000000000e+00 1.166400199092426510e-01 +2.260000000000000231e+00 1.135132232512673367e-01 +2.270000000000000018e+00 1.104504342901816843e-01 +2.280000000000000249e+00 1.074510375407597695e-01 +2.290000000000000036e+00 1.045143979118249022e-01 +2.300000000000000266e+00 1.016398618282587235e-01 +2.310000000000000053e+00 9.882675833408750832e-02 +2.319999999999999840e+00 9.607440017604933213e-02 +2.330000000000000071e+00 9.338208486709335954e-02 +2.339999999999999858e+00 9.074909572930309198e-02 +2.350000000000000089e+00 8.817470291577877983e-02 +2.359999999999999876e+00 8.565816441106151313e-02 +2.370000000000000107e+00 8.319872700971145396e-02 +2.379999999999999893e+00 8.079562727270708788e-02 +2.390000000000000124e+00 7.844809246135860115e-02 +2.399999999999999911e+00 7.615534144847727061e-02 +2.410000000000000142e+00 7.391658560657310417e-02 +2.419999999999999929e+00 7.173102967289454734e-02 +2.430000000000000160e+00 6.959787259115582381e-02 +2.439999999999999947e+00 6.751630832983530894e-02 +2.450000000000000178e+00 6.548552667695832497e-02 +2.459999999999999964e+00 6.350471401131446703e-02 +2.470000000000000195e+00 6.157305405008499377e-02 +2.479999999999999982e+00 5.968972857289397971e-02 +2.490000000000000213e+00 5.785391812231730629e-02 +2.500000000000000000e+00 5.606480268091939417e-02 +2.510000000000000231e+00 5.432156232490855524e-02 +2.520000000000000018e+00 5.262337785453282540e-02 +2.530000000000000249e+00 5.096943140135768574e-02 +2.540000000000000036e+00 4.935890701259598029e-02 +2.550000000000000266e+00 4.779099121267828265e-02 +2.560000000000000053e+00 4.626487354227725585e-02 +2.569999999999999840e+00 4.477974707501646695e-02 +2.580000000000000071e+00 4.333480891211646813e-02 +2.589999999999999858e+00 4.192926065524795604e-02 +2.600000000000000089e+00 4.056230885787701079e-02 +2.609999999999999876e+00 3.923316545540828093e-02 +2.620000000000000107e+00 3.794104817444162586e-02 +2.629999999999999893e+00 3.668518092147692727e-02 +2.640000000000000124e+00 3.546479415140973979e-02 +2.649999999999999911e+00 3.427912521617817315e-02 +2.660000000000000142e+00 3.312741869392702571e-02 +2.669999999999999929e+00 3.200892669907012822e-02 +2.680000000000000160e+00 3.092290917363746394e-02 +2.689999999999999947e+00 2.986863416030518040e-02 +2.700000000000000178e+00 2.884537805751076489e-02 +2.709999999999999964e+00 2.785242585706639018e-02 +2.720000000000000195e+00 2.688907136468463369e-02 +2.729999999999999982e+00 2.595461740384056790e-02 +2.740000000000000213e+00 2.504837600339402184e-02 +2.750000000000000000e+00 2.416966856940315489e-02 +2.760000000000000231e+00 2.331782604155990465e-02 +2.770000000000000018e+00 2.249218903468288774e-02 +2.780000000000000249e+00 2.169210796570213151e-02 +2.790000000000000036e+00 2.091694316657254429e-02 +2.800000000000000266e+00 2.016606498355184157e-02 +2.810000000000000053e+00 1.943885386327943651e-02 +2.819999999999999840e+00 1.873470042608972944e-02 +2.830000000000000071e+00 1.805300552699367136e-02 +2.839999999999999858e+00 1.739318030475876797e-02 +2.850000000000000089e+00 1.675464621951530675e-02 +2.859999999999999876e+00 1.613683507931390829e-02 +2.870000000000000107e+00 1.553918905605487094e-02 +2.879999999999999893e+00 1.496116069120686544e-02 +2.890000000000000124e+00 1.440221289172637954e-02 +2.899999999999999911e+00 1.386181891658643146e-02 +2.910000000000000142e+00 1.333946235431587163e-02 +2.919999999999999929e+00 1.283463709194639958e-02 +2.930000000000000160e+00 1.234684727575733817e-02 +2.939999999999999947e+00 1.187560726420353215e-02 +2.950000000000000178e+00 1.142044157340304719e-02 +2.959999999999999964e+00 1.098088481555707825e-02 +2.970000000000000195e+00 1.055648163066528859e-02 +2.979999999999999982e+00 1.014678661189444622e-02 +2.990000000000000213e+00 9.751364224949137655e-03 +3.000000000000000000e+00 9.369788721787701211e-03 +3.010000000000000231e+00 9.001644049016828408e-03 +3.020000000000000018e+00 8.646523751292257282e-03 +3.030000000000000249e+00 8.304030870043598370e-03 +3.040000000000000036e+00 7.973777837834540930e-03 +3.050000000000000266e+00 7.655386368660446923e-03 +3.060000000000000053e+00 7.348487344478121276e-03 +3.070000000000000284e+00 7.052720698253536757e-03 +3.080000000000000071e+00 6.767735293805762255e-03 +3.089999999999999858e+00 6.493188802716336541e-03 +3.100000000000000089e+00 6.228747578565676894e-03 +3.109999999999999876e+00 5.974086528749391473e-03 +3.120000000000000107e+00 5.728888984119206822e-03 +3.129999999999999893e+00 5.492846566685419957e-03 +3.140000000000000124e+00 5.265659055608580032e-03 +3.149999999999999911e+00 5.047034251701308823e-03 +3.160000000000000142e+00 4.836687840651790471e-03 +3.169999999999999929e+00 4.634343255173532447e-03 +3.180000000000000160e+00 4.439731536277212454e-03 +3.189999999999999947e+00 4.252591193853345712e-03 +3.200000000000000178e+00 4.072668066746101476e-03 +3.209999999999999964e+00 3.899715182491525142e-03 +3.220000000000000195e+00 3.733492616885461263e-03 +3.229999999999999982e+00 3.573767353539470965e-03 +3.240000000000000213e+00 3.420313143575352040e-03 +3.250000000000000000e+00 3.272910365602150953e-03 +3.260000000000000231e+00 3.131345886112087574e-03 +3.270000000000000018e+00 2.995412920425440974e-03 +3.280000000000000249e+00 2.864910894307190828e-03 +3.290000000000000036e+00 2.739645306372137483e-03 +3.300000000000000266e+00 2.619427591388258370e-03 +3.310000000000000053e+00 2.504074984582378965e-03 +3.320000000000000284e+00 2.393410387045433359e-03 +3.330000000000000071e+00 2.287262232329256937e-03 +3.339999999999999858e+00 2.185464354320594375e-03 +3.350000000000000089e+00 2.087855856472531791e-03 +3.359999999999999876e+00 1.994280982468088839e-03 +3.370000000000000107e+00 1.904588988385240433e-03 +3.379999999999999893e+00 1.818634016427714837e-03 +3.390000000000000124e+00 1.736274970280524870e-03 +3.399999999999999911e+00 1.657375392144809457e-03 +3.410000000000000142e+00 1.581803341501400190e-03 +3.419999999999999929e+00 1.509431275648455547e-03 +3.430000000000000160e+00 1.440135932053693713e-03 +3.439999999999999947e+00 1.373798212557982359e-03 +3.450000000000000178e+00 1.310303069462591136e-03 +3.459999999999999964e+00 1.249539393528863824e-03 +3.470000000000000195e+00 1.191399903915032771e-03 +3.479999999999999982e+00 1.135781040071535703e-03 +3.490000000000000213e+00 1.082582855612596300e-03 +3.500000000000000000e+00 1.031708914178621796e-03 +3.510000000000000231e+00 9.830661873007860967e-04 +3.520000000000000018e+00 9.365649542761766066e-04 +3.530000000000000249e+00 8.921187040589807250e-04 +3.540000000000000036e+00 8.496440391705326880e-04 +3.550000000000000266e+00 8.090605816283328536e-04 +3.560000000000000053e+00 7.702908808918079286e-04 +3.570000000000000284e+00 7.332603238201528852e-04 +3.580000000000000071e+00 6.978970466354378647e-04 +3.589999999999999858e+00 6.641318488820351822e-04 +3.600000000000000089e+00 6.318981093715066296e-04 +3.609999999999999876e+00 6.011317041001773337e-04 +3.620000000000000107e+00 5.717709261249223933e-04 +3.629999999999999893e+00 5.437564073810660040e-04 +3.640000000000000124e+00 5.170310424247296808e-04 +3.649999999999999911e+00 4.915399140806066009e-04 +3.660000000000000142e+00 4.672302209747489265e-04 +3.669999999999999929e+00 4.440512069308050593e-04 +3.680000000000000160e+00 4.219540922069490454e-04 +3.689999999999999947e+00 4.008920065497597273e-04 +3.700000000000000178e+00 3.808199240403083684e-04 +3.709999999999999964e+00 3.616945997068966878e-04 +3.720000000000000195e+00 3.434745078780324068e-04 +3.729999999999999982e+00 3.261197822486135807e-04 +3.740000000000000213e+00 3.095921576315514476e-04 +3.750000000000000000e+00 2.938549133666026425e-04 +3.760000000000000231e+00 2.788728183575983708e-04 +3.770000000000000018e+00 2.646120777089062113e-04 +3.780000000000000249e+00 2.510402809315314646e-04 +3.790000000000000036e+00 2.381263516890092305e-04 +3.800000000000000266e+00 2.258404990529570735e-04 +3.810000000000000053e+00 2.141541702379862069e-04 +3.820000000000000284e+00 2.030400047855086668e-04 +3.830000000000000071e+00 1.924717901659137053e-04 +3.839999999999999858e+00 1.824244187684995189e-04 +3.850000000000000089e+00 1.728738462485919904e-04 +3.859999999999999876e+00 1.637970512012828822e-04 +3.870000000000000107e+00 1.551719961313237036e-04 +3.879999999999999893e+00 1.469775896888190277e-04 +3.890000000000000124e+00 1.391936501405120579e-04 +3.899999999999999911e+00 1.318008700466514831e-04 +3.910000000000000142e+00 1.247807821136226263e-04 +3.919999999999999929e+00 1.181157261927979286e-04 +3.930000000000000160e+00 1.117888173962968014e-04 +3.939999999999999947e+00 1.057839153006771295e-04 +3.950000000000000178e+00 1.000855942098637422e-04 +3.959999999999999964e+00 9.467911444898297101e-05 +3.970000000000000195e+00 8.955039466111365304e-05 +3.979999999999999982e+00 8.468598507935508899e-05 +3.990000000000000213e+00 8.007304174698640564e-05 +4.000000000000000000e+00 7.569930165891772917e-05 +4.009999999999999787e+00 7.155305879803737284e-05 +4.020000000000000462e+00 6.762314104049842590e-05 +4.030000000000000249e+00 6.389888790443169124e-05 +4.040000000000000036e+00 6.037012911701270163e-05 +4.049999999999999822e+00 5.702716397528318892e-05 +4.060000000000000497e+00 5.386074147658470357e-05 +4.070000000000000284e+00 5.086204119493443527e-05 +4.080000000000000071e+00 4.802265488015101832e-05 +4.089999999999999858e+00 4.533456875702039282e-05 +4.099999999999999645e+00 4.279014650226993922e-05 +4.110000000000000320e+00 4.038211287760699484e-05 +4.120000000000000107e+00 3.810353799756363775e-05 +4.129999999999999893e+00 3.594782221137101584e-05 +4.139999999999999680e+00 3.390868157858218285e-05 +4.150000000000000355e+00 3.198013391863285836e-05 +4.160000000000000142e+00 3.015648541502528071e-05 +4.169999999999999929e+00 2.843231775528890664e-05 +4.179999999999999716e+00 2.680247578835809533e-05 +4.190000000000000391e+00 2.526205568147361550e-05 +4.200000000000000178e+00 2.380639355918723205e-05 +4.209999999999999964e+00 2.243105460751029207e-05 +4.219999999999999751e+00 2.113182262671278963e-05 +4.230000000000000426e+00 1.990469001672597201e-05 +4.240000000000000213e+00 1.874584817955670109e-05 +4.250000000000000000e+00 1.765167832355950015e-05 +4.259999999999999787e+00 1.661874265485266630e-05 +4.270000000000000462e+00 1.564377594159051401e-05 +4.280000000000000249e+00 1.472367743722979956e-05 +4.290000000000000036e+00 1.385550314934019049e-05 +4.299999999999999822e+00 1.303645844092226011e-05 +4.310000000000000497e+00 1.226389095159203316e-05 +4.320000000000000284e+00 1.153528382638809769e-05 +4.330000000000000071e+00 1.084824924034087195e-05 +4.339999999999999858e+00 1.020052220732327752e-05 +4.350000000000000533e+00 9.589954662070093405e-06 +4.360000000000000320e+00 9.014509804616692749e-06 +4.370000000000000107e+00 8.472256696760831896e-06 +4.379999999999999893e+00 7.961365100498308370e-06 +4.389999999999999680e+00 7.480100548719846339e-06 +4.400000000000000355e+00 7.026819638787182111e-06 +4.410000000000000142e+00 6.599965539928366694e-06 +4.419999999999999929e+00 6.198063705704921943e-06 +4.429999999999999716e+00 5.819717783110912374e-06 +4.440000000000000391e+00 5.463605710160176731e-06 +4.450000000000000178e+00 5.128475994109442647e-06 +4.459999999999999964e+00 4.813144162745563934e-06 +4.469999999999999751e+00 4.516489381441409406e-06 +4.480000000000000426e+00 4.237451228949907836e-06 +4.490000000000000213e+00 3.975026625166211130e-06 +4.500000000000000000e+00 3.728266904338776927e-06 +4.509999999999999787e+00 3.496275027455002836e-06 +4.520000000000000462e+00 3.278202927764108358e-06 +4.530000000000000249e+00 3.073248983629502589e-06 +4.540000000000000036e+00 2.880655613125952564e-06 +4.549999999999999822e+00 2.699706985013199309e-06 +4.560000000000000497e+00 2.529726840926145037e-06 +4.570000000000000284e+00 2.370076423825027983e-06 +4.580000000000000071e+00 2.220152507944157265e-06 +4.589999999999999858e+00 2.079385525668439710e-06 +4.600000000000000533e+00 1.947237786949184512e-06 +4.610000000000000320e+00 1.823201787048896874e-06 +4.620000000000000107e+00 1.706798598575101179e-06 +4.629999999999999893e+00 1.597576343929440794e-06 +4.639999999999999680e+00 1.495108744457528071e-06 +4.650000000000000355e+00 1.398993742739143427e-06 +4.660000000000000142e+00 1.308852194607379469e-06 +4.669999999999999929e+00 1.224326627628362285e-06 +4.679999999999999716e+00 1.145080062911691148e-06 +4.690000000000000391e+00 1.070794897254885976e-06 +4.700000000000000178e+00 1.001171842753453140e-06 +4.709999999999999964e+00 9.359289211317424164e-07 +4.719999999999999751e+00 8.748005101689583192e-07 +4.730000000000000426e+00 8.175364397089691711e-07 +4.740000000000000213e+00 7.639011348529320970e-07 +4.750000000000000000e+00 7.136728040394321014e-07 +4.759999999999999787e+00 6.666426698190985282e-07 +4.770000000000000462e+00 6.226142402281157827e-07 +4.780000000000000249e+00 5.814026187594347311e-07 +4.790000000000000036e+00 5.428338510206137025e-07 +4.799999999999999822e+00 5.067443062540728789e-07 +4.810000000000000497e+00 4.729800919787301626e-07 +4.820000000000000284e+00 4.413965000918793889e-07 +4.830000000000000071e+00 4.118574828467606342e-07 +4.839999999999999858e+00 3.842351571948298727e-07 +4.850000000000000533e+00 3.584093360520481808e-07 +4.860000000000000320e+00 3.342670851160997905e-07 +4.870000000000000107e+00 3.117023039260469944e-07 +4.879999999999999893e+00 2.906153299179266810e-07 +4.889999999999999680e+00 2.709125642890161304e-07 +4.900000000000000355e+00 2.525061185403120229e-07 +4.910000000000000142e+00 2.353134806210512852e-07 +4.919999999999999929e+00 2.192571996510261051e-07 +4.929999999999999716e+00 2.042645882462201667e-07 +4.940000000000000391e+00 1.902674415206736977e-07 +4.950000000000000178e+00 1.772017718829930070e-07 +4.959999999999999964e+00 1.650075587892168629e-07 +4.969999999999999751e+00 1.536285126552568616e-07 +4.980000000000000426e+00 1.430118521716543266e-07 +4.990000000000000213e+00 1.331080943011983516e-07 +5.000000000000000000e+00 1.238708562759898487e-07 diff --git a/config/glass_mock/test_data/redshift_distribution_tomo.txt b/config/glass_mock/test_data/redshift_distribution_tomo.txt new file mode 100644 index 00000000..92fd76f6 --- /dev/null +++ b/config/glass_mock/test_data/redshift_distribution_tomo.txt @@ -0,0 +1,501 @@ +0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.000000000000000021e-02 1.539937506863479477e-03 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.000000000000000042e-02 4.354621114841233237e-03 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.999999999999999889e-02 7.996950397128197580e-03 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.000000000000000083e-02 1.230564841035703891e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +5.000000000000000278e-02 1.718606196257605606e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +5.999999999999999778e-02 2.257303471016786772e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +7.000000000000000666e-02 2.841755418221013352e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +8.000000000000000167e-02 3.468055475441410296e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +8.999999999999999667e-02 4.132958972425367777e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.000000000000000056e-01 4.833686282899146008e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.100000000000000006e-01 5.567798045703171994e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.199999999999999956e-01 6.333111840482133492e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.300000000000000044e-01 7.127644240940279874e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.400000000000000133e-01 7.949569188500757444e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.499999999999999944e-01 8.797187290406095761e-02 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.600000000000000033e-01 9.668902677243640387e-02 1.614882619331313001e-17 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.700000000000000122e-01 1.056320523994964816e-01 1.351137338877444904e-16 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.799999999999999933e-01 1.147865678773969250e-01 9.505027516849669190e-16 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +1.900000000000000022e-01 1.241388012363918020e-01 6.151176652093682308e-15 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.000000000000000111e-01 1.336755033059418007e-01 3.646504877060481157e-14 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.099999999999999922e-01 1.433838775928187315e-01 1.991003829296580357e-13 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.200000000000000011e-01 1.532515234440552376e-01 1.004988630970547006e-12 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.300000000000000100e-01 1.632663897108496964e-01 4.704946108657897756e-12 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.399999999999999911e-01 1.734167368035731960e-01 2.049424340658864430e-11 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.500000000000000000e-01 1.836911055111285218e-01 8.331084045868062068e-11 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.600000000000000089e-01 1.940782912974445551e-01 3.169642814338128490e-10 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.700000000000000178e-01 2.045673229974847573e-01 1.131737369315146494e-09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.800000000000000266e-01 2.151474448827670471e-01 3.802240322614322598e-09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.899999999999999800e-01 2.258081008434757453e-01 1.204958480370055000e-08 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.999999999999999889e-01 2.365389187006463334e-01 3.610558922273093705e-08 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.099999999999999978e-01 2.473296909667828114e-01 1.025255115058832154e-07 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.200000000000000067e-01 2.581703449681812534e-01 2.764946549727501638e-07 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.300000000000000155e-01 2.690508890313944024e-01 7.096436114082356453e-07 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.400000000000000244e-01 2.799613110462015886e-01 1.736823875468063563e-06 4.662322231933824855e-17 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.500000000000000333e-01 2.908913897960314077e-01 4.061254811421941901e-06 2.583670898901443416e-16 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.599999999999999867e-01 3.018303572909819543e-01 9.089639482710861433e-06 1.373947407418390805e-15 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.699999999999999956e-01 3.127663228662022066e-01 1.950634436891043497e-05 6.893151510737389432e-15 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.800000000000000044e-01 3.236853407172435304e-01 4.020484981860280042e-05 3.241856199299520783e-14 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +3.900000000000000133e-01 3.345699792701520847e-01 7.971796903761345344e-05 1.432642055538383969e-13 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.000000000000000222e-01 3.453972446681233266e-01 1.522944635599302987e-04 5.966898959928456991e-13 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.100000000000000311e-01 3.561357356872097979e-01 2.807446642384667278e-04 2.347659114530768397e-12 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.199999999999999845e-01 3.667419771453656052e-01 5.001079644842026418e-04 8.742488218771877294e-12 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.299999999999999933e-01 3.771560018219017318e-01 8.620721065502708535e-04 3.087410164958152419e-11 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.400000000000000022e-01 3.872964251093485299e-01 1.439899979450073690e-03 1.035915583661646512e-10 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.500000000000000111e-01 3.970554653825547065e-01 2.333410878777936875e-03 3.308287653551427720e-10 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.600000000000000200e-01 4.062945736079904835e-01 3.673352617441839798e-03 1.007349317623349535e-09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.700000000000000289e-01 4.148415023345984332e-01 5.624334197152194674e-03 2.929378468558717274e-09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.799999999999999822e-01 4.224897163924213883e-01 8.385416427587607385e-03 8.148601966637974086e-09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +4.899999999999999911e-01 4.290009818473208281e-01 1.218752337000364276e-02 2.171555134073154624e-08 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +5.000000000000000000e-01 4.341117422412649196e-01 1.728706443813065111e-02 5.552417039207953005e-08 5.011534101145543459e-17 0.000000000000000000e+00 0.000000000000000000e+00 +5.100000000000000089e-01 4.375435079817874828e-01 2.395553912012464079e-02 1.364069878953243777e-07 2.049468077523805556e-16 0.000000000000000000e+00 0.000000000000000000e+00 +5.200000000000000178e-01 4.390169859943412467e-01 3.246539324048713232e-02 3.224274003695541761e-07 8.636940693148735105e-16 0.000000000000000000e+00 0.000000000000000000e+00 +5.300000000000000266e-01 4.382691325285715256e-01 4.307293697093857177e-02 7.342502750767433476e-07 3.767504937405573431e-15 0.000000000000000000e+00 0.000000000000000000e+00 +5.400000000000000355e-01 4.350718106991963707e-01 5.599963160420910746e-02 1.612979315532863648e-06 1.537465727950917325e-14 0.000000000000000000e+00 0.000000000000000000e+00 +5.500000000000000444e-01 4.292503654041376904e-01 7.141341456206214133e-02 3.422331970336960685e-06 5.975411748414992075e-14 0.000000000000000000e+00 0.000000000000000000e+00 +5.600000000000000533e-01 4.207002636678696672e-01 8.941188803754447634e-02 7.021690155691773514e-06 2.214129888757403200e-13 0.000000000000000000e+00 0.000000000000000000e+00 +5.700000000000000622e-01 4.094000272965073739e-01 1.100091071956577626e-01 1.394720360637749612e-05 7.830387799077097932e-13 0.000000000000000000e+00 0.000000000000000000e+00 +5.799999999999999600e-01 3.954190047130465846e-01 1.331273721792688158e-01 2.684981926551858141e-05 2.646886166283657862e-12 0.000000000000000000e+00 0.000000000000000000e+00 +5.899999999999999689e-01 3.789190465915061590e-01 1.585948995274572282e-01 5.015000017562216392e-05 8.564369808719667552e-12 0.000000000000000000e+00 0.000000000000000000e+00 +5.999999999999999778e-01 3.601497897086659572e-01 1.861496016761532424e-01 9.097603490253185112e-05 2.656128200553507587e-11 0.000000000000000000e+00 0.000000000000000000e+00 +6.099999999999999867e-01 3.394379220485379545e-01 2.154485351236863355e-01 1.604523081202781538e-04 7.906276363770337246e-11 0.000000000000000000e+00 0.000000000000000000e+00 +6.199999999999999956e-01 3.171714061995755674e-01 2.460819864629658904e-01 2.753912749512043212e-04 2.261623034735574779e-10 0.000000000000000000e+00 0.000000000000000000e+00 +6.300000000000000044e-01 2.937800998367049998e-01 2.775907325507723233e-01 4.604140505979135815e-04 6.224870767506286974e-10 0.000000000000000000e+00 0.000000000000000000e+00 +6.400000000000000133e-01 2.697144812642079392e-01 3.094847895376878766e-01 7.504768671437603636e-04 1.650522107997988509e-09 0.000000000000000000e+00 0.000000000000000000e+00 +6.500000000000000222e-01 2.454242469633750034e-01 3.412619728228676319e-01 1.193714293979784543e-03 4.220799766222615784e-09 0.000000000000000000e+00 0.000000000000000000e+00 +6.600000000000000311e-01 2.213384108026694164e-01 3.724248082580806640e-01 1.854429052641198795e-03 1.042162672717165301e-08 0.000000000000000000e+00 0.000000000000000000e+00 +6.700000000000000400e-01 1.978482402854722932e-01 4.024947164274449429e-01 2.815970867028899302e-03 2.487211160489419456e-08 3.348204782605323907e-17 0.000000000000000000e+00 +6.800000000000000488e-01 1.752939689160500913e-01 4.310228690679417940e-01 4.183165543133970064e-03 5.743543506937962249e-08 6.777912242156971001e-17 0.000000000000000000e+00 +6.900000000000000577e-01 1.539557856234219924e-01 4.575976142393253232e-01 6.083895557180169812e-03 1.284624891195774969e-07 3.085718799889921458e-16 0.000000000000000000e+00 +7.000000000000000666e-01 1.340491780397383981e-01 4.818488131742932890e-01 8.669410423207461053e-03 2.785652001697901804e-07 1.248136954195448217e-15 0.000000000000000000e+00 +7.099999999999999645e-01 1.157243407682299330e-01 5.034497692372071898e-01 1.211297199850875674e-02 5.861960871976178571e-07 4.520612173364571743e-15 0.000000000000000000e+00 +7.199999999999999734e-01 9.906908180325493807e-02 5.221176213873008898e-01 1.660652401890975668e-02 1.198182336259976755e-06 1.586130685546551663e-14 0.000000000000000000e+00 +7.299999999999999822e-01 8.411448308133587237e-02 5.376131084736023302e-01 2.235521580753587964e-02 2.380963803790221850e-06 5.355935762190425332e-14 0.000000000000000000e+00 +7.399999999999999911e-01 7.084249342384477122e-02 5.497404978324285096e-01 2.956979726537413769e-02 4.603694687655575934e-06 1.739585492590330683e-13 0.000000000000000000e+00 +7.500000000000000000e-01 5.919464147614116045e-02 5.583482432664836903e-01 3.845711711715178033e-02 8.668551435002927783e-06 5.440519998929155855e-13 0.000000000000000000e+00 +7.600000000000000089e-01 4.908113325887875078e-02 5.633306385784786485e-01 4.920917355332636578e-02 1.590831770127603740e-05 1.640098818002154181e-12 0.000000000000000000e+00 +7.700000000000000178e-01 4.038972126963992493e-02 5.646304145716388723e-01 6.199135756487455379e-02 2.847609961672602441e-05 4.771559347140737470e-12 0.000000000000000000e+00 +7.800000000000000266e-01 3.299387779642509039e-02 5.622419392805708682e-01 7.693066766536615919e-02 4.975605239389383909e-05 1.340984640895080407e-11 0.000000000000000000e+00 +7.900000000000000355e-01 2.675995522130884818e-02 5.562144640312042254e-01 9.410473960353642198e-02 8.492613821850217477e-05 3.644076367341346881e-11 0.000000000000000000e+00 +8.000000000000000444e-01 2.155315592808926956e-02 5.466547389784724986e-01 1.135325149284951984e-01 1.417027899099369457e-04 9.584228925483725884e-11 0.000000000000000000e+00 +8.100000000000000533e-01 1.724225413625518621e-02 5.337283120040172690e-01 1.351672682569173556e-01 2.312914228756922049e-04 2.441905895621031500e-10 0.000000000000000000e+00 +8.200000000000000622e-01 1.370310631446661383e-02 5.176589189564108073e-01 1.588925367334704242e-01 3.695546593339714457e-04 6.032339399339098914e-10 0.000000000000000000e+00 +8.300000000000000711e-01 1.082105440739568325e-02 4.987255519052841701e-01 1.845212680151044615e-01 5.783910087925287023e-04 1.446104618044234327e-09 0.000000000000000000e+00 +8.399999999999999689e-01 8.492368483615756955e-03 4.772570262102269756e-01 2.117982528241139084e-01 8.872905102245751520e-04 3.366910160836069286e-09 0.000000000000000000e+00 +8.499999999999999778e-01 6.624896028738718780e-03 4.536241228125140745e-01 2.404056641564599750e-01 1.335001538209432690e-03 7.619585293097197538e-09 0.000000000000000000e+00 +8.599999999999999867e-01 5.138088405274474427e-03 4.282296256229109477e-01 2.699713143923895275e-01 1.971206986286263250e-03 1.677408889534854048e-08 0.000000000000000000e+00 +8.699999999999999956e-01 3.962565662767755965e-03 4.014967764109840798e-01 3.000790842252494817e-01 2.858072067107956474e-03 3.594878393675884972e-08 0.000000000000000000e+00 +8.800000000000000044e-01 3.039363303081291188e-03 3.738568104795802483e-01 3.302808850321978240e-01 4.071494783317450121e-03 7.505634360454145076e-08 0.000000000000000000e+00 +8.900000000000000133e-01 2.318982557617298070e-03 3.457363046782563343e-01 3.601094908753040835e-01 5.701869059379470125e-03 1.527775598766901995e-07 0.000000000000000000e+00 +9.000000000000000222e-01 1.760342204033970084e-03 3.175450639159804189e-01 3.890916106036985123e-01 7.854164751648755674e-03 3.033910842837618412e-07 0.000000000000000000e+00 +9.100000000000000311e-01 1.329707117851893893e-03 2.896652009065096012e-01 4.167606505186060573e-01 1.064714242860430662e-02 5.881805399220220047e-07 3.987939362915592498e-17 +9.200000000000000400e-01 9.996480514146239768e-04 2.624419405635543545e-01 4.426687258288088955e-01 1.421155625060968597e-02 1.113956680258438677e-06 1.599438325452657675e-16 +9.300000000000000488e-01 7.480693616013980992e-04 2.361765232463523267e-01 4.663975960230017925e-01 1.868725529415628597e-02 2.062305440089852803e-06 4.809562789568694136e-16 +9.400000000000000577e-01 5.573268799382214865e-04 2.111214090595887882e-01 4.875683089034889561e-01 2.421916922979048745e-02 3.734515060670443504e-06 1.526104689638597213e-15 +9.500000000000000666e-01 4.134467924763931949e-04 1.874778164993770035e-01 5.058494283747770881e-01 3.095225256719253207e-02 6.618720710238419233e-06 4.706782123258309453e-15 +9.599999999999999645e-01 3.054480002419670843e-04 1.653954777146330324e-01 5.209637857912046144e-01 3.902555464459427775e-02 1.148754977200705858e-05 1.409958892945934097e-14 +9.699999999999999734e-01 2.247645639621065523e-04 1.449743701667425277e-01 5.326937331039534040e-01 4.856567071110100275e-02 1.953629700688028575e-05 4.097287642725277212e-14 +9.799999999999999822e-01 1.647610477458523871e-04 1.262680966095084123e-01 5.408848924670576208e-01 5.967990317940288780e-02 3.257316063442919438e-05 1.156264860980133771e-13 +9.899999999999999911e-01 1.203314172321944019e-04 1.092885338187701977e-01 5.454483989827731971e-01 7.244951283445183465e-02 5.327399336475601528e-05 3.169966378707302841e-13 +1.000000000000000000e+00 8.757120797261259363e-05 9.401135343377249598e-02 5.463616299897278150e-01 8.692346113349824765e-02 8.551395665096365236e-05 8.445631829787452869e-13 +1.010000000000000009e+00 6.351260558210720388e-05 8.038203093412973899e-02 5.436674144371487216e-01 1.031130335113659702e-01 1.347869605537307329e-04 2.188292442234903755e-12 +1.020000000000000018e+00 4.591258022744503978e-05 6.832199474986185017e-02 5.374717262206131219e-01 1.209876901816309969e-01 2.087203879984701250e-04 5.517788499267541666e-12 +1.030000000000000027e+00 3.308506691439644051e-05 5.773461963661813412e-02 5.279398896906133398e-01 1.404724192159305385e-01 3.176869911565202687e-04 1.354907999599729549e-11 +1.040000000000000036e+00 2.376920947954347198e-05 4.851082969953900148e-02 5.152913643308603131e-01 1.614467736341936299e-01 4.755078334668812450e-04 3.242073798140482060e-11 +1.050000000000000044e+00 1.702676875958501860e-05 4.053414051274251140e-02 4.997932261228877904e-01 1.837456689052915371e-01 7.002298178478492518e-04 7.564456142563883764e-11 +1.060000000000000053e+00 1.216285246587368811e-05 3.368503150020914910e-02 4.817525201847516758e-01 2.071619096456787934e-01 1.014949105503201027e-03 1.722036485676948522e-10 +1.070000000000000062e+00 8.665105188461925210e-06 2.784459530287804185e-02 4.615077162574321989e-01 2.314503141294012023e-01 1.448638376333029982e-03 3.827163644781810072e-10 +1.080000000000000071e+00 6.157374138353131114e-06 2.289745779829197372e-02 4.394195485514988397e-01 2.563332207838229237e-01 2.036922560021247729e-03 8.308747909735498940e-10 +1.090000000000000080e+00 4.364628584036829025e-06 1.873399954403896436e-02 4.158615581335344813e-01 2.815070981489081747e-01 2.822735823495265729e-03 1.763051501130930938e-09 +1.100000000000000089e+00 3.086558380169819119e-06 1.525193649955695376e-02 3.912106747804782181e-01 3.066499420314597324e-01 3.856783857886315284e-03 3.658523730880318455e-09 +1.110000000000000098e+00 2.177816382631798547e-06 1.235733554530114506e-02 3.658381735243608768e-01 3.314291310907604426e-01 5.197731489308821465e-03 7.428353216209023155e-09 +1.120000000000000107e+00 1.533311608890686663e-06 9.965149701945600139e-03 3.401013187109006575e-01 3.555094225198551228e-01 6.912037758511026773e-03 1.476567456409793133e-08 +1.130000000000000115e+00 1.077317174939318544e-06 7.999360496998732598e-03 3.143359672256667015e-01 3.785607984628082123e-01 9.073369868121048537e-03 2.874819218854707111e-08 +1.140000000000000124e+00 7.554420044525390091e-07 6.392812182772026133e-03 2.888503462911807262e-01 4.002659156940988616e-01 1.176154416230164659e-02 5.485055610683904830e-08 +1.150000000000000133e+00 5.287401273633696096e-07 5.086815988022990419e-03 2.639201548017506838e-01 4.203269598298132181e-01 1.506096621093475953e-02 1.026067721427023607e-07 +1.159999999999999920e+00 3.694069600603872627e-07 4.030593650930917524e-03 2.397850660033362113e-01 4.384717552720807654e-01 1.905857194120165812e-02 1.882788031126817605e-07 +1.169999999999999929e+00 2.576478256172417289e-07 3.180619291396995056e-03 2.166466388580143010e-01 4.544590285607395530e-01 2.384130565034060789e-02 3.390455127107025517e-07 +1.179999999999999938e+00 1.794082257805426176e-07 2.499908159783769887e-03 1.946675804952582300e-01 4.680827626086341287e-01 2.949320607678780973e-02 5.994341707921660711e-07 +1.189999999999999947e+00 1.247347553751315127e-07 1.957290636282447288e-03 1.739722466174895843e-01 4.791756108173245710e-01 3.609220554043009871e-02 1.040981052976354072e-06 +1.199999999999999956e+00 8.659556137888371261e-08 1.526700523074696380e-03 1.546482232702307003e-01 4.876113632164771339e-01 4.370677642250402062e-02 1.776430424561485100e-06 +1.209999999999999964e+00 6.003431641129191042e-08 1.186498456821617666e-03 1.367488034117998463e-01 4.933064726950170398e-01 5.239258109886594378e-02 2.980158058868660208e-06 +1.219999999999999973e+00 4.156531527405939585e-08 9.188443069215798805e-04 1.202961554213368978e-01 4.962206600834439540e-01 6.218929355632565187e-02 4.916922652659156695e-06 +1.229999999999999982e+00 2.874226537364183563e-08 7.091267350689117992e-04 1.052849772272313883e-01 4.963566246648489222e-01 7.311776179357656891e-02 7.981480093998342935e-06 +1.239999999999999991e+00 1.985176979539427896e-08 5.454536114729735975e-04 9.168643748116768466e-02 4.937588939219547668e-01 8.517766919146980975e-02 1.275200101938270604e-05 +1.250000000000000000e+00 1.369603324259006201e-08 4.182035971692599718e-04 7.945222197468297665e-02 4.885118548082269530e-01 9.834583083402068104e-02 2.006055534552998338e-05 +1.260000000000000009e+00 9.439214314960034364e-09 3.196367654093523682e-04 6.851852685803538900e-02 4.807370197047131088e-01 1.125752287815075109e-01 3.108409740326714259e-05 +1.270000000000000018e+00 6.499046789844780571e-09 2.435604924737936846e-04 5.880986771019022091e-02 4.705895938211596130e-01 1.277948509127032062e-01 4.745931905434854099e-05 +1.280000000000000027e+00 4.470568134183769465e-09 1.850458460820321276e-04 5.024260282436234654e-02 4.582544266593162052e-01 1.439103541662635211e-01 7.142434700938892834e-05 +1.290000000000000036e+00 3.072562195846065087e-09 1.401891957253903313e-04 4.272809822220174913e-02 4.439414471605867551e-01 1.608055281600602460e-01 1.059894588790527889e-04 +1.300000000000000044e+00 2.110029059468151354e-09 1.059136380165031282e-04 3.617548928941841102e-02 4.278806987493339320e-01 1.783444926099220507e-01 1.551377093322584737e-04 +1.310000000000000053e+00 1.447938509207935114e-09 7.980496463201170300e-05 3.049401836180056641e-02 4.103171049105429069e-01 1.963745247767608171e-01 2.240545501267006835e-04 +1.320000000000000062e+00 9.929082461189637924e-10 5.997721296292581636e-05 2.559494832978258944e-02 3.915051065295243049e-01 2.147293838621967266e-01 3.193831943909459549e-04 +1.330000000000000071e+00 6.804373241412314845e-10 4.496326070311629057e-05 2.139306900207567017e-02 3.717033175897766495e-01 2.332329796163886138e-01 4.494996689140518214e-04 +1.340000000000000080e+00 4.660249166082903513e-10 3.362640219784691930e-05 1.780782552932241164e-02 3.511693450524774884e-01 2.517032233212468939e-01 6.247983335022933580e-04 +1.350000000000000089e+00 3.190020323059575847e-10 2.508933740362713548e-05 1.476410684746647280e-02 3.301549114641024740e-01 2.699559007785266584e-01 8.579753047108228418e-04 +1.360000000000000098e+00 2.182537620060257098e-10 1.867748643680915176e-05 1.219273725074603715e-02 3.089014052730736370e-01 2.878084181409205633e-01 1.164293945402312264e-03 +1.370000000000000107e+00 1.492567491773983311e-10 1.387399592588429562e-05 1.003071635392241250e-02 2.876359647305094525e-01 3.050832908439197744e-01 1.561813664434939146e-03 +1.380000000000000115e+00 1.020304123234632149e-10 1.028421700879462491e-05 8.221252415421138535e-03 2.665681777852352274e-01 3.216112714711567566e-01 2.071561034744768669e-03 +1.390000000000000124e+00 6.972163412658023648e-11 7.607803539589589622e-06 6.713631836315738302e-03 2.458874540373246487e-01 3.372340417499066212e-01 2.717621007763046641e-03 +1.400000000000000133e+00 4.762837548229303302e-11 5.616901495429025980e-06 5.462964162213741412e-03 2.257610972106653402e-01 3.518064245725837647e-01 3.527126071955804382e-03 +1.409999999999999920e+00 3.252686654653270964e-11 4.139177976849373141e-06 4.429837577211066107e-03 2.063330793613646352e-01 3.651981016438504146e-01 4.530122803442502774e-03 +1.419999999999999929e+00 2.220820359598883994e-11 3.044673545841167993e-06 3.579915100585794388e-03 1.877234926355634825e-01 3.772948490350265804e-01 5.759298520800725830e-03 +1.429999999999999938e+00 1.515991523648943325e-11 2.235658889103976142e-06 2.883496809241144730e-03 1.700286320654501859e-01 3.879993250034428631e-01 7.249555695220221210e-03 +1.439999999999999947e+00 1.034683098626099816e-11 1.638840311522065044e-06 2.315068665998265638e-03 1.533216445716258092e-01 3.972314608487446108e-01 9.037428252682576379e-03 +1.449999999999999956e+00 7.060922971419358754e-12 1.199392806151284170e-06 1.852854117469739364e-03 1.376536656025731664e-01 4.049285158375934279e-01 1.116034166477316084e-02 +1.459999999999999964e+00 4.818095350094647536e-12 8.764086843136990109e-07 1.478380653643590918e-03 1.230553559195996793e-01 4.110448613842956900e-01 1.365572735324401508e-02 +1.469999999999999973e+00 3.287475050906292697e-12 6.394379240018318150e-07 1.176070059350544858e-03 1.095387468405975423e-01 4.155515582622911763e-01 1.656001091470735501e-02 +1.479999999999999982e+00 2.243028356765281869e-12 4.658670434431361876e-07 9.328581577592964628e-04 9.709930243004447070e-02 4.184357845621698435e-01 1.990750241626376357e-02 +1.489999999999999991e+00 1.530410370860696685e-12 3.389395278792606130e-07 7.378474379748105241e-04 8.571811109958503427e-02 4.197001625968400651e-01 2.372922490270214929e-02 +1.500000000000000000e+00 1.044227620301937164e-12 2.462652922192765168e-07 5.819940399045956444e-04 7.536412615730746223e-02 4.193620213150490716e-01 2.805172369587968437e-02 +1.510000000000000009e+00 7.125319208727499156e-13 1.787016081457706795e-07 4.578290922701090714e-04 6.599638423629203277e-02 4.174526183660571266e-01 3.289590353503257791e-02 +1.520000000000000018e+00 4.862454061953004069e-13 1.295152431329936622e-07 3.592133083616361297e-04 5.756614145515785014e-02 4.140163340064137443e-01 3.827594270030442586e-02 +1.530000000000000027e+00 3.318641881800761590e-13 9.375680550089078047e-08 2.811229803902905123e-04 5.001887886674720451e-02 4.091098386070023962e-01 4.419833273351361780e-02 +1.540000000000000036e+00 2.265235929570130444e-13 6.779473330279948552e-08 2.194650195892666104e-04 4.329614056732959682e-02 4.028012273977749635e-01 5.066108915181868205e-02 +1.550000000000000044e+00 1.546572594408821060e-13 4.896903398857068421e-08 1.709184117419885595e-04 3.733717920593891682e-02 3.951691107749291110e-01 5.765317276005898356e-02 +1.560000000000000053e+00 1.055972136085097858e-13 3.533460021916003750e-08 1.327993480889430187e-04 3.208039411088316195e-02 3.863016461815973468e-01 6.515415310369479518e-02 +1.570000000000000062e+00 7.212787436823881470e-14 2.547135196869689815e-08 1.029473073417947572e-04 2.746455652191652150e-02 3.762954981625536433e-01 7.313413572006240149e-02 +1.580000000000000071e+00 4.926561120850808183e-14 1.834410667434065353e-08 7.962947006486899347e-05 2.342982428523900443e-02 3.652547163437112610e-01 8.155396371542289469e-02 +1.590000000000000080e+00 3.366389966685696226e-14 1.319936283749637620e-08 6.146101257826301601e-05 1.991855474509214227e-02 3.532895262658639624e-01 9.036569246971370983e-02 +1.600000000000000089e+00 2.300688167185030099e-14 9.489422346087647066e-09 4.733903027706718483e-05 1.687592945220024732e-02 3.405150345524147748e-01 9.951332462804229895e-02 +1.610000000000000098e+00 1.574686925727820699e-14 6.816714197451711120e-09 3.638806161764795288e-05 1.425040778032774305e-02 3.270498570999844645e-01 1.089337816339119580e-01 +1.620000000000000107e+00 1.076088606378924714e-14 4.893014710945852010e-09 2.791541030034892261e-05 1.199402872609029759e-02 3.130146861450396889e-01 1.185580784828221823e-01 +1.630000000000000115e+00 7.373320916393947496e-15 3.509629230139760943e-09 2.137468452168460057e-05 1.006258122764231919e-02 2.985308185410810999e-01 1.283126606102086287e-01 +1.640000000000000124e+00 5.039707156606339832e-15 2.515625287883645411e-09 1.633618184121517184e-05 8.415663457889582463e-03 2.837186728516735146e-01 1.381208562261167228e-01 +1.650000000000000133e+00 3.456878447189422070e-15 1.801967357392948972e-09 1.246294195874585876e-05 7.016650915740045569e-03 2.686963265375161281e-01 1.479043941736273293e-01 +1.660000000000000142e+00 2.361140339769211921e-15 1.289971153793733803e-09 9.491465192571795135e-06 5.832591937290134212e-03 2.535781063595277107e-01 1.575849365697442606e-01 +1.669999999999999929e+00 1.617506550254850546e-15 9.229126500328865171e-10 7.216250793272702641e-06 4.834047646692864360e-03 2.384732650603055559e-01 1.670855769923690337e-01 +1.679999999999999938e+00 1.120818448326204615e-15 6.599389111110727231e-10 5.477446552559663205e-06 3.994891513508192112e-03 2.234847754947852649e-01 1.763322585837637235e-01 +1.689999999999999947e+00 7.718317718684845388e-16 4.716545757365531850e-10 4.151020319190942675e-06 3.292081707036350561e-03 2.087082698534345193e-01 1.852550718252251039e-01 +1.699999999999999956e+00 5.205557371795253563e-16 3.369269462820051816e-10 3.140966303118730650e-06 2.705417442489946919e-03 1.942311467503382849e-01 1.937893985018218634e-01 +1.709999999999999964e+00 3.625923350094396720e-16 2.405762177237260559e-10 2.373145988632483469e-06 2.217288579870357445e-03 1.801318630912998042e-01 2.018768760801259443e-01 +1.719999999999999973e+00 2.516385783948776405e-16 1.717071357389781900e-10 1.790436743033715327e-06 1.812425923627207806e-03 1.664794211831775173e-01 2.094661649151489391e-01 +1.729999999999999982e+00 1.649016793794969713e-16 1.225055812872878406e-10 1.348922463496005526e-06 1.477658020001481991e-03 1.533330548865708964e-01 2.165135089515941580e-01 +1.739999999999999991e+00 1.215454052057018530e-16 8.737113186617575940e-11 1.014911453478866216e-06 1.201678783392800143e-03 1.407421121164291467e-01 2.229830884966831628e-01 +1.750000000000000000e+00 7.961828697422301127e-17 6.229269087776454313e-11 7.626086451560616175e-07 9.748290136706607139e-04 1.287461249800961882e-01 2.288471708842831631e-01 +1.760000000000000009e+00 5.866150746364105615e-17 4.439923292318511293e-11 5.723036423002075206e-07 7.888937929441010430e-04 1.173750535697218461e-01 2.340860711616196688e-01 +1.770000000000000018e+00 3.841093788301158207e-17 3.163695772718413247e-11 4.289640513595782200e-07 6.369168648361575071e-04 1.066496850861715084e-01 2.386879401270684264e-01 +1.780000000000000027e+00 1.885957619321147712e-17 2.253753302325919247e-11 3.211462555028557282e-07 5.130323880938954164e-04 9.658216668239595626e-02 2.426484010251678258e-01 +1.790000000000000036e+00 1.851625859457894989e-17 1.605170754312330251e-11 2.401540797277149262e-07 4.123139021731565281e-04 8.717664822342960362e-02 2.459700589316318187e-01 +1.800000000000000044e+00 1.817561311184611855e-17 1.143011599325978046e-11 1.793904769781704556e-07 3.306399261469550560e-04 7.843001005207206333e-02 2.486619083708357936e-01 +1.810000000000000053e+00 0.000000000000000000e+00 8.137769864236968103e-12 1.338590958179008190e-07 2.645753142235484604e-04 7.033265075436209712e-02 2.507386650894823377e-01 +1.820000000000000062e+00 0.000000000000000000e+00 5.792888185064208087e-12 9.978192334122564621e-08 2.112672920838356422e-04 6.286931072545985655e-02 2.522200472933634474e-01 +1.830000000000000071e+00 0.000000000000000000e+00 4.123163504158291035e-12 7.430659412046685338e-08 1.683549800624304976e-04 5.601990890292645603e-02 2.531300301985314749e-01 +1.840000000000000080e+00 0.000000000000000000e+00 2.934404509437793404e-12 5.528279528550251697e-08 1.338911554219225338e-04 4.976037220137410205e-02 2.534960956291138490e-01 +1.850000000000000089e+00 0.000000000000000000e+00 2.088196987818810075e-12 4.109179192465435618e-08 1.062750019901083088e-04 4.406343978443494347e-02 2.533484957914069469e-01 +1.860000000000000098e+00 0.000000000000000000e+00 1.485930496827888161e-12 3.051669906914862113e-08 8.419462861343407956e-05 3.889942718470752042e-02 2.527195474423744037e-01 +1.870000000000000107e+00 0.000000000000000000e+00 1.057331050114870163e-12 2.264394104089137764e-08 6.657819755548245592e-05 3.423693827886707675e-02 2.516429696116462833e-01 +1.880000000000000115e+00 0.000000000000000000e+00 7.523348095324758579e-13 1.678853196886138342e-08 5.255258132893701560e-05 3.004351610978756720e-02 2.501532749718995974e-01 +1.890000000000000124e+00 0.000000000000000000e+00 5.353109911981471400e-13 1.243751461026292355e-08 4.140855440294176831e-05 2.628622640779162967e-02 2.482852220025697776e-01 +1.900000000000000133e+00 0.000000000000000000e+00 3.809073234244706527e-13 9.207214654667112586e-09 3.257161919934678870e-05 2.293217030971014814e-02 2.460733323509897985e-01 +1.910000000000000142e+00 0.000000000000000000e+00 2.710392715305241659e-13 6.810986302454714229e-09 2.557765954269661335e-05 1.994892514159541178e-02 2.435514753331225191e-01 +1.919999999999999929e+00 0.000000000000000000e+00 1.928876693263395471e-13 5.034911002652640679e-09 2.005270613143748552e-05 1.730491417568628953e-02 2.407525193791170692e-01 +1.929999999999999938e+00 0.000000000000000000e+00 1.372712034894855376e-13 3.719515090093346339e-09 1.569618546753373967e-05 1.496970797228164285e-02 2.377080484413994221e-01 +1.939999999999999947e+00 0.000000000000000000e+00 9.770355550497070407e-14 2.746034365719055889e-09 1.226710458016934130e-05 1.291426126829763044e-02 2.344481399505382035e-01 +1.949999999999999956e+00 0.000000000000000000e+00 6.954095794421101587e-14 2.026109074851652458e-09 9.572697970727701990e-06 1.111109038716246757e-02 2.310011998168181035e-01 +1.959999999999999964e+00 0.000000000000000000e+00 4.950628795425162859e-14 1.494062259318707004e-09 7.459130114271636743e-06 9.534396841737206515e-03 2.273938492112568543e-01 +1.969999999999999973e+00 0.000000000000000000e+00 3.524659622859073820e-14 1.101121192966155883e-09 5.803906544438261252e-06 8.160143214006465237e-03 2.236508573878721873e-01 +1.979999999999999982e+00 0.000000000000000000e+00 2.510052338465078198e-14 8.110980483030642230e-10 4.509699239154103763e-06 6.966087558734339324e-03 2.197951145927241889e-01 +1.989999999999999991e+00 0.000000000000000000e+00 1.787618953549825793e-14 5.971650809132615970e-10 3.499338098546060994e-06 5.931782532330697778e-03 2.158476391050443144e-01 +2.000000000000000000e+00 0.000000000000000000e+00 1.273688180077510876e-14 4.394495211068296458e-10 2.711760254268619611e-06 5.038545232619322418e-03 2.118276126313043406e-01 +2.010000000000000231e+00 0.000000000000000000e+00 9.074433345977802960e-15 3.232418849680934038e-10 2.098743320960148623e-06 4.269403388610665089e-03 2.077524385852534128e-01 +2.020000000000000018e+00 0.000000000000000000e+00 6.465585659239437314e-15 2.376624233325534827e-10 1.622278067577374789e-06 3.609023097719445215e-03 2.036378181992327119e-01 +2.030000000000000249e+00 0.000000000000000000e+00 4.609785513617459268e-15 1.746697314412375089e-10 1.252460916077393156e-06 3.043622803520505942e-03 1.994978398914793449e-01 +2.040000000000000036e+00 0.000000000000000000e+00 3.284826272623138873e-15 1.283242761155044399e-10 9.658077117091639874e-07 2.560877668325015153e-03 1.953450778319217873e-01 +2.049999999999999822e+00 0.000000000000000000e+00 2.339705888585772235e-15 9.424179696584112349e-11 7.439078636058203301e-07 2.149817945345193666e-03 1.911906961808303718e-01 +2.060000000000000053e+00 0.000000000000000000e+00 1.666805060701360910e-15 6.918805073074525467e-11 5.723526929591603475e-07 1.800724414306093413e-03 1.870445560008906216e-01 +2.069999999999999840e+00 0.000000000000000000e+00 1.187539574586914804e-15 5.077857796472893261e-11 4.398840709930952418e-07 1.505023427061821968e-03 1.829153223483407364e-01 +2.080000000000000071e+00 0.000000000000000000e+00 8.496324603286173785e-16 3.725638338540987369e-11 3.377195572034839594e-07 1.255183627141797037e-03 1.788105695213538238e-01 +2.089999999999999858e+00 0.000000000000000000e+00 6.049865602427579646e-16 2.732752590375000800e-11 2.590185875063445521e-07 1.044615966719344155e-03 1.747368828759742199e-01 +2.100000000000000089e+00 0.000000000000000000e+00 4.381004284893701990e-16 2.003953265642662089e-11 1.984611026675992799e-07 8.675782507414362202e-04 1.706999560068622190e-01 +2.109999999999999876e+00 0.000000000000000000e+00 3.066985189116692570e-16 1.469167691858605536e-11 1.519155959001551035e-07 7.190850928289851170e-04 1.667046824296924135e-01 +2.120000000000000107e+00 0.000000000000000000e+00 2.176261587658125932e-16 1.076859572356316944e-11 1.161781079219726925e-07 5.948238709419178356e-04 1.627552411941456667e-01 +2.129999999999999893e+00 0.000000000000000000e+00 1.592189798993372198e-16 7.891476446737450005e-12 8.876738851909710868e-08 4.910770210104920940e-04 1.588551761025905895e-01 +2.140000000000000124e+00 0.000000000000000000e+00 1.121524223927143901e-16 5.781992255128146365e-12 6.776442766957509553e-08 4.046508009077945086e-04 1.550074684124292113e-01 +2.149999999999999911e+00 0.000000000000000000e+00 8.412574261988304456e-17 4.235680665465538987e-12 5.168696472056352329e-08 3.328104916289441047e-04 1.512146030632391669e-01 +2.160000000000000142e+00 0.000000000000000000e+00 5.741314252104399250e-17 3.102450386164660077e-12 3.939151671961303739e-08 2.732218732214534030e-04 1.474786285972695399e-01 +2.169999999999999929e+00 0.000000000000000000e+00 3.997500656956318079e-17 2.272099423400832132e-12 2.999701609687260286e-08 2.238987155308227062e-04 1.438012110378352193e-01 +2.180000000000000160e+00 0.000000000000000000e+00 3.116770415974760792e-17 1.663786591529606892e-12 2.282538529447591215e-08 1.831559538207494378e-04 1.401836820589633104e-01 +2.189999999999999947e+00 0.000000000000000000e+00 2.277789079928866168e-17 1.218207155727556169e-12 1.735536244938146358e-08 1.495681725784303486e-04 1.366270818254572417e-01 +2.200000000000000178e+00 0.000000000000000000e+00 1.479418177854265644e-17 8.918894397921118508e-13 1.318667633675012942e-08 1.219329933526162521e-04 1.331321969092713331e-01 +2.209999999999999964e+00 0.000000000000000000e+00 1.441056636940837695e-17 6.529283516315241764e-13 1.001229077707459566e-08 9.923895066120309329e-05 1.296995936993258214e-01 +2.220000000000000195e+00 0.000000000000000000e+00 7.017180878524692740e-18 4.779682583598309175e-13 7.596930531637991973e-09 8.063744058267207813e-05 1.263296477208695201e-01 +2.229999999999999982e+00 0.000000000000000000e+00 6.832756214583432278e-18 3.498712819677446630e-13 5.760489451858984676e-09 6.541833674581619830e-05 1.230225692700604029e-01 +2.240000000000000213e+00 0.000000000000000000e+00 6.651980022536628490e-18 2.560945788876376436e-13 4.365227426665486635e-09 5.298888558314323672e-05 1.197784257520210921e-01 +2.250000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.874590403134975516e-13 3.305903318390574361e-09 4.285551482304234656e-05 1.165971610883288351e-01 +2.260000000000000231e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.372097122751739994e-13 2.502179923832708894e-09 3.460821452940601739e-05 1.134786125344207919e-01 +2.270000000000000018e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.004356911031548712e-13 1.892784486300859568e-09 2.790717714340951842e-05 1.104225252201533475e-01 +2.280000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.351530704690434846e-14 1.431024237201164453e-09 2.247141081932049278e-05 1.074285646988426962e-01 +2.290000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.381670415028282227e-14 1.081346184203956386e-09 1.806906800624292621e-05 1.044963277624186559e-01 +2.300000000000000266e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.939346156416903352e-14 8.167008950539859823e-10 1.450925806032794156e-05 1.016253517534581041e-01 +2.310000000000000053e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.883983432968017991e-14 6.165243236779424460e-10 1.163513820918934384e-05 9.881512257932514864e-02 +2.319999999999999840e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.111414100763760632e-14 4.651944504886763807e-10 9.318101116486660250e-06 9.606508160971728716e-02 +2.330000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.545793365940586551e-14 3.508520326818904922e-10 7.452899416447807511e-06 9.337463161680942259e-02 +2.339999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.131945748820939697e-14 2.645005037302947090e-10 5.953567809983981724e-06 9.074314189698128030e-02 +2.350000000000000089e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.291586680549370729e-15 1.993194796579811860e-10 4.750021615578641666e-06 8.816995269483543507e-02 +2.359999999999999876e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.072113698125966354e-15 1.501416795207547126e-10 3.785227085942417415e-06 8.565437903382781826e-02 +2.370000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.447574203944711422e-15 1.130546621776036549e-10 3.012853412633119830e-06 8.319571404323970742e-02 +2.379999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.256152314445057105e-15 8.509784987104835391e-11 2.395329251639868255e-06 8.079323185835433907e-02 +2.390000000000000124e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.386399670585543391e-15 6.403222869540918126e-11 1.902237935776897606e-06 7.844619015938820994e-02 +2.399999999999999911e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.750172859952802725e-15 4.816544195615067664e-11 1.508995428454159384e-06 7.615383240488161898e-02 +2.410000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.280196765776664886e-15 3.621897812579862607e-11 1.195763653279049312e-06 7.391538980669956627e-02 +2.419999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.397218005304305507e-16 2.722745564797629526e-11 9.465592401268478653e-07 7.173008308642601916e-02 +2.430000000000000160e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.876955294791007758e-16 2.046231480086412083e-11 7.485240902358236558e-07 6.959712404660257923e-02 +2.439999999999999947e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.059675803069522445e-16 1.537395235649882171e-11 5.913296031096073117e-07 6.751571698485774042e-02 +2.450000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.707880514319666554e-16 1.154797211605313668e-11 4.666910401398046071e-07 6.548505997436984694e-02 +2.459999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.714419233202488701e-16 8.672040667114443861e-12 3.679724282153279499e-07 6.350434603021394564e-02 +2.470000000000000195e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.982434846783914486e-16 6.510859497425683577e-12 2.898657250745560432e-07 6.157276417784886269e-02 +2.479999999999999982e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.457916041895565560e-16 4.887226155642315448e-12 2.281307618698030984e-07 5.968950043724473298e-02 +2.490000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.059807407408892020e-16 3.667749360184711401e-12 1.793848216311360020e-07 5.785373873382781973e-02 +2.500000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.780554350927864103e-17 2.752041206136252714e-12 1.409326717600859481e-07 5.606466174549552123e-02 +2.510000000000000231e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.729359676538773614e-17 2.064592852155514961e-12 1.106295018367351923e-07 5.432145169334207102e-02 +2.520000000000000018e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.381776429573893385e-17 1.548610346924291867e-12 8.677057519319773001e-08 5.262329108240897807e-02 +2.530000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.112308996161187046e-17 1.161411859982025926e-12 6.800252739898963702e-08 5.096936339766884594e-02 +2.540000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.191975801428646355e-17 8.709021255748708052e-13 5.325217421360005887e-08 4.935885375955084697e-02 +2.550000000000000266e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.591759764419218979e-17 6.529743434929926783e-13 4.166945754729868309e-08 4.779094954256773997e-02 +2.560000000000000053e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.284108195950185917e-17 4.895225900273460528e-13 3.258178784067368374e-08 4.626484095999987972e-02 +2.569999999999999840e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.943101247914857710e-18 3.669451800036738461e-13 2.545755778150753704e-08 4.477972161709173338e-02 +2.580000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.216695393294470206e-18 2.750378836989766458e-13 1.987702485011119497e-08 4.333478903481657180e-02 +2.589999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.655083058496595875e-18 2.061317329132877640e-13 1.550910544222397100e-08 4.192924514593637797e-02 +2.600000000000000089e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.503320922597199382e-18 1.544774176078517278e-13 1.209290411957089347e-08 4.056229676481840768e-02 +2.609999999999999876e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.177878180876129440e-18 1.157607589481089058e-13 9.423030381865093257e-09 3.923315603226213560e-02 +2.620000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.106151263083867790e-18 8.674183977010909617e-14 7.337940480433001405e-09 3.794104083641439834e-02 +2.629999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.036436626078160077e-18 6.499491135791056170e-14 5.710692101569937623e-09 3.668517521071983090e-02 +2.640000000000000124e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.968691551524334159e-18 4.869755421850592770e-14 4.441620975357477385e-09 3.546478970974006883e-02 +2.649999999999999911e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.648760327325065136e-14 3.452546424430209179e-09 3.427912176359525914e-02 +2.660000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.733769912132806097e-14 2.682191632828153098e-09 3.312741601170805794e-02 +2.669999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.048177727754681947e-14 2.082567857831818741e-09 3.200892461648179033e-02 +2.680000000000000160e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.534610261157525913e-14 1.616122635238265706e-09 3.092290755749948356e-02 +2.689999999999999947e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.149686508592240903e-14 1.253492815999396109e-09 2.986863290680086616e-02 +2.700000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.614671972962280436e-15 9.717358808334643381e-10 2.884537708576626752e-02 +2.709999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.455051934820109232e-15 7.529390734337769394e-10 2.785242510412086481e-02 +2.720000000000000195e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.836164314657621046e-15 5.831266290921146968e-10 2.688907078155316696e-02 +2.729999999999999982e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.623538290012886062e-15 4.514019957649875984e-10 2.595461695243495015e-02 +2.740000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.715576559987804673e-15 3.492751169944023655e-10 2.504837565411618949e-02 +2.750000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.035337854910090020e-15 2.701352699961908659e-10 2.416966829926584653e-02 +2.760000000000000231e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.524802455241534417e-15 2.088383228052072319e-10 2.331782583272005646e-02 +2.770000000000000018e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.143687653236109857e-15 1.613838394573600148e-10 2.249218887329790598e-02 +2.780000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.573575666959108612e-16 1.246626669212186277e-10 2.169210784103860895e-02 +2.790000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.421013482646241153e-16 9.625976207138332541e-11 2.091694307031213840e-02 +2.800000000000000266e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.813598377077672525e-16 7.430029327161647599e-11 2.016606490925106770e-02 +2.810000000000000053e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.614895074498864502e-16 5.732960078490365620e-11 1.943885380594947629e-02 +2.819999999999999840e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.703960450424941502e-16 4.421963321993972999e-11 1.873470038186982739e-02 +2.830000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.034350533574988660e-16 3.409606368852256177e-11 1.805300549289740389e-02 +2.839999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.525514430418198638e-16 2.628156646930657304e-11 1.739318027847704812e-02 +2.850000000000000089e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.143985731144815808e-16 2.025167991601323594e-11 1.675464619926350998e-02 +2.859999999999999876e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.599433207823943862e-17 1.560049693150399015e-11 1.613683506371332496e-02 +2.870000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.469487052763263171e-17 1.201401342702921619e-11 1.553918904404079197e-02 +2.879999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.816965271603458441e-17 9.249424595513707806e-12 1.496116068195739099e-02 +2.890000000000000124e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.597675380538273801e-17 7.119062454373942420e-12 1.440221288460728083e-02 +2.899999999999999911e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.693199341766289624e-17 5.477933603789479502e-12 1.386181891110846963e-02 +2.910000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.073368953863476848e-17 4.214062419125637238e-12 1.333946235010178769e-02 +2.919999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.496177509279630431e-17 3.241006183757403507e-12 1.283463708870537928e-02 +2.930000000000000160e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.165159100801475770e-17 2.492053936385204407e-12 1.234684727326527259e-02 +2.939999999999999947e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.569972200480942165e-18 1.915746088725387656e-12 1.187560726228777640e-02 +2.950000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.339618593089206769e-18 1.472398606910043953e-12 1.142044157193064340e-02 +2.959999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.876492461195293449e-18 1.131420007945783711e-12 1.098088481442565344e-02 +2.970000000000000195e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.516014689619136218e-18 8.692350115921256453e-13 1.055648162979604988e-02 +2.979999999999999982e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.816299030620873925e-18 6.676808518021171944e-13 1.014678661122676330e-02 +2.990000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.165237816808915395e-18 5.127705371577789142e-13 9.751364224436365538e-03 +3.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.560383276220273058e-18 3.937346328552139812e-13 9.369788721393964084e-03 +3.010000000000000231e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.993832482698504114e-19 3.022829514125574972e-13 9.001644048714544169e-03 +3.020000000000000018e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.599569751652944662e-19 2.320364802305667169e-13 8.646523751060220669e-03 +3.030000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.609663134560237002e-19 1.780888036079732782e-13 8.304030869865508188e-03 +3.040000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.426335874404852505e-19 1.366648906565995881e-13 7.973777837697875945e-03 +3.050000000000000266e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.249593104444197535e-19 1.048625344859545797e-13 7.655386368555583756e-03 +3.060000000000000053e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.079229923003092215e-19 8.045057254146697992e-14 7.348487344397670873e-03 +3.070000000000000284e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.915046452725743785e-19 6.171483475754226614e-14 7.052720698191821368e-03 +3.080000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.733740900516633485e-14 6.767735293758424253e-03 +3.089999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.630576073963015200e-14 6.493188802680031381e-03 +3.100000000000000089e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.784203097343751499e-14 6.228747578537834582e-03 +3.109999999999999876e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.134990610049608915e-14 5.974086528728041363e-03 +3.120000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.636993654283359404e-14 5.728888984102836236e-03 +3.129999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.255087980089360287e-14 5.492846566672869232e-03 +3.140000000000000124e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.622023444262508414e-15 5.265659055598958388e-03 +3.149999999999999911e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.376228393573661235e-15 5.047034251693932778e-03 +3.160000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.654401720407803443e-15 4.836687840646136140e-03 +3.169999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.334020965441248550e-15 4.634343255169198240e-03 +3.180000000000000160e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.321961671158865602e-15 4.439731536273890458e-03 +3.189999999999999947e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.546210387916036112e-15 4.252591193850799138e-03 +3.200000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.951509551298544049e-15 4.072668066744149912e-03 +3.209999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.495644285966709991e-15 3.899715182490029811e-03 +3.220000000000000195e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.146302367693501740e-15 3.733492616884314611e-03 +3.229999999999999982e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.784440864424856951e-16 3.573767353538592328e-03 +3.240000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.732631345273242546e-16 3.420313143574678534e-03 +3.250000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.159797832504702935e-16 3.272910365601634439e-03 +3.260000000000000231e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.954509992190602088e-16 3.131345886111691623e-03 +3.270000000000000018e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.031262881778339936e-16 2.995412920425136964e-03 +3.280000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.321903728002282965e-16 2.864910894306957508e-03 +3.290000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.779346119587744121e-16 2.739645306371957505e-03 +3.300000000000000266e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.363921798126602872e-16 2.619427591388118291e-03 +3.310000000000000053e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.045310720429986645e-16 2.504074984582268810e-03 +3.320000000000000284e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.011516247010664999e-17 2.393410387045344454e-03 +3.330000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.145278288723690110e-17 2.287262232329181477e-03 +3.339999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.707124520588693767e-17 2.185464354320525420e-03 +3.350000000000000089e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.604467676348906764e-17 2.087855856472461535e-03 +3.359999999999999876e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.767620830385188103e-17 1.994280982468007741e-03 +3.370000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.125091140089592956e-17 1.904588988385136784e-03 +3.379999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.625366933515682138e-17 1.818634016427572372e-03 +3.390000000000000124e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.243335829660339818e-17 1.736274970280319739e-03 +3.399999999999999911e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.568292868192838719e-18 1.657375392144508049e-03 +3.410000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.288041134180035406e-18 1.581803341500953282e-03 +3.419999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.613947943652692736e-18 1.509431275647791799e-03 +3.430000000000000160e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.316954589961256297e-18 1.440135932052709908e-03 +3.439999999999999947e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.279228174557127406e-18 1.373798212556529962e-03 +3.450000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.545775114670173031e-18 1.310303069460456776e-03 +3.459999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.942174366820658675e-18 1.249539393525743490e-03 +3.470000000000000195e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.521127545592068874e-18 1.191399903910495819e-03 +3.479999999999999982e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.134873235458113793e-18 1.135781040064974545e-03 +3.490000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.014313092741668182e-19 1.082582855603159621e-03 +3.500000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.872561947392753250e-19 1.031708914165122178e-03 +3.510000000000000231e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.911402221423096914e-19 9.830661872815783710e-04 +3.520000000000000018e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.159183905177672920e-19 9.365649542489919719e-04 +3.530000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.971352177835109493e-19 8.921187040207091473e-04 +3.540000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.358235937556609512e-19 8.496440391169327684e-04 +3.550000000000000266e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.796475372080792118e-19 8.090605815536522491e-04 +3.560000000000000053e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.282792007437318676e-19 7.702908807882861367e-04 +3.570000000000000284e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.221123741823847783e-19 7.332603236773752768e-04 +3.580000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.748213699925597550e-20 6.978970464395008481e-04 +3.589999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.373344700157104883e-20 6.641318486144732764e-04 +3.600000000000000089e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.507739151206760329e-20 6.318981090079212742e-04 +3.609999999999999876e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.336951293620867474e-20 6.011317036084937084e-04 +3.620000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.173966234975691376e-20 5.717709254631863193e-04 +3.629999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.018454416309579469e-20 5.437564064946738074e-04 +3.640000000000000124e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.870098838729405082e-20 5.170310412429644916e-04 +3.649999999999999911e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.915399125123312519e-04 +3.660000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.672302189030774246e-04 +3.669999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.440512042065474993e-04 +3.680000000000000160e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.219540886405891643e-04 +3.689999999999999947e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.008920019016896041e-04 +3.700000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.808199180090044399e-04 +3.709999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.616945919146784282e-04 +3.720000000000000195e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.434744978540011599e-04 +3.729999999999999982e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.261197694083200821e-04 +3.740000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.095921412528926560e-04 +3.750000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.938548925614003549e-04 +3.760000000000000231e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.788727920382623915e-04 +3.770000000000000018e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.646120445495396285e-04 +3.780000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.510402393227918988e-04 +3.790000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.381262996860046804e-04 +3.800000000000000266e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.258404343154230280e-04 +3.810000000000000053e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.141540899619723433e-04 +3.820000000000000284e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.030399056257952133e-04 +3.830000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.924716681483835924e-04 +3.839999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.824242691917173792e-04 +3.850000000000000089e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.728736635738833786e-04 +3.859999999999999876e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.637968289306732496e-04 +3.870000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.551717266727870568e-04 +3.879999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.469772642084021851e-04 +3.890000000000000124e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.391932584010457258e-04 +3.899999999999999911e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.318004002329337956e-04 +3.910000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.247802206441653273e-04 +3.919999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.181150575184606466e-04 +3.930000000000000160e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.117880237863992903e-04 +3.939999999999999947e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.057829766174721661e-04 +3.950000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000844876725719612e-04 +3.959999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.467781438893157803e-05 +3.970000000000000195e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.954887226988028496e-05 +3.979999999999999982e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.468420815218909300e-05 +3.990000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.007097442415881782e-05 +4.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.569690416802829188e-05 +4.009999999999999787e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.155028720067656181e-05 +4.020000000000000462e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.761994698701451201e-05 +4.030000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.389521840087908475e-05 +4.040000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.036592630864834542e-05 +4.049999999999999822e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.702236495122367109e-05 +4.060000000000000497e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.385527810042758625e-05 +4.070000000000000284e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.085583996627522527e-05 +4.080000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.801563683198268288e-05 +4.089999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.532664939397855914e-05 +4.099999999999999645e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.278123578457674117e-05 +4.110000000000000320e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.037211525536551257e-05 +4.120000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.809235249975894268e-05 +4.129999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.593534259354158979e-05 +4.139999999999999680e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.389479653263693828e-05 +4.150000000000000355e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.196472734770647897e-05 +4.160000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.013943677559264344e-05 +4.169999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.841350246800420975e-05 +4.179999999999999716e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.678176571825482426e-05 +4.190000000000000391e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.523931968726843476e-05 +4.200000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.378149811048649358e-05 +4.209999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.240386446773675930e-05 +4.219999999999999751e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.110220159856760464e-05 +4.230000000000000426e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.987250174599398784e-05 +4.240000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.871095701206949778e-05 +4.250000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.761395020916761803e-05 +4.259999999999999787e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.657804609134507862e-05 +4.270000000000000462e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.559998295065271757e-05 +4.280000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.467666456376918968e-05 +4.290000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.380515247484436792e-05 +4.299999999999999822e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.298265860096709476e-05 +4.310000000000000497e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.220653814719408694e-05 +4.320000000000000284e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.147428281861089934e-05 +4.330000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.078351431742450022e-05 +4.339999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.013197811361725266e-05 +4.350000000000000533e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.517537478213390192e-06 +4.360000000000000320e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.938167768725686373e-06 +4.370000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.391950956853344026e-06 +4.379999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.877070388993910244e-06 +4.389999999999999680e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.391805770604876890e-06 +4.400000000000000355e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.934528365906822180e-06 +4.410000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.503696404854364192e-06 +4.419999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.097850689711229687e-06 +4.429999999999999716e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.715610393953746256e-06 +4.440000000000000391e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.355669046585743586e-06 +4.450000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.016790695282744467e-06 +4.459999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.697806242087593931e-06 +4.469999999999999751e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.397609945659861551e-06 +4.480000000000000426e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.115156084330508385e-06 +4.490000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.849455774438885070e-06 +4.500000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.599573938626780587e-06 +4.509999999999999787e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.364626418939012099e-06 +4.520000000000000462e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.143777229731475377e-06 +4.530000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.936235945517863021e-06 +4.540000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.741255218998309102e-06 +4.549999999999999822e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.558128424608961101e-06 +4.560000000000000497e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.386187423011975700e-06 +4.570000000000000284e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.224800442015688300e-06 +4.580000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.073370069474093740e-06 +4.589999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.931331353769111588e-06 +4.600000000000000533e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.798150007526828464e-06 +4.610000000000000320e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.673320710266274216e-06 +4.620000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.556365505724561042e-06 +4.629999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.446832289650692389e-06 +4.639999999999999680e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.344293383910860287e-06 +4.650000000000000355e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.248344192803720109e-06 +4.660000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.158601937545942537e-06 +4.669999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.074704464956369815e-06 +4.679999999999999716e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.963091264432861814e-07 +4.690000000000000391e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.230917234831150279e-07 +4.700000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.547455158709785526e-07 +4.709999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.909802891238337773e-07 +4.719999999999999751e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.315214775254283935e-07 +4.730000000000000426e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.761093394180026812e-07 +4.740000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.244981814688013757e-07 +4.750000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.764556287684500852e-07 +4.759999999999999787e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.317619377533198992e-07 +4.770000000000000462e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.902093490828477776e-07 +4.780000000000000249e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.516014777458562430e-07 +4.790000000000000036e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.157527378149979787e-07 +4.799999999999999822e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.824877994152667324e-07 +4.810000000000000497e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.516410756195147884e-07 +4.820000000000000284e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.230562371303328443e-07 +4.830000000000000071e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.965857527523306205e-07 +4.839999999999999858e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.720904538010278337e-07 +4.850000000000000533e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.494391207330565905e-07 +4.860000000000000320e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.285080904167570243e-07 +4.870000000000000107e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.091808825914865425e-07 +4.879999999999999893e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.913478441877041063e-07 +4.889999999999999680e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.749058102973752587e-07 +4.900000000000000355e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.597577806952962489e-07 +4.910000000000000142e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.458126109160604397e-07 +4.919999999999999929e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.329847169884304582e-07 +4.929999999999999716e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.211937930188092765e-07 +4.940000000000000391e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.103645408980406442e-07 +4.950000000000000178e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.004264114812765874e-07 +4.959999999999999964e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.131335665895433652e-08 +4.969999999999999751e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.296359179845285449e-08 +4.980000000000000426e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 7.531936809080894562e-08 +4.990000000000000213e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.832675438539998569e-08 +5.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.193542813799492433e-08 diff --git a/pyproject.toml b/pyproject.toml index 7b8f1ed6..593d38f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -96,10 +96,13 @@ docs = [ # ``comoving_distance``, which no ``cosmology`` release exposes. ``matter_cls`` # lives in the separate ``glass.ext.camb`` package (absent from glass core # >=2024.2), so it is pinned explicitly. +#glass = [ +# "glass==2025.1", +# "glass.ext.camb==2023.6", +# "cosmology==2022.10.9", +#] glass = [ - "glass==2025.1", - "glass.ext.camb==2023.6", - "cosmology==2022.10.9", + "glass[examples]==2026.2" ] develop = ["sp_validation[test,docs]"] diff --git a/scripts/glass_mock/make_glass_sim.py b/scripts/glass_mock/make_glass_sim.py new file mode 100644 index 00000000..028ece71 --- /dev/null +++ b/scripts/glass_mock/make_glass_sim.py @@ -0,0 +1,383 @@ +"""Generate a GLASS mock source catalogue. + +Thin CLI wrapper around the generation core in ``sp_validation.glass_mock``: +this script owns argument parsing, the mask downgrade, galaxy sampling, and FITS +catalogue I/O. The reproducibility surface — the fixed cosmology, the +``sigma8``-rescaled CAMB power spectrum, and the lognormal matter / lensing-map +generation — lives in the library and is pinned by +``src/sp_validation/tests/test_glass_mock.py``. + +Run inside an image that has GLASS installed (the production sp_validation +container does not yet ship GLASS). +""" + +import argparse +import os +import time + +import camb +import fitsio + +# GLASS modules +import glass +import healpy as hp +import numpy as np +from tqdm import tqdm + +from sp_validation.glass_mock import ( + Cosmology_from_camb, + GlassMockConfig, + build_camb_params, + build_shells, + camb_sigma8, + downgrade_mask, + ia_convergence, + matter_shell_cls, +) + + +def get_parser(): + """Create the argument parser.""" + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description="Creates a weak lensing catalogue simulation using GLASS", + fromfile_prefix_chars="@", + ) + parser.add_argument("-s", "--seed", help="Random seed", type=int, default=42) + parser.add_argument("-N", "--number", help="Mock Number", type=int, default=0) + parser.add_argument("-t", "--test", help="Test run", action="store_true") + parser.add_argument("-cb", "--camb", help="get Camb C_ell", action="store_true") + parser.add_argument( + "-c", + "--config", + help="Path to the configuration file to generate the simulation", + type=str, + required=True, + ) + + return parser + + +class Sky: + """Build a UNIONS GLASS mock from a :class:`GlassMockConfig` + CLI args.""" + + def __init__(self): + parser = get_parser() + args = parser.parse_args() + + yaml_config = args.config + + # Test mode shrinks the box; otherwise CLI overrides config fields. + if args.test: + print("[!!!] Running in test mode: ignore the configuration file [!!!]") + if not os.path.exists("config/glass_mock/test_data/"): + raise FileNotFoundError( + "The test must be run from the root of the repository." + ) + if not os.path.exists("config/glass_mock/test_data/mask.fits"): + raise FileNotFoundError( + "Check that you downloaded the test mask from the repository." + ) + if not os.path.exists( + "config/glass_mock/test_data/redshift_distribution.txt" + ): + raise FileNotFoundError( + "Check that you downloaded the test redshift distribution from the repository." + ) + + self.config = GlassMockConfig.from_planck18( + nside=32, + seed=args.seed, + n_arcmin2=0.0824, + dx=120.0, + zmax=0.5, + sigma_e=0.26, + ia_bias=None, + mask_path="config/glass_mock/test_data/mask.fits", + nz_path="config/glass_mock/test_data/redshift_distribution.txt", + output_path="config/glass_mock/test_data", + output_prefix="test", + ) + else: + # Load the configuration from the config file in the parser + self.config = GlassMockConfig.from_yaml( + yaml_config=yaml_config, seed=args.seed + ) + + # Check consistency of the config for the tomographic bins + self.config.check_consistency() + + # Runtime options + self.test = args.test + self.camb = args.camb + self.limber = self.config.limber + + # Number label and random seed + self.number = args.number + self.n_sim = str(args.number).zfill(5) + self.rng = np.random.default_rng(self.config.seed) + + # Input paths + self.path_mask = self.config.mask_path + self.path_nz = self.config.nz_path + + # Output path + self.path = self.config.output_path + self.prefix = self.config.output_prefix + + print("-" * 66) + print( + f"Creating a weak lensing catalogue GLASS simulation with NSide = {self.config.nside}" + ) + print(f"Mock number: {self.number}") + print(f"Random seed: {self.config.seed}") + if self.test: + print("[!] Running in test mode [!]") + print("-" * 66) + + self.root = f"{self.path}/results" + if not os.path.exists(self.root): + os.makedirs(self.root) + print("A new directory " + str(self.root) + " is created!") + + # Cosmology + CAMB params come from the library core. + self.pars = build_camb_params(self.config) + print("-" * 66) + print("Parameters used for the simulation:") + print(f"H0: {self.pars.H0}") + print(f"omch2: {self.pars.omch2}") + print(f"ombh2: {self.pars.ombh2}") + print(f"n_s: {self.pars.InitPower.ns}") + print(f"As: {self.pars.InitPower.As}") + print(f"sigma_8: {camb_sigma8(self.pars)}") + print(f"Omega_m: {self.pars.omegam}") + print(f"ia_bias: {self.config.ia_bias}") + print("-" * 66) + + self.z = None + self.bin_nz = [] + self.ngal_per_bin = [] + self.camb_cls = None + + def read_mask(self): + """Read the survey mask from the specified path.""" + mask = hp.read_map(self.path_mask) + mask_file_name = f"{self.path}/mask_nside_{self.config.nside}.fits" + if not os.path.isfile(mask_file_name): + os.makedirs(self.path, exist_ok=True) + mask = downgrade_mask(mask, self.config.nside) + hp.write_map(mask_file_name, mask, overwrite=True) + else: + mask = hp.read_map(mask_file_name).astype(np.float64) + return mask + + def get_cl_matter_shells(self, shells): + """Get the matter power spectrum for the simulation.""" + cls_path = f"{self.root}/cls_{self.config.nside}_limber_{self.limber}.npy" + try: + cls = np.load(cls_path) + except FileNotFoundError: + print(f"[!] cls file {cls_path} missing; computing matter cls ...") + cls = matter_shell_cls(self.config, self.pars, shells, limber=self.limber) + np.save(cls_path, cls) + print("[!] Done.") + return cls + + def read_redshift_distributions(self, shells): + """Read the redshift distributions from the specified path. + + The convention used here is that the non-tomographic redshift distribution sums to one. + All the per bin distributions will sum to a lower value than 1. + """ + nz = np.loadtxt(self.path_nz) + nz = nz[nz[:, 0] <= self.config.zmax] + self.z = nz[:, 0] + + # Check that the number of nz columns corresponds to what is expected. + dndz_cols = nz[:, 1:] + + # Check that the per bin integrals sum together to one + per_bin_integral = np.trapezoid(dndz_cols, self.z.T, axis=0) + assert np.isclose(per_bin_integral.sum(), 1.0, atol=1e-2), ( + f"Per bin integrals do not sum to one: {per_bin_integral.sum()}. Integrals per bin: {per_bin_integral}" + ) + + for b in range(self.config.nbins): + n_arcmin2 = ( + self.config.n_arcmin2[b] + if isinstance(self.config.n_arcmin2, list) + else self.config.n_arcmin2 + ) + dndz_b = ( + dndz_cols[:, b] * n_arcmin2 + ) # TODO: Implement different densities per tomo bin + ngal_b = glass.partition(self.z, dndz_b, shells) + self.ngal_per_bin.append(ngal_b) + self.bin_nz.append(dndz_b) + + def galaxies_simulation(self): + """Create a source catalogue from the GLASS mock maps.""" + config = self.config + + # Read + downgrade the survey mask. + mask = self.read_mask() + + # Shells + matter spectra from the library core (cached cls on disk). + shells = build_shells(config, self.pars) + + # Generate the file for the matter shells if not done already + cls = self.get_cl_matter_shells(shells) + + # Apply discretisation to the full set of spectra + cls = glass.discretized_cls(cls, nside=config.nside, lmax=config.lmax, ncorr=3) + + # Generate the matter maps + fields = glass.lognormal_fields(shells) + gls = glass.solve_gaussian_spectra(fields, cls) + matter = glass.generate(fields, gls, config.nside, ncorr=3, rng=self.rng) + convergence = glass.MultiPlaneConvergence(Cosmology_from_camb(self.pars)) + + # n(z) and per-shell galaxy partition. + self.read_redshift_distributions(shells) + + # Name of the output file + out_file = ( + f"{self.root}/{self.prefix}_glass_sim_{self.n_sim}_{config.nside}.fits" + ) + + # Open the FITS file to save the catalogue + fits = fitsio.FITS(out_file, "rw", clobber=True) + fits.write(None) + fits.create_table_hdu( + names=[ + "RA", + "Dec", + "e1", + "e2", + "w", + "n1", + "n2", + "TOM_BIN_ID", + "TRUE_Z", + "PHOTO_Z", + ], + formats=["D", "D", "E", "E", "D", "E", "E", "J", "D", "D"], + extname="SOURCE_CATALOGUE", + ) + cat_dtype = fits["SOURCE_CATALOGUE"].get_rec_dtype()[0] + + ngal_tot = 0 + c = 0 + print("Generating shell ", end="") + for i, delta_i in tqdm(enumerate(matter)): + convergence.add_window(delta_i, shells[i]) + kappa_i = convergence.kappa + if config.ia_bias is not None: + kappa_i = kappa_i + ia_convergence(delta_i, shells[i], config) + gamm1_i, gamm2_i = glass.shear_from_convergence(kappa_i) + + # Sample each tomographic bin against the same matter/convergence + # realisation for this shell + for b in range(config.nbins): + bias_b = ( + config.bias[b] if isinstance(config.bias, list) else config.bias + ) + sigma_e = ( + config.sigma_e[b] + if isinstance(config.sigma_e, list) + else config.sigma_e + ) + + for gal_lon, gal_lat, gal_count in glass.points.positions_from_delta( + self.ngal_per_bin[b][i], delta_i, bias_b, mask, rng=self.rng + ): + ngal_tot += gal_count + gal_z = glass.redshifts(gal_count, shells[i], rng=self.rng) + gal_phz = glass.gaussian_phz( + gal_z, config.phz_sigma_0, rng=self.rng + ) + + gal_ellip = glass.ellipticity_intnorm( + gal_count, + sigma_e, + rng=self.rng, + xp=np, + ) + gal_she = glass.galaxy_shear( + gal_lon, gal_lat, gal_ellip, kappa_i, gamm1_i, gamm2_i + ) + noise_she = glass.galaxies.galaxy_shear( + gal_lon, + gal_lat, + gal_ellip, + np.zeros(np.shape(kappa_i)), + np.zeros(np.shape(gamm1_i)), + np.zeros(np.shape(gamm2_i)), + ) + + catalogue = np.empty(gal_count, dtype=cat_dtype) + catalogue["RA"] = gal_lon + catalogue["Dec"] = gal_lat + catalogue["e1"] = gal_she.real + catalogue["e2"] = -gal_she.imag + catalogue["w"] = np.ones_like(gal_lon) + catalogue["n1"] = noise_she.real + catalogue["n2"] = noise_she.imag + catalogue["TOM_BIN_ID"] = b + catalogue["TRUE_Z"] = gal_z + catalogue["PHOTO_Z"] = gal_phz + fits["SOURCE_CATALOGUE"].append(catalogue) + + c += 1 + + print("[DONE] \n") + print(f"Total number of galaxies sampled: {ngal_tot} using {c} z-shells") + fits.close() + print("Saved simulation to: ", out_file) + + if self.camb: + self.get_camb_cls() + + # TODO: Add a script to perform some final validation tests that are printed + # TODO: This would essentially include computing shape noise and number density. + + def get_camb_cls(self, sav=True): + """Lensing C_ell from CAMB source windows for the mock n(z).""" + if self.bin_nz is None or self.z is None: + print("ERROR: run galaxies_simulation() first to populate n(z)") + return None + lmax = self.config.lmax + sources = [ + camb.sources.SplinedSourceWindow( + z=self.z, W=self.bin_nz[i], source_type="lensing" + ) + for i in range(self.config.nbins) + ] + self.pars.SourceWindows = sources + self.pars.InitPower.set_params(As=2.1e-9, ns=0.965) + results = camb.get_results(self.pars) + cl_camb = results.get_source_cls_dict(lmax=lmax, raw_cl=True) + + dic = {"ell": np.arange(lmax + 1) + 1} + for key in cl_camb: + if "P" not in key: + a, b = key.replace("W", "").replace("x", "-").split("-") + dic[f"{int(a) - 1}-{int(b) - 1}"] = cl_camb[key] + if sav: + out = f"{self.root}/camb_cls.fits" + fits = fitsio.FITS(out, "rw", clobber=True) + fits.write(dic) + fits.close() + self.camb_cls = dic + return dic + + +if __name__ == "__main__": + print("Starting the simulation") + start_time = time.time() + new_sky = Sky() + print("--- init %s seconds ---" % (time.time() - start_time)) + + start_time = time.time() + new_sky.galaxies_simulation() + print("--- simulation %s seconds ---" % (time.time() - start_time)) diff --git a/scripts/glass_mock/make_unions_glass_sim.py b/scripts/glass_mock/make_unions_glass_sim.py deleted file mode 100644 index bc97abae..00000000 --- a/scripts/glass_mock/make_unions_glass_sim.py +++ /dev/null @@ -1,334 +0,0 @@ -"""Generate a UNIONS GLASS mock source catalogue. - -Thin CLI wrapper around the generation core in ``sp_validation.glass_mock``: -this script owns argument parsing, the mask downgrade, galaxy sampling, and FITS -catalogue I/O. The reproducibility surface — the fixed cosmology, the -``sigma8``-rescaled CAMB power spectrum, and the lognormal matter / lensing-map -generation — lives in the library and is pinned by -``src/sp_validation/tests/test_glass_mock.py``. - -Run inside an image that has GLASS installed (the production sp_validation -container does not yet ship GLASS). -""" - -import argparse -import os -import time - -import camb -import fitsio - -# GLASS modules -import glass -import healpy as hp -import numpy as np -from tqdm import tqdm - -from sp_validation.glass_mock import ( - GlassMockConfig, - build_camb_params, - build_shells, - camb_sigma8, - downgrade_mask, - ia_convergence, - matter_shell_cls, -) - - -def get_parser(): - """Create the argument parser.""" - parser = argparse.ArgumentParser( - formatter_class=argparse.RawDescriptionHelpFormatter, - description="Creates a UNIONS simulation using GLASS", - fromfile_prefix_chars="@", - ) - parser.add_argument("-s", "--seed", help="Random seed", type=int, default=42) - parser.add_argument("-N", "--number", help="Mock Number", type=int, default=0) - parser.add_argument( - "-n", - "--nside", - help="Nside for the simulation. Nside=Lmax", - type=int, - default=32, - ) - parser.add_argument( - "-ne", - "--neff", - help="Effective number of galaxies per arcmin^2", - type=float, - default=6.0905, - ) - parser.add_argument( - "-p", - "--path", - help="Output path to save the mocks", - type=str, - default="./", - ) - parser.add_argument( - "-c", - "--cls", - help="Pre-compute and saves the matter shell cls", - action="store_true", - ) - parser.add_argument("-t", "--test", help="Test run", action="store_true") - parser.add_argument( - "-sg", - "--sigmae", - help="Set sigma of intrinsic ellipticity", - type=float, - default=0.2684, - ) - parser.add_argument("-cb", "--camb", help="get Camb C_ell", action="store_true") - parser.add_argument( - "-nz", - "--pathnz", - help="Path to the n(z) file", - type=str, - default="/n17data/sguerrini/UNIONS/WL/nz/v1.4.6.3/nz_SP_v1.4.6.3_A.txt", - ) - parser.add_argument( - "-m", - "--mask", - help="Path to the mask", - type=str, - default="/n09data/guerrini/glass_mock_v1.4.6_rerun/mask_nside4096.fits", - ) - parser.add_argument( - "-ia", - "--ia_bias", - help="Intrinsic alignment bias for CCL", - type=float, - default=None, - ) - return parser - - -class Sky: - """Build a UNIONS GLASS mock from a :class:`GlassMockConfig` + CLI args.""" - - def __init__(self): - parser = get_parser() - args = parser.parse_args() - - # Test mode shrinks the box; otherwise CLI overrides config fields. - if args.test: - print("[!!!] Running in test mode [!!!]") - self.config = GlassMockConfig.from_planck18( - nside=32, - seed=args.seed, - n_arcmin2=0.0824, - dx=120.0, - zmax=0.5, - sigma_e=args.sigmae, - ia_bias=args.ia_bias, - ) - else: - self.config = GlassMockConfig.from_planck18( - nside=args.nside, - seed=args.seed, - n_arcmin2=args.neff, - sigma_e=args.sigmae, - ia_bias=args.ia_bias, - ) - - self.test = args.test - self.camb = args.camb - self.pre_cls = args.cls - self.number = args.number - self.n_sim = str(args.number).zfill(5) - self.path = args.path - self.path_mask = args.mask - self.path_nz = args.pathnz - self.rng = np.random.default_rng(self.config.seed) - - print("-" * 66) - print(f"Creating a UNIONS GLASS simulation with NSide = {self.config.nside}") - print(f"Mock number: {self.number}") - print(f"Random seed: {self.config.seed}") - print(f"Test mode or not: {self.test}") - print("-" * 66) - - self.root = f"{self.path}/results" - if not os.path.exists(self.root): - os.makedirs(self.root) - print("A new directory " + str(self.root) + " is created!") - - # Cosmology + CAMB params come from the library core. - self.pars = build_camb_params(self.config) - print("-" * 66) - print("Parameters used for the simulation:") - print(f"H0: {self.pars.H0}") - print(f"omch2: {self.pars.omch2}") - print(f"ombh2: {self.pars.ombh2}") - print(f"n_s: {self.pars.InitPower.ns}") - print(f"As: {self.pars.InitPower.As}") - print(f"sigma_8: {camb_sigma8(self.pars)}") - print(f"Omega_m: {self.pars.omegam}") - print(f"ia_bias: {self.config.ia_bias}") - print("-" * 66) - - self.z = None - self.bin_nz = None - self.camb_cls = None - - def galaxies_simulation(self): - """Create a UNIONS source catalogue from the GLASS mock maps.""" - config = self.config - - # Read + downgrade the survey mask. - unions_mask = hp.read_map(self.path_mask) - mask_file_name = f"{self.path}/mask_nside{config.nside}.fits" - if not os.path.isfile(mask_file_name): - os.makedirs(self.path, exist_ok=True) - unions_mask = downgrade_mask(unions_mask, config.nside) - hp.write_map(mask_file_name, unions_mask, overwrite=True) - else: - unions_mask = hp.read_map(mask_file_name).astype(np.float64) - - # Shells + matter spectra from the library core (cached cls on disk). - shells = build_shells(config, self.pars) - cls_path = f"{self.root}/cls_{config.nside}.npy" - try: - cls = np.load(cls_path) - except FileNotFoundError: - print(f"[!] cls file {cls_path} missing; computing matter cls ...") - cls = matter_shell_cls(config, self.pars, shells) - np.save(cls_path, cls) - print("[!] Done.") - - fields = glass.lognormal_fields(shells) - gls = glass.solve_gaussian_spectra(fields, cls) - matter = glass.generate(fields, gls, config.nside, ncorr=3, rng=self.rng) - convergence = glass.MultiPlaneConvergence(_cosmology(self.pars)) - - # n(z) and per-shell galaxy partition. - nz = np.loadtxt(self.path_nz) - nz = nz[nz[:, 0] <= config.zmax] - self.z = nz[:, 0] - dndz = nz[:, 1] * config.n_arcmin2 - ngal = glass.partition(self.z, dndz, shells) - zbins = glass.equal_dens_zbins(self.z, dndz, nbins=config.nbins) - - out_file = f"{self.root}/unions_glass_sim_{self.n_sim}_{config.nside}.fits" - fits = fitsio.FITS(out_file, "rw", clobber=True) - fits.write(None) - fits.create_table_hdu( - names=[ - "RA", - "Dec", - "e1", - "e2", - "w", - "n1", - "n2", - "TOM_BIN_ID", - "TRUE_Z", - "PHOTO_Z", - ], - formats=["D", "D", "E", "E", "D", "E", "E", "J", "D", "D"], - extname="SOURCE_CATALOGUE", - ) - cat_dtype = fits["SOURCE_CATALOGUE"].get_rec_dtype()[0] - - ngal_tot = 0 - c = 0 - print("Generating shell ", end="") - for i, delta_i in tqdm(enumerate(matter)): - convergence.add_window(delta_i, shells[i]) - kappa_i = convergence.kappa - if config.ia_bias is not None: - kappa_i = kappa_i + ia_convergence(delta_i, shells[i], config) - gamm1_i, gamm2_i = glass.shear_from_convergence(kappa_i) - - for gal_lon, gal_lat, gal_count in glass.points.positions_from_delta( - ngal[i], delta_i, config.bias, unions_mask, rng=self.rng - ): - ngal_tot += gal_count - gal_z = glass.redshifts(gal_count, shells[i], rng=self.rng) - gal_phz = glass.gaussian_phz(gal_z, config.phz_sigma_0, rng=self.rng) - tomo_id = np.digitize(gal_phz, np.unique(zbins)) - 1 - gal_ellip = glass.ellipticity_intnorm( - gal_count, config.sigma_e, rng=self.rng - ) - gal_she = glass.galaxy_shear( - gal_lon, gal_lat, gal_ellip, kappa_i, gamm1_i, gamm2_i - ) - noise_she = glass.galaxies.galaxy_shear( - gal_lon, - gal_lat, - gal_ellip, - np.zeros(np.shape(kappa_i)), - np.zeros(np.shape(gamm1_i)), - np.zeros(np.shape(gamm2_i)), - ) - - catalogue = np.empty(gal_count, dtype=cat_dtype) - catalogue["RA"] = gal_lon - catalogue["Dec"] = gal_lat - catalogue["e1"] = gal_she.real - catalogue["e2"] = -gal_she.imag - catalogue["w"] = np.ones_like(gal_lon) - catalogue["n1"] = noise_she.real - catalogue["n2"] = noise_she.imag - catalogue["TOM_BIN_ID"] = tomo_id - catalogue["TRUE_Z"] = gal_z - catalogue["PHOTO_Z"] = gal_phz - fits["SOURCE_CATALOGUE"].append(catalogue) - c += 1 - - print("[DONE] \n") - print(f"Total number of galaxies sampled: {ngal_tot} using {c} z-shells") - fits.close() - print("Saved simulation to: ", out_file) - - if self.camb: - self.get_camb_cls() - - def get_camb_cls(self, sav=True): - """Lensing C_ell from CAMB source windows for the mock n(z).""" - if self.bin_nz is None or self.z is None: - print("ERROR: run galaxies_simulation() first to populate n(z)") - return None - lmax = self.config.lmax - sources = [ - camb.sources.SplinedSourceWindow( - z=self.z, W=self.bin_nz[i], source_type="lensing" - ) - for i in range(self.config.nbins) - ] - self.pars.SourceWindows = sources - self.pars.InitPower.set_params(As=2.1e-9, ns=0.965) - results = camb.get_results(self.pars) - cl_camb = results.get_source_cls_dict(lmax=lmax, raw_cl=True) - - dic = {"ell": np.arange(lmax + 1) + 1} - for key in cl_camb: - if "P" not in key: - a, b = key.replace("W", "").replace("x", "-").split("-") - dic[f"{int(a) - 1}-{int(b) - 1}"] = cl_camb[key] - if sav: - out = f"{self.root}/camb_cls.fits" - fits = fitsio.FITS(out, "rw", clobber=True) - fits.write(dic) - fits.close() - self.camb_cls = dic - return dic - - -def _cosmology(pars): - """GLASS cosmology wrapper from CAMB params (lazy import).""" - from cosmology import Cosmology - - return Cosmology.from_camb(pars) - - -if __name__ == "__main__": - print("Starting the simulation") - start_time = time.time() - new_sky = Sky() - print("--- init %s seconds ---" % (time.time() - start_time)) - - start_time = time.time() - new_sky.galaxies_simulation() - print("--- simulation %s seconds ---" % (time.time() - start_time)) diff --git a/src/sp_validation/glass_mock.py b/src/sp_validation/glass_mock.py index 7ba0057b..aa345ff2 100644 --- a/src/sp_validation/glass_mock.py +++ b/src/sp_validation/glass_mock.py @@ -75,12 +75,18 @@ class GlassMockConfig: As_init: float = 2.1e-9 # seed As before sigma8 rescaling kmax: float = 20.0 # --- galaxy population (downstream of map generation) --- - n_arcmin2: float = 6.0905 - sigma_e: float = 0.2684 - bias: float = 1.2 # constant linear galaxy bias b(z) + n_arcmin2: float | list = 6.0905 + sigma_e: float | list = 0.2684 + bias: float | list = 1.2 # constant linear galaxy bias b(z) phz_sigma_0: float = 0.03 nbins: int = 1 # number of tomographic bins ia_bias: float | None = None + # --- Runtime options --- + limber: bool = False + mask_path: str | None = None + nz_path: str | None = None + output_path: str | None = None + output_prefix: str | None = None @classmethod def from_planck18(cls, **overrides) -> "GlassMockConfig": @@ -100,6 +106,21 @@ def from_planck18(cls, **overrides) -> "GlassMockConfig": base.update(overrides) return cls(**base) + @classmethod + def from_yaml(cls, yaml_config, seed=42) -> "GlassMockConfig": + """ + Build a config for the GLASS mock generation from a YAML configuration file. + + Reads the dataclass fields from the YAML file. If absent, the field is kept at its default value. + """ + import yaml + + with open(yaml_config, "r") as f: + data = yaml.safe_load(f) + + overrides = {k: v for k, v in data.items() if k in cls.__dataclass_fields__} + return cls(**{**overrides, "seed": seed}) + @property def lmax(self) -> int: """``lmax`` is tied to ``nside`` in the production mocks.""" @@ -110,6 +131,34 @@ def Oc(self) -> float: """Cold dark matter density (CDM = matter - baryons), pre-neutrino.""" return self.Om - self.Ob + def check_consistency(self): + """Check that the configuration in terms of bins is internally consistent""" + redshift_distributions = np.loadtxt(self.nz_path) + if redshift_distributions.shape[1] - 1 != self.nbins: + raise ValueError( + f"The number of tomographic bins is inconsistent with the redshift distribution: {redshift_distributions.ndim - 1}." + ) + + if isinstance(self.n_arcmin2, list) and len(self.n_arcmin2) != self.nbins: + raise ValueError( + f"Number of elements in n_arcmin2 {len(self.n_arcmin2)} " + f"does not match number of bins {self.nbins}" + ) + + if isinstance(self.sigma_e, list) and len(self.sigma_e) != self.nbins: + raise ValueError( + f"Number of elements in sigma_e {len(self.sigma_e)} " + f"does not match number of bins {self.nbins}" + ) + + if isinstance(self.bias, list) and len(self.bias) != self.nbins: + raise ValueError( + f"Number of elements in bias {len(self.bias)} " + f"does not match number of bins {self.nbins}" + ) + + print("The number of tomographic bins is consistent across inputs...") + def build_camb_params(config: GlassMockConfig): """Build the CAMB parameters for a mock, with ``As`` rescaled to ``sigma8``. @@ -177,19 +226,21 @@ def build_shells(config: GlassMockConfig, pars): Returns the GLASS shell list (``(z, w, zeff)`` windows). Lazily imports GLASS; only callable where GLASS is installed. """ + import camb import glass - from cosmology import Cosmology + from cosmology.compat.camb import Cosmology - cosmo = Cosmology.from_camb(pars) + results = camb.get_background(pars) + cosmo = Cosmology(results) zb = glass.distance_grid(cosmo, 0.0, config.zmax, dx=config.dx) return glass.linear_windows(zb) -def matter_shell_cls(config: GlassMockConfig, pars, shells): +def matter_shell_cls(config: GlassMockConfig, pars, shells, limber=False): """Matter angular power spectra for the shells, from CAMB via GLASS.""" import glass.ext.camb - return glass.ext.camb.matter_cls(pars, config.lmax, shells) + return glass.ext.camb.matter_cls(pars, config.lmax, shells, limber=limber) def generate_matter_maps(config: GlassMockConfig, pars, shells, cls): @@ -221,9 +272,12 @@ def generate_matter_maps(config: GlassMockConfig, pars, shells, cls): def Cosmology_from_camb(pars): """Thin indirection so the convergence cosmology is built once, lazily.""" - from cosmology import Cosmology + import camb + from cosmology.compat.camb import Cosmology + + results = camb.get_background(pars) - return Cosmology.from_camb(pars) + return Cosmology(results) # --- mask / galaxy-sampling helpers (used by the generation runner) ---------