cloudy trunk
Loading...
Searching...
No Matches
Functions | Variables
thirdparty.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool linfit (long n, const double x[], const double y[], double &a, double &siga, double &b, double &sigb)
 
double factorial (long n)
 
double lfactorial (long n)
 
complex< double > cdgamma (complex< double > x)
 
double bessel_j0 (double x)
 
double bessel_y0 (double x)
 
double bessel_j1 (double x)
 
double bessel_y1 (double x)
 
double bessel_jn (int n, double x)
 
double bessel_yn (int n, double x)
 
double bessel_k0 (double x)
 
double bessel_k0_scaled (double x)
 
double bessel_k1 (double x)
 
double bessel_k1_scaled (double x)
 
double bessel_i0 (double x)
 
double bessel_i0_scaled (double x)
 
double bessel_i1 (double x)
 
double bessel_i1_scaled (double x)
 
double ellpk (double x)
 
double expn (int n, double x)
 
double erf (double)
 
double erfc (double)
 
double erfce (double)
 
void init_genrand (unsigned long s)
 
void init_by_array (unsigned long init_key[], int key_length)
 
unsigned long genrand_int32 (void)
 
long genrand_int31 (void)
 
double genrand_real1 (void)
 
double genrand_real2 (void)
 
double genrand_real3 (void)
 
double genrand_res53 (void)
 
void spline_cubic_set (long n, const double t[], const double y[], double ypp[], int ibcbeg, double ybcbeg, int ibcend, double ybcend)
 
void spline_cubic_val (long n, const double t[], double tval, const double y[], const double ypp[], double *yval, double *ypval, double *yppval)
 
void spline (const double x[], const double y[], long int n, double yp1, double ypn, double y2a[])
 
void splint (const double xa[], const double ya[], const double y2a[], long int n, double x, double *y)
 
void spldrv (const double xa[], const double ya[], const double y2a[], long int n, double x, double *y)
 
void splint_safe (const double xa[], const double ya[], const double y2a[], long int n, double x, double *y, bool *lgOutOfBounds)
 
void spldrv_safe (const double xa[], const double ya[], const double y2a[], long int n, double x, double *y, bool *lgOutOfBounds)
 
double lagrange (const double x[], const double y[], long n, double xval)
 
double linint (const double x[], const double y[], long n, double xval)
 
template<class T >
long hunt_bisect (const T x[], long n, T xval)
 
template<class T >
long hunt_bisect_reverse (const T x[], long n, T xval)
 
void getrf_wrapper (long M, long N, double *A, long lda, int32 *ipiv, int32 *info)
 
void getrs_wrapper (char trans, long N, long nrhs, double *A, long lda, int32 *ipiv, double *B, long ldb, int32 *info)
 
void humlik (int n, const realnum x[], realnum y, realnum k[])
 
realnum FastVoigtH (realnum a, realnum v)
 
void VoigtH (realnum a, const realnum v[], realnum y[], int n)
 
void VoigtU (realnum a, const realnum v[], realnum y[], int n)
 
double VoigtH0 (double a)
 
double VoigtU0 (double a)
 
string MD5file (const char *fnam, access_scheme scheme=AS_DATA_ONLY)
 
string MD5datafile (const char *fnam, access_scheme scheme=AS_DATA_ONLY)
 
string MD5string (const string &str)
 

Variables

static const int NPRE_FACTORIAL = 171
 
static const unsigned int NMD5 = 32
 

Function Documentation

◆ bessel_i0()

double bessel_i0 ( double  x)

Definition at line 1726 of file thirdparty.cpp.

References chbevl(), DEBUG_ENTRY, i0_A, and i0_B.

Referenced by bessel_k0(), and bessel_k0_scaled().

Here is the call graph for this function:

◆ bessel_i0_scaled()

double bessel_i0_scaled ( double  x)

Definition at line 1743 of file thirdparty.cpp.

References chbevl(), DEBUG_ENTRY, i0_A, and i0_B.

Here is the call graph for this function:

◆ bessel_i1()

double bessel_i1 ( double  x)

Definition at line 1908 of file thirdparty.cpp.

References chbevl(), DEBUG_ENTRY, i1_A, and i1_B.

Referenced by bessel_k1(), and bessel_k1_scaled().

Here is the call graph for this function:

◆ bessel_i1_scaled()

double bessel_i1_scaled ( double  x)

Definition at line 1929 of file thirdparty.cpp.

References chbevl(), DEBUG_ENTRY, i1_A, and i1_B.

Here is the call graph for this function:

◆ bessel_j0()

