This commit is contained in:
caes 2017-08-08 05:16:38 -04:00
parent 82ab654923
commit 0c5e8f56af
5 changed files with 0 additions and 1131 deletions

View File

@ -1,116 +0,0 @@
""" A program to recreate the average spectrum fit for ngc 5548 in Magdziarz et al 1998 """
import math
import scipy
import numpy
PI=3.14159265358979323846;
PLANCK_CONST=4.135668e-15; # in eV * s
BOLTZMANN_CONST=0.00008617332385; # in eV / K
RYDBERG_CONST=1.0973731568539e7; # in 1 / m
RYDBERG_UNIT_EV=13.60569252; # in eV
RYDBERG_UNIT_ANGSTROM=1e10/RYDBERG_CONST; # in A
CONT_MIN_ENERGY_keV = 1e-3;
CONT_MAX_ENERGY_keV = 1e2;
CONT_MIN_X = math.log10(CONT_MIN_ENERGY_keV);
CONT_MAX_X = math.log10(CONT_MAX_ENERGY_keV);
CONT_WIDTH_X = CONT_MAX_X - CONT_MIN_X;
CONT_MIN_VAL = 1e-35;
""" Cloudy's continuum domain, for reference, version 13.3 """
CLOUDY_EMM = 1.001e-8; # in Rydberg
CLOUDY_EGAMRY = 7.354e6; # in Rydberg
CLOUDY_MIN_EV = CLOUDY_EMM*RYDBERG_UNIT_EV;
CLOUDY_MAX_EV = CLOUDY_EGAMRY*RYDBERG_UNIT_EV;
IN_EV_2500A = 12398.41929/2500;
""" Curve Parameters from MNRAS 301 Mdagziarz 1998 """
α_HC = 0.86
# Soft Excess
α_SE_sec2_1 = 1.1 # Quoted consistent with Korista 1995 and Marshall 1997
kT_SE_sec2_1 = .56
# Comtonization fitted to ROSAT data
# ξ =
# OSSE data fit
α_HC = 0.86
R = 0.96
E_cutoff_HC = .120 # keV, phase 1
F_HC = .38 # keV cm⁻² s⁻¹
# E_cutoff_HC = 118 # keV, phase 3
# F_HC = .61 # keV cm⁻² s⁻¹
# Section 3.3 values
kT_SE_sec3_2 = .270 # keV
α_SE_sec3_2 = 1.13
kT_HC_sec3_2 = 55 # keV
α_HC_sec3_2 = .76
def hν_at(i,n):
""" returns hν coordinate of bin i out of n """
relative_coord = i/n
x_coord = relative_coord*CONT_WIDTH_X + CONT_MIN_X;
return math.pow(10,x_coord);
def histogram_table(n):
output = []
# max=0,min=1
indices = range(n)
for i in range(0,n):
hν = hν_at(i,n);
value = (hν,sed(hν))
# if (output.value[hν] > max) max = output.value[hν];
# if (output.value[hν] < min) min = output.value[hν];
output.append(value)
# Add a final point at 100 KeV
hν = 1e2;
value = sed(hν);
output.append((hν,value))
return output;
def sed(hν):
magnitude=0.0;
magnitude += powlaw_cutoff(hν,α_HC,E_cutoff_HC,1) # OSSE data fit
# magnitude += powlaw_cutoff(hν,α_SE_sec2_1,kT_SE_sec2_1,1)
# magnitude += powlaw_cutoff(hν,α_SE_sec3_2,kT_SE_sec3_2,1)
#magnitude += compt_approx(hν,-1.3,.345,.0034,1)
if magnitude < CONT_MIN_VAL: return CONT_MIN_VAL
# magnitude = CONT_MIN_VAL;
return magnitude;
def powlaw_cutoff(hν,α,E_cutoff,norm):
low_cutoff = .1
resultant = norm
resultant *= math.exp(-hν/E_cutoff)
#resultant *= math.exp(-low_cutoff/hν)
resultant *= math.pow(hν,1+α)
return resultant
def compt_approx(hν,α,kT_keV,cutoff_keV,norm):
magnitude = math.pow(hν,(1+α))
magnitude *= math.exp(-(hν/kT_keV))
magnitude *= math.exp(-(cutoff_keV/hν))
magnitude *= norm
return magnitude
test_table = histogram_table(500)
for pair in test_table:
print (pair[0],pair[1])

View File

