VFPHelpers: optionally instantiate for float

This commit is contained in:
Arne Morten Kvarving 2024-04-12 13:11:09 +02:00
parent 11158a219a
commit b3ce375c79

View File

@ -773,35 +773,56 @@ VFPInjTable::FLO_TYPE getType(const VFPInjTable& table)
return table.getFloType();
}
template const VFPInjTable& getTable<VFPInjTable>(const std::map<int, std::reference_wrapper<const VFPInjTable>>&, int);
template const VFPProdTable& getTable<VFPProdTable>(const std::map<int, std::reference_wrapper<const VFPProdTable>>&, int);
template const VFPInjTable&
getTable(const std::map<int, std::reference_wrapper<const VFPInjTable>>&, int);
template const VFPProdTable&
getTable(const std::map<int, std::reference_wrapper<const VFPProdTable>>&, int);
#define INSTANCE(...) \
template __VA_ARGS__ getFlo(const VFPInjTable&, const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ getFlo(const VFPProdTable&, const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ getGFR(const VFPProdTable&, const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ getWFR(const VFPProdTable&, const __VA_ARGS__&, const __VA_ARGS__&, const __VA_ARGS__&);
#define INSTANTIATE(...) \
template __VA_ARGS__ \
getFlo(const VFPInjTable&, const __VA_ARGS__&, \
const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ \
getFlo(const VFPProdTable&, const __VA_ARGS__&, \
const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ \
getGFR(const VFPProdTable&, const __VA_ARGS__&, \
const __VA_ARGS__&, const __VA_ARGS__&); \
template __VA_ARGS__ \
getWFR(const VFPProdTable&, const __VA_ARGS__&, \
const __VA_ARGS__&, const __VA_ARGS__&);
INSTANCE(double)
INSTANCE(DenseAd::Evaluation<double, -1, 4u>)
INSTANCE(DenseAd::Evaluation<double, -1, 5u>)
INSTANCE(DenseAd::Evaluation<double, -1, 6u>)
INSTANCE(DenseAd::Evaluation<double, -1, 7u>)
INSTANCE(DenseAd::Evaluation<double, -1, 8u>)
INSTANCE(DenseAd::Evaluation<double, -1, 9u>)
INSTANCE(DenseAd::Evaluation<double, -1, 10u>)
INSTANCE(DenseAd::Evaluation<double, -1, 11u>)
INSTANCE(DenseAd::Evaluation<double, 3, 0u>)
INSTANCE(DenseAd::Evaluation<double, 4, 0u>)
INSTANCE(DenseAd::Evaluation<double, 5, 0u>)
INSTANCE(DenseAd::Evaluation<double, 6, 0u>)
INSTANCE(DenseAd::Evaluation<double, 7, 0u>)
INSTANCE(DenseAd::Evaluation<double, 8, 0u>)
INSTANCE(DenseAd::Evaluation<double, 9, 0u>)
INSTANCE(DenseAd::Evaluation<double, 10, 0u>)
#define INSTANTIATE_TYPE(T) \
INSTANTIATE(T) \
INSTANTIATE(DenseAd::Evaluation<T, -1, 4u>) \
INSTANTIATE(DenseAd::Evaluation<T, -1, 5u>) \
INSTANTIATE(DenseAd::Evaluation<T, -1, 6u>) \
INSTANTIATE(DenseAd::Evaluation<T, -1, 7u>) \
INSTANTIATE(DenseAd::Evaluation<T, -1, 8u>) \
INSTANTIATE(DenseAd::Evaluation<T, -1, 9u>) \
INSTANTIATE(DenseAd::Evaluation<T, -1, 10u>) \
INSTANTIATE(DenseAd::Evaluation<T, -1, 11u>) \
INSTANTIATE(DenseAd::Evaluation<T, 3, 0u>) \
INSTANTIATE(DenseAd::Evaluation<T, 4, 0u>) \
INSTANTIATE(DenseAd::Evaluation<T, 5, 0u>) \
INSTANTIATE(DenseAd::Evaluation<T, 6, 0u>) \
INSTANTIATE(DenseAd::Evaluation<T, 7, 0u>) \
INSTANTIATE(DenseAd::Evaluation<T, 8, 0u>) \
INSTANTIATE(DenseAd::Evaluation<T, 9, 0u>) \
INSTANTIATE(DenseAd::Evaluation<T, 10, 0u>)
INSTANTIATE_TYPE(double)
#if FLOW_INSTANTIATE_FLOAT
INSTANTIATE_TYPE(float)
#endif
} // namespace detail
template class VFPHelpers<double>;
#if FLOW_INSTANTIATE_FLOAT
template class VFPHelpers<float>;
#endif
} // namespace Opm