analytic spectrum

class analytic_t : public wt::spectrum::spectrum_real_t

Analytic (real-valued) spectrum: uses an arbitrary used-supplied real-valued function of wavenumber. Does not provide an underlying distribution, distribution() returns nullptr. Does not provide power() queries, which always return 0.

Public Functions

inline analytic_t(std::string id, range_t<wavenumber_t> range, std::regular_invocable<wavenumber_t> auto f, std::string func_description)
analytic_t(analytic_t&&) = default
inline virtual const distribution1d_t *distribution() const noexcept override

Returns the underlying spectrum distribution.

inline virtual f_t power() const noexcept override

Returns the total spectral power contained in this spectrum. Not support for analytic spectra.

inline virtual f_t power(const range_t<wavenumber_t> &wavenumbers) const noexcept override

Returns the spectral power over the provided wavenumber range. Not support for analytic spectra.

inline virtual range_t<wavenumber_t> wavenumber_range() const noexcept override

Returns the range of wavenumbers for which this spectrum is defined. Querying the spectrum with wavenumber<range.min or wavenumber>range.max will always be 0.

inline virtual wavenumber_t mean_wavenumber() const noexcept override

Returns the mean wavenumber for this spectrum.

inline virtual f_t f(const wavenumber_t wavenumber) const noexcept override

Query the spectrum. Returns the spectral power for the given wavenumber ‘wavenumber’.

virtual scene::element::info_t description() const override