@ -1,72 +0,0 @@
#!/usr/bin/env
use strict; use warnings; use 5.010; use utf8;
use IO::Handle;
use File::Temp "tempfile";
open(my $spectrum_file,"spectrum");
# my @x = ();
# my @y = ();
# my($xi,$yi);
# ($xi,$yi)=(0,0);
# while(my $line = <$spectrum_file>) {
# $line =~ /([0-9\.]+)\s+([0-9\.]+)/;
# ($x[$xi],$y[$yi])=($1,$2);
# $xi++; $yi++;
# }
# while (my $line = <$spectrum_file>) {
# print $line;
# }
my($T,$N) = tempfile("spectrum-XXXXXXXX", "UNLINK", 1);
# for my $t (100..500)
# { say $T $t*sin($t*0.1), " ", $t*cos($t*0.1); }
while (my $_ = <$spectrum_file>) {
chomp;
say $T $_;
}
close $T;
open my $P, "|-", "gnuplot" or die;
printflush $P qq[
unset key
set logscale xy
set xrange [.001,1000]
plot "$N"
];
<STDIN>;
close $P;
# sub histogram_table(n) {
# my @output = ()
# my @x = ()
# my @y = ()
# output.append(x)
# output.append(y)
# max=0
# min=1
# indices = range(n)
# for i in range(0,n):
# hνᗉkeVᗆ = hνᗉkeVᗆ_at(i,n);
# x.append(hνᗉkeVᗆ)
# value = total(hνᗉkeVᗆ,1,1,1)
# y.append(value)
# if (value > max): max = value;
# if (value < min): min = value;
# # Add a final point at 100 KeV
# hνᗉkeVᗆ = 1e2;
# x.append(hνᗉkeVᗆ)
# y.append(total(hνᗉkeVᗆ,1,1,1))
# output.append(x)
# output.append(y)
# return output;
# }
close($spectrum_file)
__END__

View File

@ -1,139 +0,0 @@
""" A program to recreate the average spectrum fit for ngc 5548 in Magdziarz et al 1998 """
import math
import scipy
import numpy
import matplotlib.pyplot as plt
PI=3.14159265358979323846;
PLANCK_CONST=4.135668e-15; # in eV * s
# Boltzman Constant
kᵦᗉeVᓯKᗆ=0.00008617332385; # in eV / K
kᵦᗉkeVᓯKᗆ=kᵦᗉeVᓯKᗆ/1000;
RYDBERG_CONST=1.0973731568539e7; # in 1 / m
RYDBERG_UNITᗉeVᗆ=13.60569252; # in eV
RYDBERG_UNIT_ANGSTROM=1e10/RYDBERG_CONST; # in A
CONT_MIN_ENERGYᗉkeVᗆ = 1e-3;
CONT_MAX_ENERGYᗉkeVᗆ = 1e2;
CONT_MIN_XᗉkeVᗆ = math.log10(CONT_MIN_ENERGYᗉkeVᗆ);
CONT_MAX_XᗉkeVᗆ = math.log10(CONT_MAX_ENERGYᗉkeVᗆ);
CONT_WIDTH_XᗉkeVᗆ = CONT_MAX_XᗉkeVᗆ - CONT_MIN_XᗉkeVᗆ;
CONT_MIN_VAL = 1e-35;
""" Cloudy's continuum domain, for reference, version 13.3 """
CLOUDY_EMMᗉRydbergᗆ = 1.001e-8; # in Rydberg
CLOUDY_EγᗉRydbergᗆ = 7.354e6; # in Rydberg
CLOUDY_MINᗉeVᗆ= CLOUDY_EMMᗉRydbergᗆ*RYDBERG_UNITᗉeVᗆ;
CLOUDY_MAXᗉeVᗆ= CLOUDY_EγᗉRydbergᗆ*RYDBERG_UNITᗉeVᗆ;
hcᓯ2500ᗉeVᗆ = 12398.41929/2500;
""" Returns the SED as a histrogram (list of floats) with n bins"""
# def histogram_table(n):
# output = []
# # max=0,min=1
# indices = range(n)
# for i in range(0,n):
# hνᗉkeVᗆ = hνᗉkeVᗆ_at(i,n);
# value = (hνᗉkeVᗆ,sum(hνᗉkeVᗆ))
# # if (output.value[hνᗉkeVᗆ] > max) max = output.value[hνᗉkeVᗆ];
# # if (output.value[hνᗉkeVᗆ] < min) min = output.value[hνᗉkeVᗆ];
# output.append(value)
#
# # Add a final point at 100 KeV
# hνᗉkeVᗆ = 1e2;
# value = sum(hνᗉkeVᗆ);
# output.append((hνᗉkeVᗆ,value))
# return output;
def histogram_table(n):
output = []
x = []
y = []
output.append(x)
output.append(y)
max=0
min=1
indices = range(n)
for i in range(0,n):
hνᗉkeVᗆ = hνᗉkeVᗆ_at(i,n);
x.append(hνᗉkeVᗆ)
value = total(hνᗉkeVᗆ,1,1,1)
y.append(value)
if (value > max): max = value;
if (value < min): min = value;
# Add a final point at 100 KeV
hνᗉkeVᗆ = 1e2;
x.append(hνᗉkeVᗆ)
y.append(total(hνᗉkeVᗆ,1,1,1))
output.append(x)
output.append(y)
return output;
# Sums 2 power-law cutoff functions and the disk contribution at energy coordinate hνᗉkeVᗆ in keV.
# Coefficients should be equal to functions at hνᗉkeVᗆ = ?? keV
def total(hνᗉkeVᗆ,C1=1.0,C2=1.0,C3=1.0):
magnitude=0.0
# accretion disk blackbody continuum has α=1/3
magnitude += powlaw_cutoff(hνᗉkeVᗆ,1/3,3e3,6e6,C1)
magnitude += powlaw_cutoff(hνᗉkeVᗆ,-1.1,.01/kᵦᗉkeVᓯKᗆ,1/kᵦᗉkeVᓯKᗆ,C2)
magnitude += powlaw_cutoff(hνᗉkeVᗆ,-0.8,.01/kᵦᗉkeVᓯKᗆ,100/kᵦᗉkeVᓯKᗆ,C3)
if magnitude < CONT_MIN_VAL: return CONT_MIN_VAL
# print (magnitude)
return magnitude;
def hνᗉkeVᗆ_at(i,n):
""" returns hνᗉkeVᗆ coordinate in keV of bin i out of n """
relative_coord = i/n
hν = relative_coord*CONT_WIDTH_XᗉkeVᗆ + CONT_MIN_XᗉkeVᗆ
return math.pow(10,hν)
def powlaw_cutoff(hνᗉkeVᗆ,α,T1,T2,coefficient):
resultant = coefficient
resultant *= math.exp(-hνᗉkeVᗆ/(kᵦᗉkeVᓯKᗆ*T1))
resultant *= math.exp(-kᵦᗉkeVᓯKᗆ*T2/hνᗉkeVᗆ)
resultant *= math.pow(hνᗉkeVᗆ,1+α)
#print(math.exp(-hνᗉkeVᗆ/(kᵦᗉkeVᓯKᗆ*T1)))
#print(-hνᗉkeVᗆ/(kᵦᗉkeVᓯKᗆ*T1))
#print(math.exp(-kᵦᗉkeVᓯKᗆ*T2/hνᗉkeVᗆ))
#print(math.pow(hνᗉkeVᗆ,1+α))
#print(resultant)
#print("──────────────────────────────────────────────────────────────────────────")
return resultant
test_table = histogram_table(500)
fig = plt.figure()
sed_plot = fig.add_subplot(111)
sed_plot.set_xscale("log")
sed_plot.set_yscale("log")
sed_plot.set_xlim(CONT_MIN_XᗉkeVᗆ,CONT_MAX_XᗉkeVᗆ)
sed_plot.set_ylim(1e-1,1e2)
sed_plot.set_aspect(1)
sed_plot.set_title("log-log plot of SED")
sed_plot.plot(test_table[0],test_table[1])
fig.show()
#for pair in test_table:
# print (pair[0],pair[1])
# index=0
# for energy in test_table[0]:
# print (energy,test_table[1][index])
# index += 1

