Loading graph_framework/arithmetic.hpp +10 −10 Original line number Diff line number Diff line Loading @@ -361,7 +361,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -846,7 +846,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1437,7 +1437,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1865,7 +1865,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -2412,7 +2412,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading graph_framework/math.hpp +30 −8 Original line number Diff line number Diff line Loading @@ -247,7 +247,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -470,7 +470,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -689,7 +689,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -993,7 +993,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1255,6 +1255,28 @@ namespace graph { virtual shared_leaf<T, SAFE_MATH> remove_pseudo() { return erfi(this->arg->remove_pseudo()); } //------------------------------------------------------------------------------ /// @brief Convert the node to vizgraph. /// /// @params[in,out] stream String buffer stream. /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); registers[this] = name; stream << " " << name << " [label = \"erfi\", shape = oval, style = filled, fillcolor = blue, fontcolor = white];" << std::endl; auto a = this->arg->to_vizgraph(stream, registers); stream << " " << name << " -- " << registers[a.get()] << ";" << std::endl; } return this->shared_from_this(); } }; //------------------------------------------------------------------------------ Loading graph_framework/node.hpp +30 −8 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual std::shared_ptr<leaf_node<T>> to_vizgraph(std::stringstream &stream, virtual std::shared_ptr<leaf_node<T, SAFE_MATH>> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) = 0; //------------------------------------------------------------------------------ Loading Loading @@ -267,8 +267,8 @@ namespace graph { /// /// @params[in] node Node to build the graph of. //------------------------------------------------------------------------------ template<typename T> void make_vizgraph(shared_leaf<T> node) { template<typename T, bool SAFE_MATH=false> void make_vizgraph(shared_leaf<T, SAFE_MATH> node) { std::stringstream stream; jit::register_map registers; stream << std::setprecision(jit::max_digits10<T> ()); Loading Loading @@ -422,7 +422,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1136,7 +1136,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1425,6 +1425,28 @@ namespace graph { virtual shared_leaf<T, SAFE_MATH> remove_pseudo() { return this->arg; } //------------------------------------------------------------------------------ /// @brief Convert the node to vizgraph. /// /// @params[in,out] stream String buffer stream. /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); registers[this] = name; stream << " " << name << " [label = \"pseudo_variable\", shape = oval, style = filled, fillcolor = blue, fontcolor = white];" << std::endl; auto a = this->arg->to_vizgraph(stream, registers); stream << " " << name << " -- " << registers[a.get()] << ";" << std::endl; } return this->shared_from_this(); } }; //------------------------------------------------------------------------------ Loading graph_framework/piecewise.hpp +4 −4 Original line number Diff line number Diff line Loading @@ -269,7 +269,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -697,7 +697,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading graph_framework/trigonometry.hpp +12 −46 Original line number Diff line number Diff line Loading @@ -118,11 +118,7 @@ namespace graph { virtual shared_leaf<T, SAFE_MATH> compile(std::ostringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { <<<<<<< HEAD shared_leaf<T, SAFE_MATH> a = this->arg->compile(stream, registers); ======= auto a = this->arg->compile(stream, registers); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) registers[this] = jit::to_string('r', this); stream << " const "; Loading Loading @@ -164,21 +160,22 @@ namespace graph { } //------------------------------------------------------------------------------ <<<<<<< HEAD /// @brief Remove pseudo variable nodes. /// /// @returns A tree without variable nodes. //------------------------------------------------------------------------------ virtual shared_leaf<T, SAFE_MATH> remove_pseudo() { return sin(this->arg->remove_pseudo()); ======= } //------------------------------------------------------------------------------ /// @brief Convert the node to vizgraph. /// /// @params[in,out] stream String buffer stream. /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading @@ -191,7 +188,6 @@ namespace graph { } return this->shared_from_this(); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) } }; Loading @@ -204,7 +200,6 @@ namespace graph { /// @params[in] x Argument. /// @returns A reduced sin node. //------------------------------------------------------------------------------ <<<<<<< HEAD template<typename T, bool SAFE_MATH=false> shared_leaf<T, SAFE_MATH> sin(shared_leaf<T, SAFE_MATH> x) { auto temp = std::make_shared<sine_node<T, SAFE_MATH>> (x)->reduce(); Loading @@ -217,15 +212,6 @@ namespace graph { } else if (temp->is_match(leaf_node<T, SAFE_MATH>::cache[i])) { return leaf_node<T, SAFE_MATH>::cache[i]; } ======= template<typename T> shared_leaf<T> sin(shared_leaf<T> x) { auto temp = std::make_shared<sine_node<T>> (x)->reduce(); const size_t h = temp->get_hash(); if (leaf_node<T>::cache.find(h) == leaf_node<T>::cache.end()) { leaf_node<T>::cache[h] = temp; >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) } assert(false && "Should never reach."); } Loading Loading @@ -355,11 +341,7 @@ namespace graph { compile(std::ostringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { <<<<<<< HEAD shared_leaf<T, SAFE_MATH> a = this->arg->compile(stream, registers); ======= auto a = this->arg->compile(stream, registers); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) registers[this] = jit::to_string('r', this); stream << " const "; Loading Loading @@ -401,21 +383,22 @@ namespace graph { } //------------------------------------------------------------------------------ <<<<<<< HEAD /// @brief Remove pseudo variable nodes. /// /// @returns A tree without variable nodes. //------------------------------------------------------------------------------ virtual shared_leaf<T, SAFE_MATH> remove_pseudo() { return cos(this->arg->remove_pseudo()); ======= } //------------------------------------------------------------------------------ /// @brief Convert the node to vizgraph. /// /// @params[in,out] stream String buffer stream. /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading @@ -428,7 +411,6 @@ namespace graph { } return this->shared_from_this(); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) } }; Loading @@ -441,7 +423,6 @@ namespace graph { /// @params[in] x Argument. /// @returns A reduced cos node. //------------------------------------------------------------------------------ <<<<<<< HEAD template<typename T, bool SAFE_MATH=false> shared_leaf<T, SAFE_MATH> cos(shared_leaf<T, SAFE_MATH> x) { auto temp = std::make_shared<cosine_node<T, SAFE_MATH>> (x)->reduce(); Loading @@ -454,15 +435,6 @@ namespace graph { } else if (temp->is_match(leaf_node<T, SAFE_MATH>::cache[i])) { return leaf_node<T, SAFE_MATH>::cache[i]; } ======= template<typename T> shared_leaf<T> cos(shared_leaf<T> x) { auto temp = std::make_shared<cosine_node<T>> (x)->reduce(); const size_t h = temp->get_hash(); if (leaf_node<T>::cache.find(h) == leaf_node<T>::cache.end()) { leaf_node<T>::cache[h] = temp; >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) } assert(false && "Should never reach."); } Loading Loading @@ -598,15 +570,9 @@ namespace graph { compile(std::ostringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { <<<<<<< HEAD shared_leaf<T, SAFE_MATH> l = this->left->compile(stream, registers); shared_leaf<T, SAFE_MATH> r = this->right->compile(stream, registers); ======= auto l = this->left->compile(stream, registers); auto r = this->right->compile(stream, registers); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) registers[this] = jit::to_string('r', this); stream << " const "; jit::add_type<T> (stream); Loading Loading @@ -673,7 +639,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading
graph_framework/arithmetic.hpp +10 −10 Original line number Diff line number Diff line Loading @@ -361,7 +361,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -846,7 +846,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1437,7 +1437,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1865,7 +1865,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -2412,7 +2412,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading
graph_framework/math.hpp +30 −8 Original line number Diff line number Diff line Loading @@ -247,7 +247,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -470,7 +470,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -689,7 +689,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -993,7 +993,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1255,6 +1255,28 @@ namespace graph { virtual shared_leaf<T, SAFE_MATH> remove_pseudo() { return erfi(this->arg->remove_pseudo()); } //------------------------------------------------------------------------------ /// @brief Convert the node to vizgraph. /// /// @params[in,out] stream String buffer stream. /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); registers[this] = name; stream << " " << name << " [label = \"erfi\", shape = oval, style = filled, fillcolor = blue, fontcolor = white];" << std::endl; auto a = this->arg->to_vizgraph(stream, registers); stream << " " << name << " -- " << registers[a.get()] << ";" << std::endl; } return this->shared_from_this(); } }; //------------------------------------------------------------------------------ Loading
graph_framework/node.hpp +30 −8 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual std::shared_ptr<leaf_node<T>> to_vizgraph(std::stringstream &stream, virtual std::shared_ptr<leaf_node<T, SAFE_MATH>> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) = 0; //------------------------------------------------------------------------------ Loading Loading @@ -267,8 +267,8 @@ namespace graph { /// /// @params[in] node Node to build the graph of. //------------------------------------------------------------------------------ template<typename T> void make_vizgraph(shared_leaf<T> node) { template<typename T, bool SAFE_MATH=false> void make_vizgraph(shared_leaf<T, SAFE_MATH> node) { std::stringstream stream; jit::register_map registers; stream << std::setprecision(jit::max_digits10<T> ()); Loading Loading @@ -422,7 +422,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1136,7 +1136,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -1425,6 +1425,28 @@ namespace graph { virtual shared_leaf<T, SAFE_MATH> remove_pseudo() { return this->arg; } //------------------------------------------------------------------------------ /// @brief Convert the node to vizgraph. /// /// @params[in,out] stream String buffer stream. /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); registers[this] = name; stream << " " << name << " [label = \"pseudo_variable\", shape = oval, style = filled, fillcolor = blue, fontcolor = white];" << std::endl; auto a = this->arg->to_vizgraph(stream, registers); stream << " " << name << " -- " << registers[a.get()] << ";" << std::endl; } return this->shared_from_this(); } }; //------------------------------------------------------------------------------ Loading
graph_framework/piecewise.hpp +4 −4 Original line number Diff line number Diff line Loading @@ -269,7 +269,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading Loading @@ -697,7 +697,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading
graph_framework/trigonometry.hpp +12 −46 Original line number Diff line number Diff line Loading @@ -118,11 +118,7 @@ namespace graph { virtual shared_leaf<T, SAFE_MATH> compile(std::ostringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { <<<<<<< HEAD shared_leaf<T, SAFE_MATH> a = this->arg->compile(stream, registers); ======= auto a = this->arg->compile(stream, registers); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) registers[this] = jit::to_string('r', this); stream << " const "; Loading Loading @@ -164,21 +160,22 @@ namespace graph { } //------------------------------------------------------------------------------ <<<<<<< HEAD /// @brief Remove pseudo variable nodes. /// /// @returns A tree without variable nodes. //------------------------------------------------------------------------------ virtual shared_leaf<T, SAFE_MATH> remove_pseudo() { return sin(this->arg->remove_pseudo()); ======= } //------------------------------------------------------------------------------ /// @brief Convert the node to vizgraph. /// /// @params[in,out] stream String buffer stream. /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading @@ -191,7 +188,6 @@ namespace graph { } return this->shared_from_this(); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) } }; Loading @@ -204,7 +200,6 @@ namespace graph { /// @params[in] x Argument. /// @returns A reduced sin node. //------------------------------------------------------------------------------ <<<<<<< HEAD template<typename T, bool SAFE_MATH=false> shared_leaf<T, SAFE_MATH> sin(shared_leaf<T, SAFE_MATH> x) { auto temp = std::make_shared<sine_node<T, SAFE_MATH>> (x)->reduce(); Loading @@ -217,15 +212,6 @@ namespace graph { } else if (temp->is_match(leaf_node<T, SAFE_MATH>::cache[i])) { return leaf_node<T, SAFE_MATH>::cache[i]; } ======= template<typename T> shared_leaf<T> sin(shared_leaf<T> x) { auto temp = std::make_shared<sine_node<T>> (x)->reduce(); const size_t h = temp->get_hash(); if (leaf_node<T>::cache.find(h) == leaf_node<T>::cache.end()) { leaf_node<T>::cache[h] = temp; >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) } assert(false && "Should never reach."); } Loading Loading @@ -355,11 +341,7 @@ namespace graph { compile(std::ostringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { <<<<<<< HEAD shared_leaf<T, SAFE_MATH> a = this->arg->compile(stream, registers); ======= auto a = this->arg->compile(stream, registers); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) registers[this] = jit::to_string('r', this); stream << " const "; Loading Loading @@ -401,21 +383,22 @@ namespace graph { } //------------------------------------------------------------------------------ <<<<<<< HEAD /// @brief Remove pseudo variable nodes. /// /// @returns A tree without variable nodes. //------------------------------------------------------------------------------ virtual shared_leaf<T, SAFE_MATH> remove_pseudo() { return cos(this->arg->remove_pseudo()); ======= } //------------------------------------------------------------------------------ /// @brief Convert the node to vizgraph. /// /// @params[in,out] stream String buffer stream. /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading @@ -428,7 +411,6 @@ namespace graph { } return this->shared_from_this(); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) } }; Loading @@ -441,7 +423,6 @@ namespace graph { /// @params[in] x Argument. /// @returns A reduced cos node. //------------------------------------------------------------------------------ <<<<<<< HEAD template<typename T, bool SAFE_MATH=false> shared_leaf<T, SAFE_MATH> cos(shared_leaf<T, SAFE_MATH> x) { auto temp = std::make_shared<cosine_node<T, SAFE_MATH>> (x)->reduce(); Loading @@ -454,15 +435,6 @@ namespace graph { } else if (temp->is_match(leaf_node<T, SAFE_MATH>::cache[i])) { return leaf_node<T, SAFE_MATH>::cache[i]; } ======= template<typename T> shared_leaf<T> cos(shared_leaf<T> x) { auto temp = std::make_shared<cosine_node<T>> (x)->reduce(); const size_t h = temp->get_hash(); if (leaf_node<T>::cache.find(h) == leaf_node<T>::cache.end()) { leaf_node<T>::cache[h] = temp; >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) } assert(false && "Should never reach."); } Loading Loading @@ -598,15 +570,9 @@ namespace graph { compile(std::ostringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { <<<<<<< HEAD shared_leaf<T, SAFE_MATH> l = this->left->compile(stream, registers); shared_leaf<T, SAFE_MATH> r = this->right->compile(stream, registers); ======= auto l = this->left->compile(stream, registers); auto r = this->right->compile(stream, registers); >>>>>>> 5d7a377 (Add ability to draw the graph. WIP) registers[this] = jit::to_string('r', this); stream << " const "; jit::add_type<T> (stream); Loading Loading @@ -673,7 +639,7 @@ namespace graph { /// @params[in,out] registers List of defined registers. /// @returns The current node. //------------------------------------------------------------------------------ virtual shared_leaf<T> to_vizgraph(std::stringstream &stream, virtual shared_leaf<T, SAFE_MATH> to_vizgraph(std::stringstream &stream, jit::register_map ®isters) { if (registers.find(this) == registers.end()) { const std::string name = jit::to_string('r', this); Loading