Logo
Reference manual - version qle_version
ComputationGraph Class Reference

#include <qle/ad/computationgraph.hpp>

Public Types

enum class  VarDoesntExist { Nan , Create , Throw }

Public Member Functions

void clear ()
std::size_t size () const
std::size_t insert (const std::string &label=std::string())
std::size_t insert (const std::vector< std::size_t > &predecessors, const std::size_t opId, const std::string &label=std::string())
const std::vector< std::size_t > & predecessors (const std::size_t node) const
std::size_t opId (const std::size_t node) const
std::size_t maxNodeRequiringArg (const std::size_t node) const
std::size_t constant (const double c)
const std::map< double, std::size_t > & constants () const
bool isConstant (const std::size_t node) const
double constantValue (const std::size_t node) const
std::size_t variable (const std::string &name, const VarDoesntExist v=VarDoesntExist::Throw)
const std::map< std::string, std::size_t > & variables () const
void setVariable (const std::string &name, const std::size_t node)
void enableLabels (const bool b=true)
const std::map< std::size_t, std::set< std::string > > & labels () const
void startRedBlock ()
void endRedBlock ()
std::size_t redBlockId (const std::size_t node) const
const std::vector< std::pair< std::size_t, std::size_t > > & redBlockRanges () const
const std::set< std::size_t > & redBlockDependencies () const

Static Public Attributes

static std::size_t nan

Detailed Description

  • opId = 0 should refer to "no operation"