cloudy trunk
Loading...
Searching...
No Matches
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,
T 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,
T 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, 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().