1 #ifndef SPECTRAL_BOUND_H 2 #define SPECTRAL_BOUND_H 34 const std::vector<DoubleWithUnit>& Upper_bound);
62 return lower_b[Spec_index];
74 lower_b[Spec_index].convert_wave(U).value),
85 return upper_b[Spec_index];
97 lower_b[Spec_index].convert_wave(U).value),
102 virtual void print(std::ostream& Os)
const;
104 std::vector<DoubleWithUnit> lower_b, upper_b;
#define range_check(V, Min, Max)
Range check.
SpectralBound()
Default constructor.
We frequently have a array of numbers with units associated with them.
DoubleWithUnit upper_bound(int Spec_index, const Unit &U) const
Upper bound but with a unit conversion first in case the conversion reverses ordering.
This is a Mixin for classes that can be printed.
DoubleWithUnit lower_bound(int Spec_index) const
Lower bound of window slot.
int spectral_index(const DoubleWithUnit &W) const
Determine spectral index for given wavenumber/wavelength, or return -1 if it doesn't fit in any spect...
This gives the upper and lower bounds of the SpectralWindow.
We frequently have a double with units associated with it.
Libraries such as boost::units allow unit handling where we know the units at compile time...
DoubleWithUnit lower_bound(int Spec_index, const Unit &U) const
Lower bound but with a unit conversion first in case the conversion reverses ordering.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
int number_spectrometer() const
Number of spectrometers.
double value(const FullPhysics::AutoDerivative< double > &Ad)
DoubleWithUnit center(int Spec_index, const Unit &U) const
Center between lower_bound and upper_bound.
virtual void print(std::ostream &Os) const
DoubleWithUnit upper_bound(int Spec_index) const
Upper bound of window slot.