![]() |
User Guide
|
Represent newton solver solution block based on Eigen. More...
Represent newton solver solution block based on Eigen.
Definition at line 38 of file eigen_newton_solver_block.hpp.
#include <eigen_newton_solver_block.hpp>
Public Member Functions | |
bool | is_eigen_newton_solver_block () const noexcept override |
Check if the ast node is an instance of ast::EigenNewtonSolverBlock. More... | |
EigenNewtonSolverBlock * | clone () const override |
Return a copy of the current node. More... | |
Ctor & dtor | |
EigenNewtonSolverBlock (Integer *n_state_vars, StatementBlock *variable_block, StatementBlock *initialize_block, StatementBlock *setup_x_block, StatementBlock *functor_block, StatementBlock *update_states_block, StatementBlock *finalize_block) | |
EigenNewtonSolverBlock (std::shared_ptr< Integer > n_state_vars, std::shared_ptr< StatementBlock > variable_block, std::shared_ptr< StatementBlock > initialize_block, std::shared_ptr< StatementBlock > setup_x_block, std::shared_ptr< StatementBlock > functor_block, std::shared_ptr< StatementBlock > update_states_block, std::shared_ptr< StatementBlock > finalize_block) | |
EigenNewtonSolverBlock (const EigenNewtonSolverBlock &obj) | |
copy constructor implementation More... | |
virtual | ~EigenNewtonSolverBlock ()=default |
Getters | |
AstNodeType | get_node_type () const noexcept override |
Return type (ast::AstNodeType) of ast node. More... | |
std::string | get_node_type_name () const noexcept override |
Return type (ast::AstNodeType) of ast node as std::string. More... | |
std::string | get_nmodl_name () const noexcept override |
Return NMODL statement of ast node as std::string. More... | |
std::shared_ptr< Ast > | get_shared_ptr () override |
Get std::shared_ptr from this pointer of the current ast node. More... | |
std::shared_ptr< const Ast > | get_shared_ptr () const override |
Get std::shared_ptr from this pointer of the current ast node. More... | |
const ModToken * | get_token () const noexcept override |
Return associated token for the current ast node. More... | |
symtab::SymbolTable * | get_symbol_table () const override |
Return associated symbol table for the current ast node. More... | |
std::shared_ptr< Integer > | get_n_state_vars () const noexcept |
Getter for member variable EigenNewtonSolverBlock::n_state_vars. More... | |
std::shared_ptr< StatementBlock > | get_variable_block () const noexcept |
Getter for member variable EigenNewtonSolverBlock::variable_block. More... | |
std::shared_ptr< StatementBlock > | get_initialize_block () const noexcept |
Getter for member variable EigenNewtonSolverBlock::initialize_block. More... | |
std::shared_ptr< StatementBlock > | get_setup_x_block () const noexcept |
Getter for member variable EigenNewtonSolverBlock::setup_x_block. More... | |
std::shared_ptr< StatementBlock > | get_functor_block () const noexcept |
Getter for member variable EigenNewtonSolverBlock::functor_block. More... | |
std::shared_ptr< StatementBlock > | get_update_states_block () const noexcept |
Getter for member variable EigenNewtonSolverBlock::update_states_block. More... | |
std::shared_ptr< StatementBlock > | get_finalize_block () const noexcept |
Getter for member variable EigenNewtonSolverBlock::finalize_block. More... | |
Setters | |
void | set_token (const ModToken &tok) |
Set token for the current ast node. More... | |
void | set_symbol_table (symtab::SymbolTable *newsymtab) override |
Set symbol table for the current ast node. More... | |
void | set_n_state_vars (std::shared_ptr< Integer > &&n_state_vars) |
Setter for member variable EigenNewtonSolverBlock::n_state_vars (rvalue reference) More... | |
void | set_n_state_vars (const std::shared_ptr< Integer > &n_state_vars) |
Setter for member variable EigenNewtonSolverBlock::n_state_vars. More... | |
void | set_variable_block (std::shared_ptr< StatementBlock > &&variable_block) |
Setter for member variable EigenNewtonSolverBlock::variable_block (rvalue reference) More... | |
void | set_variable_block (const std::shared_ptr< StatementBlock > &variable_block) |
Setter for member variable EigenNewtonSolverBlock::variable_block. More... | |
void | set_initialize_block (std::shared_ptr< StatementBlock > &&initialize_block) |
Setter for member variable EigenNewtonSolverBlock::initialize_block (rvalue reference) More... | |
void | set_initialize_block (const std::shared_ptr< StatementBlock > &initialize_block) |
Setter for member variable EigenNewtonSolverBlock::initialize_block. More... | |
void | set_setup_x_block (std::shared_ptr< StatementBlock > &&setup_x_block) |
Setter for member variable EigenNewtonSolverBlock::setup_x_block (rvalue reference) More... | |
void | set_setup_x_block (const std::shared_ptr< StatementBlock > &setup_x_block) |
Setter for member variable EigenNewtonSolverBlock::setup_x_block. More... | |
void | set_functor_block (std::shared_ptr< StatementBlock > &&functor_block) |
Setter for member variable EigenNewtonSolverBlock::functor_block (rvalue reference) More... | |
void | set_functor_block (const std::shared_ptr< StatementBlock > &functor_block) |
Setter for member variable EigenNewtonSolverBlock::functor_block. More... | |
void | set_update_states_block (std::shared_ptr< StatementBlock > &&update_states_block) |
Setter for member variable EigenNewtonSolverBlock::update_states_block (rvalue reference) More... | |
void | set_update_states_block (const std::shared_ptr< StatementBlock > &update_states_block) |
Setter for member variable EigenNewtonSolverBlock::update_states_block. More... | |
void | set_finalize_block (std::shared_ptr< StatementBlock > &&finalize_block) |
Setter for member variable EigenNewtonSolverBlock::finalize_block (rvalue reference) More... | |
void | set_finalize_block (const std::shared_ptr< StatementBlock > &finalize_block) |
Setter for member variable EigenNewtonSolverBlock::finalize_block. More... | |
Visitor | |
void | visit_children (visitor::Visitor &v) override |
visit children i.e. More... | |
void | visit_children (visitor::ConstVisitor &v) const override |
visit children i.e. More... | |
void | accept (visitor::Visitor &v) override |
accept (or visit) the current AST node using provided visitor More... | |
void | accept (visitor::ConstVisitor &v) const override |
accept (or visit) the current AST node using provided visitor More... | |
![]() | |
bool | is_block () const noexcept override |
Check if the ast node is an instance of ast::Block. More... | |
virtual | ~Block ()=default |
virtual const ArgumentVector & | get_parameters () const |
![]() | |
bool | is_expression () const noexcept override |
Check if the ast node is an instance of ast::Expression. More... | |
Expression * | clone () const override |
Return a copy of the current node. More... | |
virtual | ~Expression ()=default |
AstNodeType | get_node_type () const noexcept override |
Return type (ast::AstNodeType) of ast node. More... | |
std::string | get_node_type_name () const noexcept override |
Return type (ast::AstNodeType) of ast node as std::string. More... | |
std::shared_ptr< Ast > | get_shared_ptr () override |
Get std::shared_ptr from this pointer of the current ast node. More... | |
std::shared_ptr< const Ast > | get_shared_ptr () const override |
Get std::shared_ptr from this pointer of the current ast node. More... | |
void | visit_children (visitor::Visitor &v) override |
visit children i.e. More... | |
void | visit_children (visitor::ConstVisitor &v) const override |
visit children i.e. More... | |
void | accept (visitor::Visitor &v) override |
accept (or visit) the current AST node using provided visitor More... | |
void | accept (visitor::ConstVisitor &v) const override |
accept (or visit) the current AST node using provided visitor More... | |
![]() | |
bool | is_node () const noexcept override |
Check if the ast node is an instance of ast::Node. More... | |
Node * | clone () const override |
Return a copy of the current node. More... | |
virtual | ~Node ()=default |
AstNodeType | get_node_type () const noexcept override |
Return type (ast::AstNodeType) of ast node. More... | |
std::string | get_node_type_name () const noexcept override |
Return type (ast::AstNodeType) of ast node as std::string. More... | |
std::shared_ptr< Ast > | get_shared_ptr () override |
Get std::shared_ptr from this pointer of the current ast node. More... | |
std::shared_ptr< const Ast > | get_shared_ptr () const override |
Get std::shared_ptr from this pointer of the current ast node. More... | |
void | visit_children (visitor::Visitor &v) override |
visit children i.e. More... | |
void | visit_children (visitor::ConstVisitor &v) const override |
visit children i.e. More... | |
void | accept (visitor::Visitor &v) override |
accept (or visit) the current AST node using provided visitor More... | |
void | accept (visitor::ConstVisitor &v) const override |
accept (or visit) the current AST node using provided visitor More... | |
![]() | |
virtual bool | is_ast () const noexcept |
Check if the ast node is an instance of ast::Ast. More... | |
virtual bool | is_statement () const noexcept |
Check if the ast node is an instance of ast::Statement. More... | |
virtual bool | is_identifier () const noexcept |
Check if the ast node is an instance of ast::Identifier. More... | |
virtual bool | is_number () const noexcept |
Check if the ast node is an instance of ast::Number. More... | |
virtual bool | is_string () const noexcept |
Check if the ast node is an instance of ast::String. More... | |
virtual bool | is_integer () const noexcept |
Check if the ast node is an instance of ast::Integer. More... | |
virtual bool | is_float () const noexcept |
Check if the ast node is an instance of ast::Float. More... | |
virtual bool | is_double () const noexcept |
Check if the ast node is an instance of ast::Double. More... | |
virtual bool | is_boolean () const noexcept |
Check if the ast node is an instance of ast::Boolean. More... | |
virtual bool | is_name () const noexcept |
Check if the ast node is an instance of ast::Name. More... | |
virtual bool | is_prime_name () const noexcept |
Check if the ast node is an instance of ast::PrimeName. More... | |
virtual bool | is_indexed_name () const noexcept |
Check if the ast node is an instance of ast::IndexedName. More... | |
virtual bool | is_var_name () const noexcept |
Check if the ast node is an instance of ast::VarName. More... | |
virtual bool | is_argument () const noexcept |
Check if the ast node is an instance of ast::Argument. More... | |
virtual bool | is_react_var_name () const noexcept |
Check if the ast node is an instance of ast::ReactVarName. More... | |
virtual bool | is_read_ion_var () const noexcept |
Check if the ast node is an instance of ast::ReadIonVar. More... | |
virtual bool | is_write_ion_var () const noexcept |
Check if the ast node is an instance of ast::WriteIonVar. More... | |
virtual bool | is_nonspecific_cur_var () const noexcept |
Check if the ast node is an instance of ast::NonspecificCurVar. More... | |
virtual bool | is_electrode_cur_var () const noexcept |
Check if the ast node is an instance of ast::ElectrodeCurVar. More... | |
virtual bool | is_range_var () const noexcept |
Check if the ast node is an instance of ast::RangeVar. More... | |
virtual bool | is_global_var () const noexcept |
Check if the ast node is an instance of ast::GlobalVar. More... | |
virtual bool | is_pointer_var () const noexcept |
Check if the ast node is an instance of ast::PointerVar. More... | |
virtual bool | is_random_var () const noexcept |
Check if the ast node is an instance of ast::RandomVar. More... | |
virtual bool | is_bbcore_pointer_var () const noexcept |
Check if the ast node is an instance of ast::BbcorePointerVar. More... | |
virtual bool | is_extern_var () const noexcept |
Check if the ast node is an instance of ast::ExternVar. More... | |
virtual bool | is_param_block () const noexcept |
Check if the ast node is an instance of ast::ParamBlock. More... | |
virtual bool | is_independent_block () const noexcept |
Check if the ast node is an instance of ast::IndependentBlock. More... | |
virtual bool | is_assigned_block () const noexcept |
Check if the ast node is an instance of ast::AssignedBlock. More... | |
virtual bool | is_state_block () const noexcept |
Check if the ast node is an instance of ast::StateBlock. More... | |
virtual bool | is_initial_block () const noexcept |
Check if the ast node is an instance of ast::InitialBlock. More... | |
virtual bool | is_constructor_block () const noexcept |
Check if the ast node is an instance of ast::ConstructorBlock. More... | |
virtual bool | is_destructor_block () const noexcept |
Check if the ast node is an instance of ast::DestructorBlock. More... | |
virtual bool | is_statement_block () const noexcept |
Check if the ast node is an instance of ast::StatementBlock. More... | |
virtual bool | is_derivative_block () const noexcept |
Check if the ast node is an instance of ast::DerivativeBlock. More... | |
virtual bool | is_linear_block () const noexcept |
Check if the ast node is an instance of ast::LinearBlock. More... | |
virtual bool | is_non_linear_block () const noexcept |
Check if the ast node is an instance of ast::NonLinearBlock. More... | |
virtual bool | is_discrete_block () const noexcept |
Check if the ast node is an instance of ast::DiscreteBlock. More... | |
virtual bool | is_function_table_block () const noexcept |
Check if the ast node is an instance of ast::FunctionTableBlock. More... | |
virtual bool | is_function_block () const noexcept |
Check if the ast node is an instance of ast::FunctionBlock. More... | |
virtual bool | is_procedure_block () const noexcept |
Check if the ast node is an instance of ast::ProcedureBlock. More... | |
virtual bool | is_net_receive_block () const noexcept |
Check if the ast node is an instance of ast::NetReceiveBlock. More... | |
virtual bool | is_solve_block () const noexcept |
Check if the ast node is an instance of ast::SolveBlock. More... | |
virtual bool | is_breakpoint_block () const noexcept |
Check if the ast node is an instance of ast::BreakpointBlock. More... | |
virtual bool | is_before_block () const noexcept |
Check if the ast node is an instance of ast::BeforeBlock. More... | |
virtual bool | is_after_block () const noexcept |
Check if the ast node is an instance of ast::AfterBlock. More... | |
virtual bool | is_ba_block () const noexcept |
Check if the ast node is an instance of ast::BABlock. More... | |
virtual bool | is_for_netcon () const noexcept |
Check if the ast node is an instance of ast::ForNetcon. More... | |
virtual bool | is_kinetic_block () const noexcept |
Check if the ast node is an instance of ast::KineticBlock. More... | |
virtual bool | is_unit_block () const noexcept |
Check if the ast node is an instance of ast::UnitBlock. More... | |
virtual bool | is_constant_block () const noexcept |
Check if the ast node is an instance of ast::ConstantBlock. More... | |
virtual bool | is_neuron_block () const noexcept |
Check if the ast node is an instance of ast::NeuronBlock. More... | |
virtual bool | is_unit () const noexcept |
Check if the ast node is an instance of ast::Unit. More... | |
virtual bool | is_double_unit () const noexcept |
Check if the ast node is an instance of ast::DoubleUnit. More... | |
virtual bool | is_local_var () const noexcept |
Check if the ast node is an instance of ast::LocalVar. More... | |
virtual bool | is_limits () const noexcept |
Check if the ast node is an instance of ast::Limits. More... | |
virtual bool | is_number_range () const noexcept |
Check if the ast node is an instance of ast::NumberRange. More... | |
virtual bool | is_constant_var () const noexcept |
Check if the ast node is an instance of ast::ConstantVar. More... | |
virtual bool | is_binary_operator () const noexcept |
Check if the ast node is an instance of ast::BinaryOperator. More... | |
virtual bool | is_unary_operator () const noexcept |
Check if the ast node is an instance of ast::UnaryOperator. More... | |
virtual bool | is_reaction_operator () const noexcept |
Check if the ast node is an instance of ast::ReactionOperator. More... | |
virtual bool | is_paren_expression () const noexcept |
Check if the ast node is an instance of ast::ParenExpression. More... | |
virtual bool | is_binary_expression () const noexcept |
Check if the ast node is an instance of ast::BinaryExpression. More... | |
virtual bool | is_diff_eq_expression () const noexcept |
Check if the ast node is an instance of ast::DiffEqExpression. More... | |
virtual bool | is_unary_expression () const noexcept |
Check if the ast node is an instance of ast::UnaryExpression. More... | |
virtual bool | is_non_lin_equation () const noexcept |
Check if the ast node is an instance of ast::NonLinEquation. More... | |
virtual bool | is_lin_equation () const noexcept |
Check if the ast node is an instance of ast::LinEquation. More... | |
virtual bool | is_function_call () const noexcept |
Check if the ast node is an instance of ast::FunctionCall. More... | |
virtual bool | is_watch () const noexcept |
Check if the ast node is an instance of ast::Watch. More... | |
virtual bool | is_ba_block_type () const noexcept |
Check if the ast node is an instance of ast::BABlockType. More... | |
virtual bool | is_unit_def () const noexcept |
Check if the ast node is an instance of ast::UnitDef. More... | |
virtual bool | is_factor_def () const noexcept |
Check if the ast node is an instance of ast::FactorDef. More... | |
virtual bool | is_valence () const noexcept |
Check if the ast node is an instance of ast::Valence. More... | |
virtual bool | is_unit_state () const noexcept |
Check if the ast node is an instance of ast::UnitState. More... | |
virtual bool | is_local_list_statement () const noexcept |
Check if the ast node is an instance of ast::LocalListStatement. More... | |
virtual bool | is_model () const noexcept |
Check if the ast node is an instance of ast::Model. More... | |
virtual bool | is_define () const noexcept |
Check if the ast node is an instance of ast::Define. More... | |
virtual bool | is_include () const noexcept |
Check if the ast node is an instance of ast::Include. More... | |
virtual bool | is_param_assign () const noexcept |
Check if the ast node is an instance of ast::ParamAssign. More... | |
virtual bool | is_assigned_definition () const noexcept |
Check if the ast node is an instance of ast::AssignedDefinition. More... | |
virtual bool | is_conductance_hint () const noexcept |
Check if the ast node is an instance of ast::ConductanceHint. More... | |
virtual bool | is_expression_statement () const noexcept |
Check if the ast node is an instance of ast::ExpressionStatement. More... | |
virtual bool | is_protect_statement () const noexcept |
Check if the ast node is an instance of ast::ProtectStatement. More... | |
virtual bool | is_from_statement () const noexcept |
Check if the ast node is an instance of ast::FromStatement. More... | |
virtual bool | is_while_statement () const noexcept |
Check if the ast node is an instance of ast::WhileStatement. More... | |
virtual bool | is_if_statement () const noexcept |
Check if the ast node is an instance of ast::IfStatement. More... | |
virtual bool | is_else_if_statement () const noexcept |
Check if the ast node is an instance of ast::ElseIfStatement. More... | |
virtual bool | is_else_statement () const noexcept |
Check if the ast node is an instance of ast::ElseStatement. More... | |
virtual bool | is_watch_statement () const noexcept |
Check if the ast node is an instance of ast::WatchStatement. More... | |
virtual bool | is_mutex_lock () const noexcept |
Check if the ast node is an instance of ast::MutexLock. More... | |
virtual bool | is_mutex_unlock () const noexcept |
Check if the ast node is an instance of ast::MutexUnlock. More... | |
virtual bool | is_conserve () const noexcept |
Check if the ast node is an instance of ast::Conserve. More... | |
virtual bool | is_compartment () const noexcept |
Check if the ast node is an instance of ast::Compartment. More... | |
virtual bool | is_lon_diffuse () const noexcept |
Check if the ast node is an instance of ast::LonDiffuse. More... | |
virtual bool | is_reaction_statement () const noexcept |
Check if the ast node is an instance of ast::ReactionStatement. More... | |
virtual bool | is_lag_statement () const noexcept |
Check if the ast node is an instance of ast::LagStatement. More... | |
virtual bool | is_constant_statement () const noexcept |
Check if the ast node is an instance of ast::ConstantStatement. More... | |
virtual bool | is_table_statement () const noexcept |
Check if the ast node is an instance of ast::TableStatement. More... | |
virtual bool | is_suffix () const noexcept |
Check if the ast node is an instance of ast::Suffix. More... | |
virtual bool | is_useion () const noexcept |
Check if the ast node is an instance of ast::Useion. More... | |
virtual bool | is_nonspecific () const noexcept |
Check if the ast node is an instance of ast::Nonspecific. More... | |
virtual bool | is_electrode_current () const noexcept |
Check if the ast node is an instance of ast::ElectrodeCurrent. More... | |
virtual bool | is_range () const noexcept |
Check if the ast node is an instance of ast::Range. More... | |
virtual bool | is_global () const noexcept |
Check if the ast node is an instance of ast::Global. More... | |
virtual bool | is_random_var_list () const noexcept |
Check if the ast node is an instance of ast::RandomVarList. More... | |
virtual bool | is_pointer () const noexcept |
Check if the ast node is an instance of ast::Pointer. More... | |
virtual bool | is_bbcore_pointer () const noexcept |
Check if the ast node is an instance of ast::BbcorePointer. More... | |
virtual bool | is_external () const noexcept |
Check if the ast node is an instance of ast::External. More... | |
virtual bool | is_thread_safe () const noexcept |
Check if the ast node is an instance of ast::ThreadSafe. More... | |
virtual bool | is_verbatim () const noexcept |
Check if the ast node is an instance of ast::Verbatim. More... | |
virtual bool | is_line_comment () const noexcept |
Check if the ast node is an instance of ast::LineComment. More... | |
virtual bool | is_block_comment () const noexcept |
Check if the ast node is an instance of ast::BlockComment. More... | |
virtual bool | is_ontology_statement () const noexcept |
Check if the ast node is an instance of ast::OntologyStatement. More... | |
virtual bool | is_program () const noexcept |
Check if the ast node is an instance of ast::Program. More... | |
virtual bool | is_nrn_state_block () const noexcept |
Check if the ast node is an instance of ast::NrnStateBlock. More... | |
virtual bool | is_eigen_linear_solver_block () const noexcept |
Check if the ast node is an instance of ast::EigenLinearSolverBlock. More... | |
virtual bool | is_cvode_block () const noexcept |
Check if the ast node is an instance of ast::CvodeBlock. More... | |
virtual bool | is_longitudinal_diffusion_block () const noexcept |
Check if the ast node is an instance of ast::LongitudinalDiffusionBlock. More... | |
virtual bool | is_wrapped_expression () const noexcept |
Check if the ast node is an instance of ast::WrappedExpression. More... | |
virtual bool | is_derivimplicit_callback () const noexcept |
Check if the ast node is an instance of ast::DerivimplicitCallback. More... | |
virtual bool | is_solution_expression () const noexcept |
Check if the ast node is an instance of ast::SolutionExpression. More... | |
virtual bool | is_update_dt () const noexcept |
Check if the ast node is an instance of ast::UpdateDt. More... | |
virtual Ast * | get_parent () const |
Parent getter. More... | |
virtual void | set_parent (Ast *p) |
Parent setter. More... | |
Ast ()=default | |
virtual | ~Ast ()=default |
virtual std::string | get_node_name () const |
Return name of of the node. More... | |
virtual std::shared_ptr< StatementBlock > | get_statement_block () const |
Return associated statement block for the AST node. More... | |
virtual void | set_name (const std::string &name) |
Set name for the AST node. More... | |
virtual void | negate () |
Negate the value of AST node. More... | |
Private Member Functions | |
void | set_parent_in_children () |
Set this object as parent for all the children. More... | |
Private Attributes | |
std::shared_ptr< Integer > | n_state_vars |
number of state vars used in solve More... | |
std::shared_ptr< StatementBlock > | variable_block |
Statements to be declared in the functor. More... | |
std::shared_ptr< StatementBlock > | initialize_block |
Statement block to be executed before calling newton solver. More... | |
std::shared_ptr< StatementBlock > | setup_x_block |
update X from states More... | |
std::shared_ptr< StatementBlock > | functor_block |
odes as functor for eigen More... | |
std::shared_ptr< StatementBlock > | update_states_block |
update back states from X More... | |
std::shared_ptr< StatementBlock > | finalize_block |
Statement block to be executed after calling newton solver. More... | |
std::shared_ptr< ModToken > | token |
token with location information More... | |
symtab::SymbolTable * | symtab = nullptr |
symbol table for a block More... | |
|
explicit |
|
explicit |
nmodl::ast::EigenNewtonSolverBlock::EigenNewtonSolverBlock | ( | const EigenNewtonSolverBlock & | obj | ) |
copy constructor implementation
pointer member must be reseted with the new copy
pointer member must be reseted with the new copy
pointer member must be reseted with the new copy
pointer member must be reseted with the new copy
pointer member must be reseted with the new copy
pointer member must be reseted with the new copy
pointer member must be reseted with the new copy
if there is a token, make copy
set parents
|
virtualdefault |
|
overridevirtual |
accept (or visit) the current AST node using provided visitor
Instead of visiting children of AST node, like Ast::visit_children, accept allows to visit the current node itself using provided concrete visitor.
v | Concrete visitor that will be used to recursively visit node |
Reimplemented from nmodl::ast::Block.
|
overridevirtual |
accept (or visit) the current AST node using provided visitor
Instead of visiting children of AST node, like Ast::visit_children, accept allows to visit the current node itself using provided concrete visitor.
v | Concrete visitor that will be used to recursively visit node |
Reimplemented from nmodl::ast::Block.
|
inlineoverridevirtual |
Return a copy of the current node.
Recursively make a new copy/clone of the current node including all members and return a pointer to the node. This is used for passes like nmodl::visitor::InlineVisitor where nodes are cloned in the ast.
Reimplemented from nmodl::ast::Block.
Definition at line 87 of file eigen_newton_solver_block.hpp.
|
inlinenoexcept |
Getter for member variable EigenNewtonSolverBlock::finalize_block.
Definition at line 239 of file eigen_newton_solver_block.hpp.
|
inlinenoexcept |
Getter for member variable EigenNewtonSolverBlock::functor_block.
Definition at line 221 of file eigen_newton_solver_block.hpp.
|
inlinenoexcept |
Getter for member variable EigenNewtonSolverBlock::initialize_block.
Definition at line 203 of file eigen_newton_solver_block.hpp.
|
inlinenoexcept |
Getter for member variable EigenNewtonSolverBlock::n_state_vars.
Definition at line 185 of file eigen_newton_solver_block.hpp.
|
inlineoverridevirtualnoexcept |
Return NMODL statement of ast node as std::string.
Every node is related to a special statement in the NMODL. This statement can be returned as a std::string for printing to text/json form.
Reimplemented from nmodl::ast::Ast.
Definition at line 135 of file eigen_newton_solver_block.hpp.
|
inlineoverridevirtualnoexcept |
Return type (ast::AstNodeType) of ast node.
Every node in the ast has a type defined in ast::AstNodeType and this function is used to retrieve the same.
Reimplemented from nmodl::ast::Block.
Definition at line 105 of file eigen_newton_solver_block.hpp.
|
inlineoverridevirtualnoexcept |
Return type (ast::AstNodeType) of ast node as std::string.
Every node in the ast has a type defined in ast::AstNodeType. This type name can be returned as a std::string for printing node to text/json form.
Reimplemented from nmodl::ast::Block.
Definition at line 120 of file eigen_newton_solver_block.hpp.
|
inlinenoexcept |
Getter for member variable EigenNewtonSolverBlock::setup_x_block.
Definition at line 212 of file eigen_newton_solver_block.hpp.
|
inlineoverridevirtual |
Get std::shared_ptr from this
pointer of the current ast node.
Reimplemented from nmodl::ast::Block.
Definition at line 149 of file eigen_newton_solver_block.hpp.
|
inlineoverridevirtual |
Get std::shared_ptr from this
pointer of the current ast node.
Reimplemented from nmodl::ast::Block.
Definition at line 142 of file eigen_newton_solver_block.hpp.
|
inlineoverridevirtual |
Return associated symbol table for the current ast node.
Only certain ast nodes (e.g. inherited from ast::Block) have associated symbol table. These nodes have nmodl::symtab::SymbolTable as member and it can be accessed using this method.
Reimplemented from nmodl::ast::Ast.
Definition at line 176 of file eigen_newton_solver_block.hpp.
|
inlineoverridevirtualnoexcept |
Return associated token for the current ast node.
Not all ast nodes have token information. For example, nmodl::visitor::NeuronSolveVisitor can insert new nodes in the ast as a solution of ODEs. In this case, we return nullptr to store in the nmodl::symtab::SymbolTable.
Reimplemented from nmodl::ast::Ast.
Definition at line 162 of file eigen_newton_solver_block.hpp.
|
inlinenoexcept |
Getter for member variable EigenNewtonSolverBlock::update_states_block.
Definition at line 230 of file eigen_newton_solver_block.hpp.
|
inlinenoexcept |
Getter for member variable EigenNewtonSolverBlock::variable_block.
Definition at line 194 of file eigen_newton_solver_block.hpp.
|
inlineoverridevirtualnoexcept |
Check if the ast node is an instance of ast::EigenNewtonSolverBlock.
Reimplemented from nmodl::ast::Ast.
Definition at line 72 of file eigen_newton_solver_block.hpp.
void nmodl::ast::EigenNewtonSolverBlock::set_finalize_block | ( | const std::shared_ptr< StatementBlock > & | finalize_block | ) |
Setter for member variable EigenNewtonSolverBlock::finalize_block.
void nmodl::ast::EigenNewtonSolverBlock::set_finalize_block | ( | std::shared_ptr< StatementBlock > && | finalize_block | ) |
Setter for member variable EigenNewtonSolverBlock::finalize_block (rvalue reference)
void nmodl::ast::EigenNewtonSolverBlock::set_functor_block | ( | const std::shared_ptr< StatementBlock > & | functor_block | ) |
Setter for member variable EigenNewtonSolverBlock::functor_block.
void nmodl::ast::EigenNewtonSolverBlock::set_functor_block | ( | std::shared_ptr< StatementBlock > && | functor_block | ) |
Setter for member variable EigenNewtonSolverBlock::functor_block (rvalue reference)
void nmodl::ast::EigenNewtonSolverBlock::set_initialize_block | ( | const std::shared_ptr< StatementBlock > & | initialize_block | ) |
Setter for member variable EigenNewtonSolverBlock::initialize_block.
void nmodl::ast::EigenNewtonSolverBlock::set_initialize_block | ( | std::shared_ptr< StatementBlock > && | initialize_block | ) |
Setter for member variable EigenNewtonSolverBlock::initialize_block (rvalue reference)
void nmodl::ast::EigenNewtonSolverBlock::set_n_state_vars | ( | const std::shared_ptr< Integer > & | n_state_vars | ) |
Setter for member variable EigenNewtonSolverBlock::n_state_vars.
void nmodl::ast::EigenNewtonSolverBlock::set_n_state_vars | ( | std::shared_ptr< Integer > && | n_state_vars | ) |
Setter for member variable EigenNewtonSolverBlock::n_state_vars (rvalue reference)
|
private |
Set this object as parent for all the children.
set this parent in the children
This should be called in every object (with children) constructor to set parents. Since it is called only in the constructors it should not be virtual to avoid ambiguities (issue #295).
optional member could be nullptr
optional member could be nullptr
optional member could be nullptr
optional member could be nullptr
optional member could be nullptr
optional member could be nullptr
optional member could be nullptr
void nmodl::ast::EigenNewtonSolverBlock::set_setup_x_block | ( | const std::shared_ptr< StatementBlock > & | setup_x_block | ) |
Setter for member variable EigenNewtonSolverBlock::setup_x_block.
void nmodl::ast::EigenNewtonSolverBlock::set_setup_x_block | ( | std::shared_ptr< StatementBlock > && | setup_x_block | ) |
Setter for member variable EigenNewtonSolverBlock::setup_x_block (rvalue reference)
|
inlineoverridevirtual |
Set symbol table for the current ast node.
Top level, block scoped nodes store symbol table in the ast node. nmodl::visitor::SymtabVisitor then used this method to setup symbol table for every node in the ast.
Reimplemented from nmodl::ast::Ast.
Definition at line 259 of file eigen_newton_solver_block.hpp.
|
inline |
Set token for the current ast node.
Definition at line 249 of file eigen_newton_solver_block.hpp.
void nmodl::ast::EigenNewtonSolverBlock::set_update_states_block | ( | const std::shared_ptr< StatementBlock > & | update_states_block | ) |
Setter for member variable EigenNewtonSolverBlock::update_states_block.
void nmodl::ast::EigenNewtonSolverBlock::set_update_states_block | ( | std::shared_ptr< StatementBlock > && | update_states_block | ) |
Setter for member variable EigenNewtonSolverBlock::update_states_block (rvalue reference)
void nmodl::ast::EigenNewtonSolverBlock::set_variable_block | ( | const std::shared_ptr< StatementBlock > & | variable_block | ) |
Setter for member variable EigenNewtonSolverBlock::variable_block.
void nmodl::ast::EigenNewtonSolverBlock::set_variable_block | ( | std::shared_ptr< StatementBlock > && | variable_block | ) |
Setter for member variable EigenNewtonSolverBlock::variable_block (rvalue reference)
|
overridevirtual |
visit children i.e.
member variables of current node using provided visitor
Different nodes in the AST have different members (i.e. children). This method recursively visits children using provided visitor.
v | Concrete constant visitor that will be used to recursively visit children |
use -> for pointer member
use -> for pointer member
use -> for pointer member
use -> for pointer member
use -> for pointer member
use -> for pointer member
use -> for pointer member
Reimplemented from nmodl::ast::Block.
|
overridevirtual |
visit children i.e.
EigenNewtonSolverBlock member functions definition.
member variables of current node using provided visitor
Different nodes in the AST have different members (i.e. children). This method recursively visits children using provided visitor.
v | Concrete visitor that will be used to recursively visit children |
use -> for pointer member
use -> for pointer member
use -> for pointer member
use -> for pointer member
use -> for pointer member
use -> for pointer member
use -> for pointer member
Reimplemented from nmodl::ast::Block.
|
private |
Statement block to be executed after calling newton solver.
Definition at line 53 of file eigen_newton_solver_block.hpp.
|
private |
odes as functor for eigen
Definition at line 49 of file eigen_newton_solver_block.hpp.
|
private |
Statement block to be executed before calling newton solver.
Definition at line 45 of file eigen_newton_solver_block.hpp.
|
private |
number of state vars used in solve
Definition at line 41 of file eigen_newton_solver_block.hpp.
|
private |
update X from states
Definition at line 47 of file eigen_newton_solver_block.hpp.
|
private |
symbol table for a block
Definition at line 57 of file eigen_newton_solver_block.hpp.
|
private |
token with location information
Definition at line 55 of file eigen_newton_solver_block.hpp.
|
private |
update back states from X
Definition at line 51 of file eigen_newton_solver_block.hpp.
|
private |
Statements to be declared in the functor.
Definition at line 43 of file eigen_newton_solver_block.hpp.