1 #ifndef CPPAD_CG_LANG_C_CUSTOM_VAR_NAME_GEN_INCLUDED 2 #define CPPAD_CG_LANG_C_CUSTOM_VAR_NAME_GEN_INCLUDED 29 class LangCCustomVariableNameGenerator :
public LangCDefaultVariableNameGenerator<Base> {
32 const std::vector<std::string> depNames_;
33 const std::vector<std::string> indepNames_;
36 LangCCustomVariableNameGenerator(std::vector<std::string> depNames,
37 std::vector<std::string> indepNames,
38 const std::string& depName =
"y",
39 const std::string& indepName =
"x",
40 const std::string& tmpName =
"v",
41 const std::string& tmpArrayName =
"array") :
42 LangCDefaultVariableNameGenerator<Base>(depName, indepName, tmpName, tmpArrayName),
43 depNames_(
std::move(depNames)),
44 indepNames_(
std::move(indepNames)) {
47 inline virtual ~LangCCustomVariableNameGenerator() =
default;
50 if (index < depNames_.size() && !depNames_[index].empty()) {
51 return depNames_[index];
59 size_t index =
id - 1;
60 if (index < indepNames_.size() && !indepNames_[index].empty()) {
61 return indepNames_[index];
70 size_t idSecond)
override {
71 size_t index1 = idFirst - 1;
72 size_t index2 = idSecond - 1;
74 if ((index1 > indepNames_.size() || indepNames_[index1].empty()) &&
75 (index2 > indepNames_.size() || indepNames_[index2].empty())) {
76 return index1 + 1 == index2;
85 size_t id2)
override {
86 size_t index1 = id1 - 1;
87 size_t index2 = id2 - 1;
89 return (index1 > indepNames_.size() || indepNames_[index1].empty()) &&
90 (index2 > indepNames_.size() || indepNames_[index2].empty());
bool isConsecutiveInIndepArray(const OperationNode< Base > &indepFirst, size_t idFirst, const OperationNode< Base > &indepSecond, size_t idSecond) override
std::string generateIndependent(const OperationNode< Base > &independent, size_t id) override
std::string generateDependent(size_t index) override
std::string generateIndependent(const OperationNode< Base > &independent, size_t id) override
std::string generateDependent(size_t index) override
bool isInSameIndependentArray(const OperationNode< Base > &indep1, size_t id1, const OperationNode< Base > &indep2, size_t id2) override