View File

@ -1,303 +0,0 @@
#ifndef sed_hpp
#define sed_hpp
#include "agn.hpp"
namespace agn {
// Continuum domain, step size constant in log space
const double CONT_MIN_ENERGY=1e-2; // eV
const double CONT_MAX_ENERGY=1e5; // eV
const double CONT_MIN_X=log10(CONT_MIN_ENERGY);
const double CONT_MAX_X=log10(CONT_MAX_ENERGY);
const double CONT_WIDTH_X=CONT_MAX_X - CONT_MIN_X;
const double CONT_MIN_VAL=1e-35;
// Cloudy's continuum domain, for reference, version 13.3
const double CLOUDY_EMM = 1.001e-8; // in Rydberg
const double CLOUDY_EGAMRY = 7.354e6; // in Rydberg
const double CLOUDY_MIN_EV=CLOUDY_EMM*RYDBERG_UNIT_EV;
const double CLOUDY_MAX_EV=CLOUDY_EGAMRY*RYDBERG_UNIT_EV;
const double IN_EV_2500A=12398.41929/2500;
// Pulled from cloudy 17.00, first version
const double emm = 1.001e-8f;
const double egamry = 7.354e6f;
// SEDs are represented by 2d histogram tables.
struct sed_table {
std::string header;
table_1d value;
};
class sed_pow_law {
public:
// Continuum output functions
// Returns histogram with n bins evenly space in log space
sed_table histogram_table(int n);
// Argument is photon energy in eV
double sed(double hnu);
double eval_uv(double hnu);
double eval_xray(double hnu);
// Determined differently to be of use as the
// xray coefficient.
double SED_at_2KeV();
// Continuum shape arguments
double _T; //TCut
double _alpha_ox;
double _alpha_x;
double _alpha_uv;
double _cutoff_uv_rydberg;
double _cutoff_xray_rydberg;
double _log_radius_in_cm;
// Derived values
double _cutoff_uv_eV; // IRCut
double _cutoff_xray_eV; // lowend_cutoff
double _radius_in_cm;
double _radius_in_cm_squared;
double _scaling_factor;
double _xray_coefficient;
sed_pow_law (
double T,
double alpha_ox,
double alpha_x,
double alpha_uv,
double cutoff_uv_rydberg,
double cutoff_xray_rydberg,
double log_radius_in_cm,
double scaling_factor = 1.0
// EL[e] model scaling factor
// double scaling_factor = 1.39666E44
);
};
// Returns coord in eV for given relative coord.
double hnu_at(int i,int n);
// Takes an SED table as input and returns a string with format:
// '<h*nu>\t<flux>\n' for each energy-flux pair
std::string format_sed_table(sed_table table);
// Read continuum from file with '<h*nu>\t<flux>\n' formatting.
// Will ignore up to 1 header.
sed_table read_sed_table(std::ifstream& table_file);
// Does the same but converts hnu from rydberg to eV.
sed_table read_and_convert_sed_table(std::ifstream& table_file);
// Cloudy takes the SED density as input. This function outputs
// the corresponding SED table's SED density function in the form
// of a cloudy input script "interpolate" command.
std::string cloudy_interpolate_str(sed_table SED);
} // end namespace agn
agn::sed_table agn::read_sed_table(std::ifstream& table_file) {
sed_table resultant;
std::string scratch;
int current_line=0;
double hnu;
std::getline(table_file,scratch);
if(!isdigit(scratch[0])) {
resultant.header = scratch;
current_line++;
}
while(!table_file.eof()) {
table_file >> hnu;
table_file >> resultant.value[hnu];
}
}
agn::sed_table agn::read_and_convert_sed_table(std::ifstream& table_file) {
sed_table resultant;
std::string scratch;
int current_line=0;
double hnu_in_ryd,hnu_in_ev,value;
std::getline(table_file,scratch);
if(!isdigit(scratch[0])) {
resultant.header = scratch;
current_line++;
}
int c=0;
while(!table_file.eof()) {
//std::cout << c;
table_file >> hnu_in_ryd;
hnu_in_ev = hnu_in_ryd*agn::RYDBERG_UNIT_EV;
table_file >> resultant.value[hnu_in_ev];
getline(table_file,scratch);
}
}
std::string agn::format_sed_table(agn::sed_table table) {
std::stringstream output;
if (!table.header.empty()) output << table.header;
output << std::setprecision(5);
agn::table2d::iterator table_iterator;
table_iterator=table.value.begin();
while(table_iterator != table.value.end()) {
output
<< std::fixed
<< table_iterator->first
<< "\t"
<< std::scientific
<< table_iterator->second
<< "\n";
table_iterator++;
}
return output.str();
}
std::string agn::cloudy_interpolate_str(agn::sed_table table) {
std::stringstream output;
agn::table2d::iterator table_iterator = table.value.begin();
// Lead in to uv bump at slope=2 in log(energy [rydberg]) space
double energy_in_rydbergs = table_iterator->first
/ agn::RYDBERG_UNIT_EV;
double log_uv_bump_start = log10( energy_in_rydbergs );
double log_lowest_value = log10(table_iterator->second
/ table_iterator->first);
double log_min_energy = log10(agn::CLOUDY_EMM)
- 1;
double log_SED_density = log_lowest_value
- 2*(log_uv_bump_start
- log_min_energy);
if ( log_SED_density < 1e-36 ) log_SED_density = 1e-36;
output
<< "interpolate ("
<< pow(10,log_min_energy)
<< " "
<< log_SED_density
<< ")";
int count=0;
while(table_iterator != table.value.end()) {
energy_in_rydbergs = table_iterator->first
/ agn::RYDBERG_UNIT_EV;
double log_SED_density = log10( table_iterator->second
/ table_iterator->first);
if ((count%5)==0) output << "\n" << "continue ";
else output << " ";
output
<< "("
<< energy_in_rydbergs
<< " "
<< log_SED_density
<< ")";
count++;
table_iterator++;
}
// Trail off at slope=-2 in log(energy [rydberg]) space
while ( energy_in_rydbergs < agn::CLOUDY_EGAMRY ) {
double log_energy = log10(energy_in_rydbergs);
energy_in_rydbergs = pow(10,log_energy+1);
log_SED_density -= 2;
output
<< "("
<< energy_in_rydbergs
<< " "
<< log_SED_density
<< ")";
}
return output.str();
}
double agn::hnu_at(int i,int n) {
double relative_coord=(double)(i)/n;
double x_coord = relative_coord*CONT_WIDTH_X + CONT_MIN_X;
return pow(10,x_coord);
}
agn::sed_table agn::sed_pow_law::histogram_table(int n){
agn::sed_table output;
double max=0,min=1,hnu;
for(int i=0; i<n; i++) {
hnu = hnu_at(i,n);
output.value[hnu] = this->sed(hnu);
if (output.value[hnu] > max) max = output.value[hnu];
if (output.value[hnu] < min) min = output.value[hnu];
}
// Add a final point at 100 KeV
hnu = 1e5;
output.value[hnu] = this->sed(hnu);
return output;
}
double agn::sed_pow_law::sed(double hnu) {
double magnitude=0.0;
magnitude += this->eval_uv(hnu);
magnitude += this->eval_xray(hnu);
if (magnitude < agn::CONT_MIN_VAL) return agn::CONT_MIN_VAL;
return magnitude;
}
double agn::sed_pow_law::eval_uv(double hnu) {
double bigbump_kT = _T
* agn::BOLTZMANN_CONST;
double magnitude = pow(hnu,(1+_alpha_uv))
* exp(-(hnu)/bigbump_kT)
* exp(-(_cutoff_uv_eV/hnu))
* _scaling_factor;
if (magnitude < agn::CONT_MIN_VAL) return agn::CONT_MIN_VAL;
return magnitude;
}
double agn::sed_pow_law::eval_xray(double hnu) {
return _xray_coefficient
* pow(hnu/2000,1+_alpha_x)
* exp(-_cutoff_xray_eV/hnu)
* _scaling_factor;
}
double agn::sed_pow_law::SED_at_2KeV() {
double ELe_at_2500A_no_scale = eval_uv(IN_EV_2500A)
/ _scaling_factor;
double energy_ratio = 2000/IN_EV_2500A;
// Returns EL[e] at 2 KeV
return ELe_at_2500A_no_scale
* pow(energy_ratio,_alpha_ox + 1);
}
agn::sed_pow_law::sed_pow_law (
double T,
double alpha_ox,
double alpha_x,
double alpha_uv,
double cutoff_uv_rydberg,
double cutoff_xray_rydberg,
double log_radius_in_cm,
double scaling_factor
):
_T(T),
_alpha_ox(alpha_ox),
_alpha_x(alpha_x),
_alpha_uv(alpha_uv),
_cutoff_uv_rydberg(cutoff_uv_rydberg),
_cutoff_xray_rydberg(cutoff_xray_rydberg),
_log_radius_in_cm(log_radius_in_cm),
_scaling_factor(scaling_factor)
{
_cutoff_uv_eV = cutoff_uv_rydberg*RYDBERG_UNIT_EV;
_cutoff_xray_eV = cutoff_xray_rydberg*RYDBERG_UNIT_EV;
_radius_in_cm = pow(10,log_radius_in_cm);
_radius_in_cm_squared = _radius_in_cm*_radius_in_cm;
_xray_coefficient = agn::sed_pow_law::SED_at_2KeV();
}
#endif

