Commit 80faac22 authored by cianciosa's avatar cianciosa
Browse files

Fix errors after rebase.

parent d0d655bc
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
+30 −8
Original line number Diff line number Diff line
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            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();
        }
    };

//------------------------------------------------------------------------------
+30 −8
Original line number Diff line number Diff line
@@ -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 &registers) = 0;

//------------------------------------------------------------------------------
@@ -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> ());
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            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();
        }
    };

//------------------------------------------------------------------------------
+4 −4
Original line number Diff line number Diff line
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
+12 −46
Original line number Diff line number Diff line
@@ -118,11 +118,7 @@ namespace graph {
        virtual shared_leaf<T, SAFE_MATH> compile(std::ostringstream &stream,
                                                  jit::register_map &registers) {
            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 ";
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -191,7 +188,6 @@ namespace graph {
            }

            return this->shared_from_this();
>>>>>>> 5d7a377 (Add ability to draw the graph. WIP)
        }
    };

@@ -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();
@@ -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.");
    }
@@ -355,11 +341,7 @@ namespace graph {
        compile(std::ostringstream &stream,
                jit::register_map &registers) {
            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 ";
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);
@@ -428,7 +411,6 @@ namespace graph {
            }

            return this->shared_from_this();
>>>>>>> 5d7a377 (Add ability to draw the graph. WIP)
        }
    };

@@ -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();
@@ -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.");
    }
@@ -598,15 +570,9 @@ namespace graph {
        compile(std::ostringstream &stream,
                jit::register_map &registers) {
            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);
@@ -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 &registers) {
            if (registers.find(this) == registers.end()) {
                const std::string name = jit::to_string('r', this);