double bessel_j0 ( double  x)

Definition at line 708 of file thirdparty.cpp.

References b0_PP, b0_PQ, b0_QP, b0_QQ, b0_RP, b0_RQ, DEBUG_ENTRY, DR1, DR2, p1evl(), PIO4, polevl(), and SQ2OPI.

Referenced by bessel_jn(), and bessel_y0().

Here is the call graph for this function:

◆ bessel_j1()

double bessel_j1 ( double  x)

Definition at line 939 of file thirdparty.cpp.

References b1_PP, b1_PQ, b1_QP, b1_QQ, b1_RP, b1_RQ, DEBUG_ENTRY, p1evl(), polevl(), SQ2OPI, THPIO4, Z1, and Z2.

Referenced by bessel_jn(), and bessel_y1().

Here is the call graph for this function:

◆ bessel_jn()

double bessel_jn ( int  n,
double  x 
)

Definition at line 1042 of file thirdparty.cpp.

References bessel_j0(), bessel_j1(), DEBUG_ENTRY, factorial(), powi(), and sign().

Here is the call graph for this function:

◆ bessel_k0()

double bessel_k0 ( double  x)

Definition at line 1359 of file thirdparty.cpp.

References bessel_i0(), cdEXIT, chbevl(), DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, k0_A, and k0_B.

Referenced by S62_Therm_ave_coll_str().

Here is the call graph for this function:

◆ bessel_k0_scaled()

double bessel_k0_scaled ( double  x)

Definition at line 1382 of file thirdparty.cpp.

References bessel_i0(), cdEXIT, chbevl(), DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, k0_A, and k0_B.

Here is the call graph for this function:

◆ bessel_k1()

double bessel_k1 ( double  x)

Definition at line 1535 of file thirdparty.cpp.

References bessel_i1(), cdEXIT, chbevl(), DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, k1_A, and k1_B.

Referenced by S62_Therm_ave_coll_str().

Here is the call graph for this function:

◆ bessel_k1_scaled()

double bessel_k1_scaled ( double  x)

Definition at line 1557 of file thirdparty.cpp.

References bessel_i1(), cdEXIT, chbevl(), DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, k1_A, and k1_B.

Here is the call graph for this function:

◆ bessel_y0()

double bessel_y0 ( double  x)

Definition at line 746 of file thirdparty.cpp.

References b0_PP, b0_PQ, b0_QP, b0_QQ, b0_YP, b0_YQ, bessel_j0(), cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, p1evl(), PIO4, polevl(), SQ2OPI, and TWOOPI.

Referenced by bessel_yn().

Here is the call graph for this function:

◆ bessel_y1()

double bessel_y1 ( double  x)

Definition at line 966 of file thirdparty.cpp.

References b1_PP, b1_PQ, b1_QP, b1_QQ, b1_YP, b1_YQ, bessel_j1(), cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, p1evl(), polevl(), SQ2OPI, THPIO4, and TWOOPI.

Referenced by bessel_yn().

Here is the call graph for this function:

◆ bessel_yn()

double bessel_yn ( int  n,
double  x 
)

Definition at line 1177 of file thirdparty.cpp.

References bessel_y0(), bessel_y1(), cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, and sign().

Here is the call graph for this function:

◆ cdgamma()

complex< double > cdgamma ( complex< double >  x)

Definition at line 432 of file thirdparty.cpp.

References DEBUG_ENTRY.

Referenced by DoSutherland(), and Hypergeometric2F1().

◆ ellpk()

double ellpk ( double  x)

Definition at line 2041 of file thirdparty.cpp.

References C1, cdEXIT, DEBUG_ENTRY, elk_P, elk_Q, EXIT_FAILURE, ioQQQ, and polevl().

Referenced by StarkCollTransProb_VF01().

Here is the call graph for this function:

◆ erf()

double erf ( double  )

the standard error functions

◆ erfc()

double erfc ( double  )

◆ erfce()

double erfce ( double  x)

erfce(a) returns erfc(a)*exp(a^2)

Definition at line 2454 of file thirdparty.cpp.

References DEBUG_ENTRY, erf_P, erf_Q, erf_R, erf_S, p1evl(), and polevl().

Referenced by VoigtH0(), and VoigtU0().

Here is the call graph for this function:

◆ expn()

double expn ( int  n,
double  x 
)

expn, returns exponential integral,

Parameters
nis order, 1 for first integral integral
xis argument, must be positive

Definition at line 2121 of file thirdparty.cpp.

