Nabla  1.0
Nabla - a DSL for Automatic differentiation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
Public Member Functions | Public Attributes | List of all members
nb::Graph Class Reference

#include <Graph.h>

Public Member Functions

 Graph ()
 
Node_variable (std::string name, int m, int n, std::vector< std::vector< double >> vals)
 
Node_variable (std::string name, int m, int n)
 
Node_constant (std::string name, int m, int n, std::vector< std::vector< double >> vals)
 
Node_scalar_variable (std::string name, double data=0)
 
Node_scalar_constant (std::string name, double data)
 
Node_add (Node *a, Node *b)
 
Node_add (Node *a, double b)
 
Node_add (double a, Node *b)
 
Node_add (double a, double b)
 
Node_sub (Node *a, Node *b)
 
Node_sub (Node *a, double b)
 
Node_sub (double a, Node *b)
 
Node_sub (double a, double b)
 
Node_matmul (Node *a, Node *b)
 
Node_trans (Node *a)
 
Node_neg (Node *a)
 
Node_exp (Node *a)
 
Node_sin (Node *a)
 
Node_cos (Node *a)
 
Node_tan (Node *a)
 
Node_mul (Node *a, Node *b)
 
Node_mul (double a, Node *b)
 
Node_mul (Node *a, double b)
 
Node_mul (double a, double b)
 
Node_div (double a, double b)
 
std::vector< Node * > topological_sort ()
 
void backward (Node *f)
 
void generate_graph (Node *f)
 
void DFS (std::ostream &out, Node *f)
 

Public Attributes

int count
 
std::vector< Node * > operators
 
std::vector< Node * > constants
 
std::vector< Node * > variables
 
std::vector< Node * > scalars
 

Constructor & Destructor Documentation

◆ Graph()

nb::Graph::Graph ( )

Member Function Documentation

◆ _add() [1/4]

Node * nb::Graph::_add ( double  a,
double  b 
)

◆ _add() [2/4]

Node * nb::Graph::_add ( double  a,
Node b 
)

◆ _add() [3/4]

Node * nb::Graph::_add ( Node a,
double  b 
)

◆ _add() [4/4]

Node * nb::Graph::_add ( Node a,
Node b 
)

◆ _constant()

Node * nb::Graph::_constant ( std::string  name,
int  m,
int  n,
std::vector< std::vector< double >>  vals 
)

◆ _cos()

Node * nb::Graph::_cos ( Node a)

◆ _div()

Node * nb::Graph::_div ( double  a,
double  b 
)

◆ _exp()

Node * nb::Graph::_exp ( Node a)

◆ _matmul()

Node * nb::Graph::_matmul ( Node a,
Node b 
)

◆ _mul() [1/4]

Node * nb::Graph::_mul ( double  a,
double  b 
)

◆ _mul() [2/4]

Node * nb::Graph::_mul ( double  a,
Node b 
)

◆ _mul() [3/4]

Node * nb::Graph::_mul ( Node a,
double  b 
)

◆ _mul() [4/4]

Node * nb::Graph::_mul ( Node a,
Node b 
)

◆ _neg()

Node * nb::Graph::_neg ( Node a)

◆ _scalar_constant()

Node * nb::Graph::_scalar_constant ( std::string  name,
double  data 
)

◆ _scalar_variable()

Node * nb::Graph::_scalar_variable ( std::string  name,
double  data = 0 
)

◆ _sin()

Node * nb::Graph::_sin ( Node a)

◆ _sub() [1/4]

Node * nb::Graph::_sub ( double  a,
double  b 
)

◆ _sub() [2/4]

Node * nb::Graph::_sub ( double  a,
Node b 
)

◆ _sub() [3/4]

Node * nb::Graph::_sub ( Node a,
double  b 
)

◆ _sub() [4/4]

Node * nb::Graph::_sub ( Node a,
Node b 
)

◆ _tan()

Node * nb::Graph::_tan ( Node a)

◆ _trans()

Node * nb::Graph::_trans ( Node a)

◆ _variable() [1/2]

Node * nb::Graph::_variable ( std::string  name,
int  m,
int  n 
)

◆ _variable() [2/2]

Node * nb::Graph::_variable ( std::string  name,
int  m,
int  n,
std::vector< std::vector< double >>  vals 
)

◆ backward()

void nb::Graph::backward ( Node f)

◆ DFS()

void nb::Graph::DFS ( std::ostream &  out,
Node f 
)

◆ generate_graph()

void nb::Graph::generate_graph ( Node f)

◆ topological_sort()

std::vector< Node * > nb::Graph::topological_sort ( )

Member Data Documentation

◆ constants

std::vector<Node*> nb::Graph::constants

◆ count

int nb::Graph::count

◆ operators

std::vector<Node*> nb::Graph::operators

◆ scalars

std::vector<Node*> nb::Graph::scalars

◆ variables

std::vector<Node*> nb::Graph::variables

The documentation for this class was generated from the following files: