5#ifndef GRAPH_HH_TAURECTOOLS
6#define GRAPH_HH_TAURECTOOLS
15#include <unordered_map>
38 virtual size_t n_outputs()
const override;
49 virtual size_t n_outputs()
const override;
60 virtual size_t n_outputs()
const override;
79 virtual MatrixXd
scan(
const ISource&)
const override;
80 virtual size_t n_outputs()
const override;
90 virtual MatrixXd
scan(
const ISource&)
const override;
92 virtual size_t n_outputs()
const override;
102 virtual MatrixXd
scan(
const ISource&)
const override;
103 virtual size_t n_outputs()
const override;
113 virtual size_t n_outputs()
const override;
123 Graph(
const std::vector<NodeConfig>& nodes,
124 const std::vector<LayerConfig>& layers);
130 MatrixXd
scan(
const ISource&,
size_t node_number)
const;
134 const std::vector<NodeConfig>& nodes,
135 const std::vector<LayerConfig>& layers,
136 std::set<size_t> cycle_check = {});
std::vector< const INode * > m_sources
ConcatenateNode(const std::vector< const INode * > &)
virtual size_t n_outputs() const override
virtual VectorXd compute(const ISource &) const override
virtual size_t n_outputs() const override
FeedForwardNode(const Stack *, const INode *source)
virtual VectorXd compute(const ISource &) const override
std::unordered_map< size_t, INode * > m_nodes
std::unordered_map< size_t, RecurrentStack * > m_seq_stacks
std::unordered_map< size_t, ISequenceNode * > m_seq_nodes
MatrixXd scan(const ISource &, size_t node_number) const
Graph & operator=(Graph &)=delete
std::unordered_map< size_t, Stack * > m_stacks
void build_node(const size_t, const std::vector< NodeConfig > &nodes, const std::vector< LayerConfig > &layers, std::set< size_t > cycle_check={})
VectorXd compute(const ISource &, size_t node_number) const
virtual VectorXd compute(const ISource &) const =0
virtual size_t n_outputs() const =0
virtual size_t n_outputs() const =0
virtual MatrixXd scan(const ISource &) const =0
virtual MatrixXd scan(const ISource &) const override
const RecurrentStack * m_stack
SequenceNode(const RecurrentStack *, const ISequenceNode *source)
virtual size_t n_outputs() const override
virtual VectorXd compute(const ISource &) const override
const ISequenceNode * m_source
virtual size_t n_outputs() const override
SumNode(const ISequenceNode *source)
virtual VectorXd compute(const ISource &) const override
const ISequenceNode * m_source
const ISequenceNode * m_source
virtual MatrixXd scan(const ISource &) const override
TimeDistributedNode(const Stack *, const ISequenceNode *source)
virtual size_t n_outputs() const override