32 double (
Graybody::*
I)(double, double, double)
const;
35 double (
Graybody::*
I2)(double, double, double, double, double)
const;
43 double flux(
double nu,
void *fd) {
44 auto &p = *static_cast<const FluxData*>(fd);
45 return (p.g->*(p.I))(nu, p.Th, p.Sigmah) * p.d->response(nu);
51 double flux2(
double nu,
void *fd) {
52 auto &p = *static_cast<const FluxData*>(fd);
53 return (p.g->*(p.I2))(nu, p.Tc, p.Sigmac, p.Th, p.Sigmah) *
63 double T,
double Sigma,
const Detector *detect,
74 double (
Graybody::*I)(
double,
double,
double,
double,
double)
const,
75 double Tc,
double Sigmac,
double Th,
double Sigmah,
76 const Detector *detect,
double sr)
const MathUtils numerical mathematics library.
double(Graybody::* I)(double, double, double) const
Single-temperature graybody intensity method.
double Sigmah
Core mass surface density.
double err_
Integration relative error.
double Th
Core temperature.
double Tc
Halo temperature.
double flux(double nu, void *fd)
Flux density integrand (one-component).
double Itot2(double(Graybody::*I)(double, double, double, double, double) const, double Tc, double Sigmac, double Th, double Sigmah, const Detector *detect, double sr=1.0) const
Two-temperature graybody integrated flux variant (erg/cm^2/s/??).
const Detector * d
Detector instance.
double flux2(double nu, void *fd)
Flux density integrand (two-component).
Parameters required by flux().
virtual std::pair< double, double > freqRange() const noexcept
Frequency range containing significant response.
const Graybody * g
Graybody instance.
double Itot(double(Graybody::*I)(double, double, double) const, double T, double Sigma, const Detector *detect, double sr=1.0) const
Single-temperature graybody integrated flux variant (erg/cm^2/s/??).
double Sigmac
Halo surface density.
double(Graybody::* I2)(double, double, double, double, double) const
Two-temperature graybody intensity method.
double kgauss_r(double(*f_r)(double x, void *), void *fdata, double a, double b, double err)