mirror of
				https://asciireactor.com/otho/cloudy-agn.git
				synced 2025-10-31 20:48:05 +00:00 
			
		
		
		
	cleanup
This commit is contained in:
		
							parent
							
								
									82ab654923
								
							
						
					
					
						commit
						0c5e8f56af
					
				| @ -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]) | ||||
| @ -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__ | ||||
| @ -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 | ||||
| 
 | ||||
| 
 | ||||
| @ -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 | ||||
| @ -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 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user