29class LangMathMLCustomVariableNameGenerator :
public LangMathMLDefaultVariableNameGenerator<Base> {
31 using Super = LangMathMLDefaultVariableNameGenerator<Base>;
33 const std::vector<std::string> depNames_;
35 const std::vector<std::string> indepNames_;
38 LangMathMLCustomVariableNameGenerator(
const std::vector<std::string>& depNames,
39 const std::vector<std::string>& indepNames,
40 const std::string& depName =
"y",
41 const std::string& indepName =
"x",
42 const std::string& tmpName =
"v",
43 const std::string& tmpArrayName =
"a",
44 const std::string& tmpSparseArrayName =
"s") :
45 LangMathMLDefaultVariableNameGenerator<Base>(depName, indepName, tmpName, tmpArrayName, tmpSparseArrayName),
47 indepNames_(indepNames) {
50 inline virtual ~LangMathMLCustomVariableNameGenerator() =
default;
53 if (index < depNames_.size() && !depNames_[index].empty()) {
54 return depNames_[index];
62 size_t index =
id - 1;
63 if (index < indepNames_.size() && !indepNames_[index].empty()) {
64 return indepNames_[index];
73 size_t idSecond)
override {
74 size_t index1 = idFirst - 1;
75 size_t index2 = idSecond - 1;
77 if ((index1 > indepNames_.size() || indepNames_[index1].empty()) &&
78 (index2 > indepNames_.size() || indepNames_[index2].empty())) {
79 return index1 + 1 == index2;
88 size_t id2)
override {
89 size_t index1 = id1 - 1;
90 size_t index2 = id2 - 1;
92 return (index1 > indepNames_.size() || indepNames_[index1].empty()) &&
93 (index2 > indepNames_.size() || indepNames_[index2].empty());