View File

@ -1,501 +0,0 @@
0.001 1e-35
0.0010232929922807535 1e-35
0.0010471285480508996 1e-35
0.001071519305237606 1e-35
0.0010964781961431851 1e-35
0.001122018454301963 1e-35
0.0011481536214968829 1e-35
0.001174897554939529 1e-35
0.001202264434617413 1e-35
0.0012302687708123812 1e-35
0.0012589254117941675 1e-35
0.0012882495516931337 1e-35
0.0013182567385564075 1e-35
0.0013489628825916532 1e-35
0.0013803842646028853 1e-35
0.001412537544622754 1e-35
0.001445439770745928 1e-35
0.0014791083881682072 1e-35
0.0015135612484362087 1e-35
0.0015488166189124811 1e-35
0.001584893192461114 1e-35
0.0016218100973589297 1e-35
0.0016595869074375598 1e-35
0.0016982436524617442 1e-35
0.0017378008287493763 1e-35
0.0017782794100389228 1e-35
0.0018197008586099826 1e-35
0.0018620871366628676 1e-35
0.0019054607179632482 1e-35
0.0019498445997580456 1e-35
0.001995262314968879 1e-35
0.0020417379446695297 1e-35
0.0020892961308540386 1e-35
0.0021379620895022326 1e-35
0.002187761623949552 1e-35
0.00223872113856834 1e-35
0.0022908676527677724 1e-35
0.0023442288153199225 1e-35
0.00239883291901949 1e-35
0.002454708915685031 1e-35
0.0025118864315095794 1e-35
0.0025703957827688645 1e-35
0.0026302679918953813 1e-35
0.002691534803926914 1e-35
0.002754228703338166 1e-35
0.002818382931264455 1e-35
0.0028840315031266055 1e-35
0.0029512092266663842 1e-35
0.003019951720402016 1e-35
0.003090295432513592 1e-35
0.0031622776601683794 1e-35
0.003235936569296281 1e-35
0.003311311214825911 1e-35
0.0033884415613920273 1e-35
0.0034673685045253167 1e-35
0.0035481338923357532 1e-35
0.003630780547701014 1e-35
0.003715352290971728 1e-35
0.0038018939632056127 1e-35
0.003890451449942805 1e-35
0.003981071705534973 1e-35
0.004073802778041126 1e-35
0.004168693834703355 1e-35
0.004265795188015926 1e-35
0.004365158322401661 1e-35
0.0044668359215096305 1e-35
0.004570881896148752 1e-35
0.004677351412871981 1e-35
0.004786300923226385 1e-35
0.004897788193684461 1e-35
0.005011872336272725 1e-35
0.005128613839913648 1e-35
0.005248074602497723 1e-35
0.005370317963702527 1e-35
0.005495408738576248 1e-35
0.005623413251903491 1e-35
0.005754399373371567 1e-35
0.00588843655355589 1e-35
0.0060255958607435805 1e-35
0.006165950018614822 1e-35
0.00630957344480193 1e-35
0.006456542290346556 1e-35
0.006606934480075964 1e-35
0.006760829753919818 1e-35
0.006918309709189363 1e-35
0.00707945784384138 1e-35
0.007244359600749898 1e-35
0.007413102413009177 1e-35
0.007585775750291836 1e-35
0.007762471166286911 1e-35
0.007943282347242814 1e-35
0.008128305161640995 1e-35
0.008317637711026709 1e-35
0.008511380382023759 1e-35
0.008709635899560805 1e-35
0.008912509381337459 1e-35
0.009120108393559097 1e-35
0.009332543007969905 1e-35
0.009549925860214359 1e-35
0.009772372209558112 1e-35
0.01 1e-35
0.010232929922807542 1e-35
0.010471285480508996 1e-35
0.010715193052376065 1e-35
0.01096478196143185 1e-35
0.011220184543019636 1e-35
0.01148153621496883 1e-35
0.011748975549395297 1e-35
0.012022644346174132 1e-35
0.012302687708123818 1e-35
0.012589254117941675 1.3996479694365586e-35
0.012882495516931342 8.270588387595168e-35
0.013182567385564075 4.686869718494287e-34
0.01348962882591654 2.5495183758866658e-33
0.013803842646028852 1.3324555672404638e-32
0.014125375446227547 6.69650156124801e-32
0.01445439770745928 3.2390389883990527e-31
0.01479108388168208 1.5091097908171951e-30
0.01513561248436208 6.77823828047859e-30
0.01548816618912481 2.937315521425098e-29
0.015848931924611134 1.229023903677627e-28
0.0162181009735893 4.96908168781093e-28
0.016595869074375606 1.9427648570657324e-27
0.016982436524617443 7.35033495487743e-27
0.017378008287493755 2.6930458296420804e-26
0.01778279410038923 9.561578992892138e-26
0.018197008586099836 3.291978943924586e-25
0.018620871366628676 1.0997937687327044e-24
0.019054607179632473 3.567553707485399e-24
0.019498445997580455 1.1243624803203092e-23
0.0199526231496888 3.444955292838125e-23
0.020417379446695295 1.0267403190419972e-22
0.020892961308540396 2.978443886444978e-22
0.021379620895022326 8.414257076941903e-22
0.02187761623949553 2.316217559426091e-21
0.0223872113856834 6.216040568787896e-21
0.022908676527677734 1.6272230934438987e-20
0.023442288153199226 4.157203175385443e-20
0.02398832919019491 1.037033554390446e-19
0.02454708915685031 2.527160323920646e-19
0.025118864315095808 6.019034683630338e-19
0.025703957827688632 1.4017653709182508e-18
0.026302679918953815 3.1935479048228853e-18
0.026915348039269153 7.120513330808699e-18
0.02754228703338166 1.5544405019374462e-17
0.028183829312644536 3.323855537770272e-17
0.028840315031266057 6.964516155528575e-17
0.029512092266663854 1.4305116343583793e-16
0.03019951720402016 2.881441107018318e-16
0.030902954325135904 5.693873153980269e-16
0.03162277660168379 1.1041876398087576e-15
0.03235936569296283 2.1021711242266972e-15
0.03311311214825911 3.930358212034185e-15
0.033884415613920256 7.219044298575817e-15
0.034673685045253165 1.3030207068668043e-14
0.03548133892335755 2.311976844535101e-14
0.03630780547701014 4.033748022821911e-14
0.03715352290971726 6.922386914347113e-14
0.038018939632056124 1.1688255134455832e-13
0.03890451449942807 1.942277841488844e-13
0.039810717055349734 3.177301022377131e-13
0.04073802778041128 5.118050485325646e-13
0.04168693834703355 8.120079354581276e-13
0.04265795188015928 1.2692065385883532e-12
0.04365158322401661 1.9548976487697138e-12
0.04466835921509633 2.967805516254491e-12
0.04570881896148752 4.441843010381999e-12
0.046773514128719836 6.555422864803426e-12
0.04786300923226385 9.541971463194307e-12
0.04897788193684464 1.3701319235101568e-11
0.05011872336272725 1.9411422705668308e-11
0.05128613839913651 2.713962278441181e-11
0.05248074602497723 3.745237873994417e-11
0.05370317963702527 5.1022162257801555e-11
0.05495408738576243 6.862998325765646e-11
0.05623413251903491 9.116188665618086e-11
0.057543993733715666 1.1959774736453685e-10
0.0588843655355589 1.5499083779831052e-10
0.060255958607435746 1.984369787187912e-10
0.06165950018614822 2.510326273124928e-10
0.0630957344480193 3.1382200360394453e-10
0.06456542290346556 3.8773428111463193e-10
0.06606934480075957 4.735129171793244e-10
0.06760829753919818 5.716402935905871e-10
0.06918309709189363 6.822618784025435e-10
0.0707945784384138 8.051149896910117e-10
0.07244359600749899 9.39467823519304e-10
0.07413102413009177 1.0840745931609151e-09
0.07585775750291836 1.2371523312028086e-09
0.07762471166286919 1.3963840850430572e-09
0.07943282347242814 1.5589518929887134e-09
0.08128305161640995 1.7216011213346151e-09
0.08317637711026708 1.8807355866092624e-09
0.08511380382023767 2.0325405447914e-09
0.08709635899560805 2.1731282998801223e-09
0.08912509381337459 2.2986990842106615e-09
0.09120108393559097 2.4057082037586527e-09
0.09332543007969915 2.4910294061764307e-09
0.09549925860214359 2.5521041498216867e-09
0.09772372209558111 2.587066993222519e-09
0.1 2.5948386728995015e-09
0.10232929922807547 2.575180500105021e-09
0.10471285480508996 2.528706318336725e-09
0.10715193052376071 2.4568512014159055e-09
0.1096478196143185 2.361799080546359e-09
0.1122018454301963 2.246374304867694e-09
0.1148153621496883 2.113904520619545e-09
0.11748975549395291 1.968064001474688e-09
0.12022644346174131 1.8127075441364575e-09
0.1230268770812381 1.6517052030269713e-09
0.12589254117941676 1.4887874997683055e-09
0.12882495516931336 1.3274094050272717e-09
0.13182567385564073 1.1706395100544199e-09
0.13489628825916533 1.0210785811529965e-09
0.13803842646028852 8.808093380610489e-10
0.1412537544622754 7.513770267652624e-10
0.1445439770745928 6.33798352017303e-10
0.1479108388168207 5.285947356327267e-10
0.15135612484362088 4.358447618373043e-10
0.1548816618912481 3.5525009307994924e-10
0.15848931924611143 2.862090689151862e-10
0.16218100973589297 2.2789257281885011e-10
0.16595869074375613 1.79317471386279e-10
0.16982436524617442 1.3941388375889464e-10
0.17378008287493762 1.0708360902930806e-10
0.1778279410038923 8.124811700436344e-11
0.18197008586099844 6.088550225309452e-11
0.18620871366628675 4.505664596575927e-11
0.19054607179632482 3.292148422128933e-11
0.19498445997580455 2.3746729602152994e-11
0.19952623149688808 1.6906642405883577e-11
0.20417379446695297 1.1878521424425692e-11
0.2089296130854041 8.234516676141156e-12
0.21379620895022325 5.6311968800517345e-12
0.2187761623949554 3.798072102037078e-12
0.22387211385683378 2.5260121648710612e-12
0.22908676527677724 1.6562428798766963e-12
0.23442288153199228 1.0703659887732308e-12
0.239883291901949 6.816481705533256e-13
0.24547089156850285 4.2766584329980625e-13
0.25118864315095796 2.6427638803007737e-13
0.25703957827688645 1.6080937186127808e-13
0.26302679918953814 9.632736554301501e-14
0.2691534803926914 5.6787907956332455e-14
0.2754228703338166 3.29388752593895e-14
0.2818382931264455 1.8792453319028872e-14
0.28840315031266056 1.054268710470452e-14
0.2951209226666384 5.814062644134074e-15
0.3019951720402016 3.1508819598434147e-15
0.30902954325135923 1.677521388861027e-15
0.31622776601683794 8.770874187336641e-16
0.3235936569296281 4.502023813394213e-16
0.3311311214825911 2.2678260915331503e-16
0.33884415613920277 1.1207052186782802e-16
0.34673685045253166 5.4311394033068657e-17
0.3548133892335753 2.5801332772845348e-17
0.3630780547701014 1.2010859965334827e-17
0.3715352290971728 5.476603553191455e-18
0.38018939632056126 2.444969439940952e-18
0.3890451449942805 1.0682559661573058e-18
0.3981071705534973 4.565904734324759e-19
0.407380277804113 1.9082391186568624e-19
0.41686938347033553 7.794581613449174e-20
0.42657951880159256 3.1102926232515327e-20
0.4365158322401661 1.2118450663658595e-20
0.4466835921509635 4.608014533984292e-21
0.4570881896148752 1.70914673499978e-21
0.4677351412871981 6.180388513252975e-22
0.47863009232263853 2.1776567333421397e-22
0.48977881936844664 7.472408687024307e-23
0.5011872336272725 2.4956494949825537e-23
0.5128613839913648 8.107861938716106e-24
0.5248074602497729 2.560769685036931e-24
0.5370317963702532 7.857986072002221e-25
0.5495408738576248 2.3412999115812987e-25
0.5623413251903491 6.769079540073872e-26
0.5754399373371573 1.897770730559601e-26
0.5888436553555896 5.155931399260007e-27
0.6025595860743581 1.3565013767056107e-27
0.6165950018614822 3.453632609113776e-28
0.6309573444801936 8.5027680056385e-29
0.6456542290346563 2.022789078916929e-29
0.6606934480075958 4.646402537358794e-30
0.6760829753919811 1.0297240039824094e-30
0.6918309709189363 2.1999670471056836e-31
0.7079457843841374 4.527390700191154e-32
0.7244359600749899 8.967114922110128e-33
0.7413102413009169 1.7078831203715665e-33
0.7585775750291835 3.125236440976627e-34
0.7762471166286912 5.489545560621661e-35
0.7943282347242814 1e-35
0.8128305161640986 1e-35
0.8317637711026709 1e-35
0.8511380382023759 1e-35
0.8709635899560806 1e-35
0.891250938133745 1e-35
0.9120108393559097 1e-35
0.9332543007969905 1e-35
0.9549925860214359 1e-35
0.9772372209558101 1e-35
1.0 1e-35
1.0232929922807537 1e-35
1.0471285480508996 1e-35
1.071519305237606 1e-35
1.096478196143185 1e-35
1.122018454301963 1e-35
1.1481536214968828 1e-35
1.174897554939529 1e-35
1.2022644346174132 1e-35
1.2302687708123812 1e-35
1.2589254117941675 1e-35
1.2882495516931336 1e-35
1.3182567385564075 1e-35
1.3489628825916533 1e-35
1.3803842646028852 1e-35
1.412537544622754 1e-35
1.4454397707459279 1e-35
1.4791083881682072 1e-35
1.5135612484362087 1e-35
1.5488166189124812 1e-35
1.584893192461114 1e-35
1.6218100973589298 1e-35
1.6595869074375613 1e-35
1.6982436524617444 1e-35
1.7378008287493762 1e-35
1.7782794100389228 1e-35
1.8197008586099843 1e-35
1.8620871366628675 1e-35
1.9054607179632483 1e-35
1.9498445997580456 1e-35
1.9952623149688808 1e-35
2.0417379446695296 1e-35
2.089296130854041 1e-35
2.1379620895022327 1e-35
2.187761623949554 1e-35
2.23872113856834 1e-35
2.290867652767775 1e-35
2.344228815319923 1e-35
2.398832919019492 1e-35
2.454708915685031 1e-35
2.5118864315095824 1e-35
2.570395782768865 1e-35
2.630267991895384 1e-35
2.691534803926917 1e-35
2.754228703338163 1e-35
2.818382931264452 1e-35
2.8840315031266055 1e-35
2.951209226666384 1e-35
3.019951720402013 1e-35
3.0902954325135887 1e-35
3.1622776601683795 1e-35
3.235936569296281 1e-35
3.3113112148259076 1e-35
3.388441561392024 1e-35
3.4673685045253166 1e-35
3.5481338923357533 1e-35
3.63078054770101 1e-35
3.715352290971724 1e-35
3.801893963205613 1e-35
3.890451449942805 1e-35
3.981071705534969 1e-35
4.073802778041126 1e-35
4.168693834703355 1e-35
4.265795188015925 1e-35
4.365158322401657 1e-35
4.46683592150963 1e-35
4.570881896148752 1e-35
4.677351412871981 1e-35
4.7863009232263805 1e-35
4.897788193684462 1e-35
5.011872336272725 1e-35
5.1286138399136485 1e-35
5.248074602497723 1e-35
5.370317963702527 1e-35
5.4954087385762485 1e-35
5.623413251903491 1e-35
5.754399373371567 1e-35
5.88843655355589 1e-35
6.025595860743581 1e-35
6.165950018614822 1e-35
6.30957344480193 1e-35
6.456542290346556 1e-35
6.606934480075965 1e-35
6.760829753919819 1e-35
6.918309709189363 1e-35
7.07945784384138 1e-35
7.244359600749906 1e-35
7.413102413009177 1e-35
7.585775750291836 1e-35
7.76247116628692 1e-35
7.943282347242821 1e-35
8.128305161640995 1e-35
8.317637711026709 1e-35
8.511380382023768 1e-35
8.709635899560814 1e-35
8.91250938133746 1e-35
9.120108393559097 1e-35
9.332543007969914 1e-35
9.549925860214369 1e-35
9.772372209558112 1e-35
10.0 1e-35
10.232929922807536 1e-35
10.471285480509007 1e-35
10.71519305237607 1e-35
10.964781961431852 1e-35
11.220184543019652 1e-35
11.481536214968841 1e-35
11.74897554939528 1e-35
12.02264434617413 1e-35
12.30268770812381 1e-35
12.589254117941662 1e-35
12.882495516931323 1e-35
13.182567385564074 1e-35
13.489628825916533 1e-35
13.803842646028839 1e-35
14.125375446227526 1e-35
14.45439770745928 1e-35
14.791083881682072 1e-35
15.135612484362072 1e-35
15.488166189124795 1e-35
15.848931924611142 1e-35
16.218100973589298 1e-35
16.595869074375596 1e-35
16.982436524617427 1e-35
17.378008287493763 1e-35
17.78279410038923 1e-35
18.197008586099827 1e-35
18.620871366628656 1e-35
19.054607179632484 1e-35
19.498445997580454 1e-35
19.952623149688787 1e-35
20.417379446695275 1e-35
20.892961308540407 1e-35
21.379620895022324 1e-35
21.87761623949552 1e-35
22.38721138568338 1e-35
22.90867652767775 1e-35
23.442288153199225 1e-35
23.9883291901949 1e-35
24.547089156850287 1e-35
25.11886431509582 1e-35
25.703957827688647 1e-35
26.302679918953814 1e-35
26.91534803926914 1e-35
27.54228703338169 1e-35
28.18382931264455 1e-35
28.84031503126606 1e-35
29.51209226666384 1e-35
30.199517204020193 1e-35
30.90295432513592 1e-35
31.622776601683793 1e-35
32.35936569296281 1e-35
33.11311214825915 1e-35
33.884415613920275 1e-35
34.673685045253166 1e-35
35.481338923357534 1e-35
36.30780547701018 1e-35
37.15352290971728 1e-35
38.018939632056124 1e-35
38.904514499428046 1e-35
39.81071705534978 1e-35
40.7380277804113 1e-35
41.68693834703355 1e-35
42.65795188015925 1e-35
43.651583224016655 1e-35
44.668359215096345 1e-35
45.708818961487516 1e-35
46.77351412871981 1e-35
47.8630092322639 1e-35
48.97788193684456 1e-35
50.118723362727145 1e-35
51.28613839913648 1e-35
52.48074602497723 1e-35
53.703179637025215 1e-35
54.954087385762485 1e-35
56.23413251903491 1e-35
57.543993733715666 1e-35
58.88436553555884 1e-35
60.25595860743569 1e-35
61.65950018614822 1e-35
63.0957344480193 1e-35
64.56542290346549 1e-35
66.06934480075964 1e-35
67.60829753919819 1e-35
69.18309709189363 1e-35
70.79457843841374 1e-35
72.44359600749891 1e-35
74.13102413009177 1e-35
75.85775750291836 1e-35
77.62471166286912 1e-35
79.43282347242821 1e-35
81.28305161640995 1e-35
83.17637711026708 1e-35
85.11380382023759 1e-35
87.09635899560796 1e-35
89.12509381337459 1e-35
91.20108393559097 1e-35
93.32543007969905 1e-35
95.49925860214368 1e-35
97.72372209558111 1e-35
100.0 1e-35