References BIG, cdEXIT, DEBUG_ENTRY, EULER, EXIT_FAILURE, factorial(), ioQQQ, is_odd(), MAXLOG, and powi().

Referenced by k2DampArg::operator()(), ParseDrive(), and SanityCheckBegin().

Here is the call graph for this function:

◆ factorial()

double factorial ( long  n)

factorial: compute n! by lookup in table of predefined factorials

Definition at line 356 of file thirdparty.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, NPRE_FACTORIAL, and pre_factorial.

Referenced by bessel_jn(), bhG(), bhg(), DoSutherland(), expn(), fsff(), and hrii().

◆ FastVoigtH()

realnum FastVoigtH ( realnum  a,
realnum  v 
)

Definition at line 3171 of file thirdparty.cpp.

References ASSERT, dawson(), DEBUG_ENTRY, dsexp(), order(), pow2(), and SQRTPI.

Referenced by VoigtH().

Here is the call graph for this function:

◆ genrand_int31()

long genrand_int31 ( void  )

Definition at line 2918 of file thirdparty.cpp.

References next_state(), nexxt, and nleft.

Here is the call graph for this function:

◆ genrand_int32()

unsigned long genrand_int32 ( void  )

Definition at line 2901 of file thirdparty.cpp.

References next_state(), nexxt, and nleft.

Referenced by genrand_res53().

Here is the call graph for this function:

◆ genrand_real1()

double genrand_real1 ( void  )

Definition at line 2935 of file thirdparty.cpp.

References next_state(), nexxt, and nleft.

Here is the call graph for this function:

◆ genrand_real2()

double genrand_real2 ( void  )

Definition at line 2953 of file thirdparty.cpp.

References next_state(), nexxt, and nleft.

Here is the call graph for this function:

◆ genrand_real3()

double genrand_real3 ( void  )

Definition at line 2971 of file thirdparty.cpp.

References next_state(), nexxt, and nleft.

Referenced by RandGauss().

Here is the call graph for this function:

◆ genrand_res53()

double genrand_res53 ( void  )

Definition at line 2989 of file thirdparty.cpp.

References genrand_int32().

Here is the call graph for this function:

◆ getrf_wrapper()

void getrf_wrapper ( long  M,
long  N,
double *  A,
long  lda,
int32 *  ipiv,
int32 *  info 
)

getrf_wrapper return value is zero for success, non-zero is error condition

Parameters
M
N
*A
lda
*ipiv
*info

Definition at line 47 of file thirdparty_lapack.cpp.

References ASSERT, DGETRF(), INT32_MAX, M, and N.

Referenced by atom_pop5(), AtomSeqBeryllium(), FeIILevelPops(), find_solution(), iso_level(), oi_level_pops(), SanityCheckBegin(), and solve_system().

Here is the call graph for this function:

◆ getrs_wrapper()

void getrs_wrapper ( char  trans,
long  N,
long  nrhs,
double *  A,
long  lda,
int32 *  ipiv,
double *  B,
long  ldb,
int32 *  info 
)

getrs_wrapper return value is zero for success, non-zero is error condition

Parameters
trans
N
nrhs
*A
lda
*ipiv
*B
ldb
*info

Definition at line 69 of file thirdparty_lapack.cpp.

References ASSERT, DGETRS(), INT32_MAX, and N.

Referenced by atom_pop5(), AtomSeqBeryllium(), FeIILevelPops(), find_solution(), iso_level(), oi_level_pops(), SanityCheckBegin(), and solve_system().

Here is the call graph for this function:

◆ humlik()

void humlik ( int  n,
const realnum  x[],
realnum  y,
realnum  k[] 
)

Definition at line 3257 of file thirdparty.cpp.

References a0, DEBUG_ENTRY, e2(), and h2.

Referenced by VoigtH().

Here is the call graph for this function:

◆ hunt_bisect()

template<class T >
long hunt_bisect ( const T  x[],
long  n,
xval 
)
inline

find index ilo such that x[ilo] <= xval < x[ilo+1] using bisection this version implicitly assumes that x is monotonically increasing

Definition at line 270 of file thirdparty.h.

Referenced by t_fe2ovr_la::fe2par(), GrainsInit(), iso_collapsed_bnl_set(), iso_dielec_recomb_rate(), linint(), qheat_init(), spline_cubic_val(), TempInterp(), TempInterp2(), and UpdatePot1().

◆ hunt_bisect_reverse()

template<class T >
long hunt_bisect_reverse ( const T  x[],
long  n,
xval 
)
inline

find index ilo such that x[ilo] <= xval < x[ilo+1] using bisection this version implicitly assumes that x is monotonically decreasing

