10 #include "../units/units.hpp" 12 #include "../optionsForwards.hpp" 24 const std::string &name,
const std::string& units,
25 double low,
double high);
30 struct provider_s :
public std::enable_shared_from_this<provider_s> {
39 std::map<std::string, requirement_p>
reqs;
40 provider_mp addReq(
const std::string &name,
const std::string &units,
41 double low,
double high);
42 provider_mp registerFunc(
int priority = 0);
48 } speciality_function_type;
51 const std::string &name,
const std::string &subst,
52 const std::string &source,
const std::string ¬es,
64 void enumProvider(provider_p p, std::ostream &out = std::cerr);
65 void enumProviders(all_providers_p p, std::ostream &out = std::cerr);
71 bool haveFreq =
true,
bool haveTemp =
true,
const std::string &startAt =
"");
73 bool haveFreq =
true,
bool haveTemp =
true);
75 void prepRefract(provider_p,
const std::string &inFreqUnits,
78 const std::string &inFreqUnits,
const std::string &inTempUnits,
void enumSubstances(std::ostream &out)
void enumProviders(all_providers_p p, std::ostream &out)
void enumProvider(provider_p p, std::ostream &out)
all_providers_p listAllProviders()
std::function< void(double, double, std::complex< double > &)> refractFunction_freq_temp_t
std::shared_ptr< const requirement_s > requirement_p
std::shared_ptr< provider_s > provider_mp
void prepRefract(provider_p prov, const std::string &inFreqUnits, refractFunction_freqonly_t &res)
static requirement_p generate(const std::string &name, const std::string &units, double low, double high)
all_providers_p findProviders(const std::string &subst, bool haveFreq, bool haveTemp)
std::string parameterName
std::map< std::string, requirement_p > reqs
std::shared_ptr< const provider_collection_type > all_providers_p
std::pair< double, double > validRange
provider_p findProviderByName(const std::string &providerName)
provider_p findProvider(const std::string &subst, bool haveFreq, bool haveTemp, const std::string &start)
std::shared_ptr< const provider_s > provider_p
std::function< void(double, std::complex< double > &)> refractFunction_freqonly_t
std::multimap< int, provider_p > provider_collection_type
std::shared_ptr< provider_collection_type > all_providers_mp
std::string parameterUnits