16 #include <deal.II/base/config.h> 18 #ifdef DEAL_II_WITH_SYMENGINE 20 # include <deal.II/differentiation/sd/symengine_number_types.h> 21 # include <deal.II/differentiation/sd/symengine_utilities.h> 23 DEAL_II_NAMESPACE_OPEN
29 namespace SE = ::SymEngine;
34 convert_expression_map_to_basic_map(
35 const SD::types::substitution_map &substitution_map)
37 SE::map_basic_basic sub_map;
38 for (
const auto &entry : substitution_map)
39 sub_map[entry.first.get_RCP()] = entry.second.get_RCP();
45 convert_expression_vector_to_basic_vector(
46 const SD::types::symbol_vector &symbol_vector)
48 SE::vec_basic symb_vec;
49 symb_vec.reserve(symbol_vector.size());
50 for (
const auto &entry : symbol_vector)
51 symb_vec.push_back(entry.get_RCP());
56 SD::types::symbol_vector
57 extract_symbols(
const SD::types::substitution_map &substitution_values)
59 SD::types::symbol_vector symbols;
60 symbols.reserve(substitution_values.size());
62 for (
typename SD::types::substitution_map::const_iterator it =
63 substitution_values.begin();
64 it != substitution_values.end();
66 symbols.push_back(it->first);
77 DEAL_II_NAMESPACE_CLOSE
79 #endif // DEAL_II_WITH_SYMENGINE