Definition at line 290 of file thirdparty.h.

◆ init_by_array()

void init_by_array ( unsigned long  init_key[],
int  key_length 
)

Definition at line 2853 of file thirdparty.cpp.

References init_genrand(), initf, N, nleft, and state.

Here is the call graph for this function:

◆ init_genrand()

void init_genrand ( unsigned long  s)

Definition at line 2834 of file thirdparty.cpp.

References initf, N, nleft, and state.

Referenced by init_by_array(), next_state(), ParseAtomH2(), ParseAtomISO(), and ParseSet().

◆ lagrange()

double lagrange ( const double  x[],
const double  y[],
long  n,
double  xval 
)

lagrange: do lagrange interpolation of order n on x[], y[] use with caution, especialy for high order n! using spline interpolation above is preferred

Parameters
x[]
y[]
n
xval

do lagrange interpolation of order n on x[], y[]

Definition at line 433 of file thirdparty_interpolate.cpp.

References DEBUG_ENTRY.

Referenced by TempInterp(), and TempInterp2().

◆ lfactorial()

double lfactorial ( long  n)

lfactorial: compute log10(n!), this sroutine cahes its results for efficiency

Definition at line 399 of file thirdparty.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, t_lfact::get_lfact(), Singleton< t_lfact >::Inst(), and ioQQQ.

Referenced by bhg_log(), bhG_mx(), hrii_log(), and log10_fsff().

Here is the call graph for this function:

◆ linfit()

bool linfit ( long  n,
const double  x[],
const double  y[],
double &  a,
double &  siga,
double &  b,
double &  sigb 
)

Definition at line 46 of file thirdparty.cpp.

References ASSERT, DEBUG_ENTRY, and pow2().

Referenced by iter_track::deriv(), and iter_track::zero_fit().

Here is the call graph for this function:

◆ linint()

double linint ( const double  x[],
const double  y[],
long  n,
double  xval 
)

do linear interpolation on x[], y[]; it is assumed that x[] is strictly monotonically increasing

Parameters
x[]
y[]
n
xval

do linear interpolation on x[], y[]; it is assumed that x[] is strictly monotonically increasing

Definition at line 456 of file thirdparty_interpolate.cpp.

References ASSERT, DEBUG_ENTRY, and hunt_bisect().

Referenced by CHIANTI_Upsilon(), cross_section(), DynaIterStart(), GetHS98CrossSection(), InterpCollRate(), lines_helium(), MolDissocCrossSection(), and StoutCollRate().

Here is the call graph for this function:

◆ MD5datafile()

string MD5datafile ( const char *  fnam,
access_scheme  scheme = AS_DATA_ONLY 
)

non-standard MD5 algorithm that skips eol characters and comments lines

Definition at line 3444 of file thirdparty.cpp.

References DEBUG_ENTRY, MD5string(), mode_r, and open_data().

Referenced by t_continuum::t_continuum().

Here is the call graph for this function:

◆ MD5file()

string MD5file ( const char *  fnam,
access_scheme  scheme = AS_DATA_ONLY 
)

calculate the MD5 sum of a file

Definition at line 3425 of file thirdparty.cpp.

References DEBUG_ENTRY, MD5string(), mode_r, and open_data().

Here is the call graph for this function:

◆ MD5string()

string MD5string ( const string &  str)

calculate the MD5 sum of a string

Definition at line 3461 of file thirdparty.cpp.

References ASSERT, cpu, DEBUG_ENTRY, t_cpu::i(), t_cpu_i::little_endian(), MD5_Transform(), MD5swap(), and state.

Referenced by MD5datafile(), and MD5file().

Here is the call graph for this function:

◆ spldrv()

void spldrv ( const double  xa[],
const double  ya[],
const double  y2a[],
long int  n,
double  x,
double *  y 
)
inline

Definition at line 151 of file thirdparty.h.

References spline_cubic_val().

Referenced by spldrv_safe().

Here is the call graph for this function:

◆ spldrv_safe()

void spldrv_safe ( const double  xa[],
const double  ya[],
const double  y2a[],
long int  n,
double  x,
double *  y,
bool lgOutOfBounds 
)
inline

Definition at line 206 of file thirdparty.h.

References DEBUG_ENTRY, MAX2, MIN2, SAFETY, and spldrv().

Referenced by GetProbDistr_LowLimit(), and qheat().

Here is the call graph for this function:

◆ spline()

void spline ( const double  x[],
const double  y[],
long int  n,
double  yp1,
double  ypn,
double  y2a[] 
)
inline

