.. _program_listing_file_src_specsyn_SpecsynLibWD.hpp: Program Listing for File SpecsynLibWD.hpp ========================================= |exhale_lsh| :ref:`Return to documentation for file ` (``src/specsyn/SpecsynLibWD.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef SPECSYNLIBWD_HPP #define SPECSYNLIBWD_HPP #include "../io/SimControls.hpp" #include "Specsyn.hpp" #include "SpecsynCommons.hpp" #include "SpecsynLib2D.hpp" #include #include #include namespace specsyn { template class SpecsynLibWD : public SpecsynLib2D { public: SpecsynLibWD( const std::string& spectraName, const std::string& registryName, double wlMin, double wlMax, std::size_t nWl, const io::SimControls& controls); [[nodiscard]] auto spec(const Specsyn::StarData& props, double feh) const -> std::vector override; [[nodiscard]] auto specForce(const Specsyn::StarData& props, double feh) const -> std::vector override; [[nodiscard]] auto logTeff() const -> const std::vector& { return logTeff_; } [[nodiscard]] auto logg() const -> const std::vector& { return logg_; } [[nodiscard]] auto loggMin() const -> double override { return logg_.front(); } [[nodiscard]] auto loggMax() const -> double override { return logg_.back(); } private: // References into the parent class's dim2_/dim3_, named for // what they actually hold in this (logg, Teff) specialization // -- mirrors SpecsynLibNoWind's identical FeH_/logg_/logTeff_ // aliasing exactly, including the same rationale (deliberately // references rather than owned copies: the actual storage // lives in, and is sized by, the parent). std::vector& logg_; // NOLINT(cppcoreguidelines-avoid-const-or-ref-data-members) std::vector& logTeff_; // NOLINT(readability-identifier-naming, cppcoreguidelines-avoid-const-or-ref-data-members) }; } // namespace specsyn #endif // SPECSYNLIBWD_HPP