![Logo](logo.png) |
User Guide
|
Go to the documentation of this file.
53 std::shared_ptr<ModToken>
token;
119 return "EigenLinearSolverBlock";
134 return "EIGEN_LINEAR_SOLVE";
141 return std::static_pointer_cast<EigenLinearSolverBlock>(shared_from_this());
148 return std::static_pointer_cast<const EigenLinearSolverBlock>(shared_from_this());
Abstract base class for all constant visitors implementation.
bool is_eigen_linear_solver_block() const noexcept override
Check if the ast node is an instance of ast::EigenLinearSolverBlock.
void set_finalize_block(std::shared_ptr< StatementBlock > &&finalize_block)
Setter for member variable EigenLinearSolverBlock::finalize_block (rvalue reference)
std::shared_ptr< Ast > get_shared_ptr() override
Get std::shared_ptr from this pointer of the current ast node.
void set_update_states_block(std::shared_ptr< StatementBlock > &&update_states_block)
Setter for member variable EigenLinearSolverBlock::update_states_block (rvalue reference)
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void set_n_state_vars(std::shared_ptr< Integer > &&n_state_vars)
Setter for member variable EigenLinearSolverBlock::n_state_vars (rvalue reference)
AstNodeType get_node_type() const noexcept override
Return type (ast::AstNodeType) of ast node.
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
std::shared_ptr< StatementBlock > get_setup_x_block() const noexcept
Getter for member variable EigenLinearSolverBlock::setup_x_block.
Auto generated AST classes declaration.
std::shared_ptr< StatementBlock > get_variable_block() const noexcept
Getter for member variable EigenLinearSolverBlock::variable_block.
void set_symbol_table(symtab::SymbolTable *newsymtab) override
Set symbol table for the current ast node.
Represents an integer variable.
Abstract Syntax Tree (AST) related implementations.
std::shared_ptr< StatementBlock > initialize_block
Statement block to be executed before calling linear solver.
std::shared_ptr< const Ast > get_shared_ptr() const override
Get std::shared_ptr from this pointer of the current ast node.
AstNodeType
Enum type for every AST node type.
std::shared_ptr< StatementBlock > get_initialize_block() const noexcept
Getter for member variable EigenLinearSolverBlock::initialize_block.
std::shared_ptr< StatementBlock > get_update_states_block() const noexcept
Getter for member variable EigenLinearSolverBlock::update_states_block.
Base class for all block scoped nodes.
std::shared_ptr< StatementBlock > finalize_block
Statement block to be executed after calling linear solver.
void accept(visitor::Visitor &v) override
accept (or visit) the current AST node using provided visitor
std::shared_ptr< StatementBlock > get_finalize_block() const noexcept
Getter for member variable EigenLinearSolverBlock::finalize_block.
Abstract base class for all visitors implementation.
symtab::SymbolTable * get_symbol_table() const override
Return associated symbol table for the current ast node.
const ModToken * get_token() const noexcept override
Return associated token for the current ast node.
std::shared_ptr< StatementBlock > variable_block
Statements to be declared in the functor.
void visit_children(visitor::Visitor &v) override
visit children i.e.
EigenLinearSolverBlock(Integer *n_state_vars, StatementBlock *variable_block, StatementBlock *initialize_block, StatementBlock *setup_x_block, StatementBlock *update_states_block, StatementBlock *finalize_block)
void set_token(const ModToken &tok)
Set token for the current ast node.
void set_variable_block(std::shared_ptr< StatementBlock > &&variable_block)
Setter for member variable EigenLinearSolverBlock::variable_block (rvalue reference)
std::shared_ptr< Integer > get_n_state_vars() const noexcept
Getter for member variable EigenLinearSolverBlock::n_state_vars.
void set_setup_x_block(std::shared_ptr< StatementBlock > &&setup_x_block)
Setter for member variable EigenLinearSolverBlock::setup_x_block (rvalue reference)
Represent symbol table for a NMODL block.
Represent linear solver solution block based on Eigen.
@ EIGEN_LINEAR_SOLVER_BLOCK
type of ast::EigenLinearSolverBlock
EigenLinearSolverBlock * clone() const override
Return a copy of the current node.
Represents block encapsulating list of statements.
symtab::SymbolTable * symtab
symbol table for a block
void set_initialize_block(std::shared_ptr< StatementBlock > &&initialize_block)
Setter for member variable EigenLinearSolverBlock::initialize_block (rvalue reference)
virtual ~EigenLinearSolverBlock()=default
std::string get_nmodl_name() const noexcept override
Return NMODL statement of ast node as std::string.
std::shared_ptr< ModToken > token
token with location information
void set_parent_in_children()
Set this object as parent for all the children.
std::shared_ptr< StatementBlock > update_states_block
update back states from X
std::shared_ptr< StatementBlock > setup_x_block
update X from states
std::shared_ptr< Integer > n_state_vars
number of state vars used in solve
Represent token returned by scanner.