spline: set of routines to do spline interpolation call spline first to set coefficients up, then call splint to interpolate spldrv gives dy/dx(x) rather than y(x) splint_safe and spldrv_safe check whether x is within bounds

Parameters
x[]- array of x values given
y[]- array of y values given
n- number of points in these arrays
yp1some sort of boundary condition, set to 2e31
yp2some sort of boundary condition, set to 2e31
y2a[]- array n long to save coefficients

Definition at line 117 of file thirdparty.h.

References spline_cubic_set().

Referenced by atmdat_2phot_setSplineCoefs(), atmdat_CHIANTI_readin(), hmiopc(), InitEmissivities(), and InitEnthalpy().

Here is the call graph for this function:

◆ spline_cubic_set()

void spline_cubic_set ( long  n,
const double  t[],
const double  y[],
double  ypp[],
int  ibcbeg,
double  ybcbeg,
int  ibcend,
double  ybcend 
)

Definition at line 105 of file thirdparty_interpolate.cpp.

References ASSERT, cdEXIT, d3_np_fs(), DEBUG_ENTRY, EXIT_FAILURE, ioQQQ, and MALLOC.

Referenced by spline().

Here is the call graph for this function:

◆ spline_cubic_val()

void spline_cubic_val ( long  n,
const double  t[],
double  tval,
const double  y[],
const double  ypp[],
double *  yval,
double *  ypval,
double *  yppval 
)

Definition at line 331 of file thirdparty_interpolate.cpp.

References DEBUG_ENTRY, and hunt_bisect().

Referenced by spldrv(), and splint().

Here is the call graph for this function:

◆ splint()

void splint ( const double  xa[],
const double  ya[],
const double  y2a[],
long int  n,
double  x,
double *  y 
)
inline

splint: do spline interpolation

Parameters
x[]- array of x values given
y[]- array of y valus
y2a[]- array of save values found above
n- number of points in these arrays
xvalue where x is desired
y2a[]- array n long to save coefficients

Definition at line 140 of file thirdparty.h.

References spline_cubic_val().

Referenced by atmdat_2phot_shapefunction(), hmiopc(), InitEmissivities(), and splint_safe().

Here is the call graph for this function:

◆ splint_safe()

void splint_safe ( const double  xa[],
const double  ya[],
const double  y2a[],
long int  n,
double  x,
double *  y,
bool lgOutOfBounds 
)
inline

Definition at line 166 of file thirdparty.h.

References DEBUG_ENTRY, MAX2, MIN2, SAFETY, and splint().

Referenced by GetProbDistr_HighLimit(), GetProbDistr_LowLimit(), GrainChargeTemp(), GrainTemperature(), inv_ufunct(), RebinQHeatResults(), TryDoubleStep(), and ufunct().

Here is the call graph for this function:

◆ VoigtH()

void VoigtH ( realnum  a,
const realnum  v[],
realnum  y[],
int  n 
)
inline

Definition at line 350 of file thirdparty.h.

References FastVoigtH(), and humlik().

Referenced by my_Integrand_con_pump_op::operator()(), ParseDrive(), ParsePrint(), RT_line_fine_opacity(), and VoigtU().

Here is the call graph for this function:

◆ VoigtH0()

double VoigtH0 ( double  a)
inline

Definition at line 372 of file thirdparty.h.

References erfce().

Here is the call graph for this function:

◆ VoigtU()

void VoigtU ( realnum  a,
const realnum  v[],
realnum  y[],
int  n 
)
inline

Definition at line 364 of file thirdparty.h.

References SQRTPI, and VoigtH().

Referenced by k2DampArg::operator()(), and outline_base().

Here is the call graph for this function:

◆ VoigtU0()

double VoigtU0 ( double  a)
inline

Definition at line 378 of file thirdparty.h.

References erfce(), and SQRTPI.

Here is the call graph for this function:

Variable Documentation

◆ NMD5

const unsigned int NMD5 = 32
static

the size of an MD5 checksum in characters

Definition at line 384 of file thirdparty.h.

Referenced by InitGrid(), lgCompileAtmosphere(), lgCompileAtmosphereCoStar(), lgValidBinFile(), mie_read_opc(), and ReadTable().

◆ NPRE_FACTORIAL

const int NPRE_FACTORIAL = 171
static

number of predefined factorials, so largest factorial that can be represented as double is (NPRE_FACTORIAL-1)!

Definition at line 24 of file thirdparty.h.

Referenced by factorial(), and H_photo_cs_lin().