User Guide
nmodl::pybind_wrappers Namespace Reference

Classes

class  EmbeddedPythonLoader
 A singleton class handling access to the pybind_wrap_api struct. More...
 
struct  pybind_wrap_api
 

Typedefs

using nmodl_init_pybind_wrapper_api_fpointer = decltype(&nmodl_init_pybind_wrapper_api)
 

Functions

void assert_compatible_python_versions ()
 
std::tuple< std::vector< std::string >, std::vector< std::string >, std::string > call_solve_linear_system (const std::vector< std::string > &eq_system, const std::vector< std::string > &state_vars, const std::set< std::string > &vars, bool small_system, bool elimination, const std::string &tmp_unique_prefix, const std::set< std::string > &function_calls)
 
std::tuple< std::vector< std::string >, std::string > call_solve_nonlinear_system (const std::vector< std::string > &eq_system, const std::vector< std::string > &state_vars, const std::set< std::string > &vars, const std::set< std::string > &function_calls)
 
std::tuple< std::string, std::string > call_diffeq_solver (const std::string &node_as_nmodl, const std::string &dt_var, const std::set< std::string > &vars, bool use_pade_approx, const std::set< std::string > &function_calls, const std::string &method)
 
std::tuple< std::string, std::string > call_analytic_diff (const std::vector< std::string > &expressions, const std::set< std::string > &used_names_in_block)
 
std::tuple< std::string, std::string > call_diff2c (const std::string &expression, const std::pair< std::string, std::optional< int >> &variable, const std::unordered_set< std::string > &indexed_vars={})
 Differentiates an expression with respect to a variable. More...
 
void initialize_interpreter_func ()
 
void finalize_interpreter_func ()
 
NMODL_EXPORT pybind_wrap_api nmodl_init_pybind_wrapper_api () noexcept
 

Typedef Documentation

◆ nmodl_init_pybind_wrapper_api_fpointer

Function Documentation

◆ assert_compatible_python_versions()

void nmodl::pybind_wrappers::assert_compatible_python_versions ( )

Definition at line 44 of file pyembed.cpp.

◆ call_analytic_diff()

std::tuple< std::string, std::string > nmodl::pybind_wrappers::call_analytic_diff ( const std::vector< std::string > &  expressions,
const std::set< std::string > &  used_names_in_block 
)

Definition at line 162 of file wrapper.cpp.

◆ call_diff2c()

std::tuple< std::string, std::string > nmodl::pybind_wrappers::call_diff2c ( const std::string &  expression,
const std::pair< std::string, std::optional< int >> &  variable,
const std::unordered_set< std::string > &  indexed_vars = {} 
)

Differentiates an expression with respect to a variable.

Parameters
expressionThe expression we want to differentiate
variableThe name of the independent variable we are differentiating against
index_varsA set of array (indexable) variables that appear in expression
Returns
The tuple (solution, exception)

Definition at line 190 of file wrapper.cpp.

◆ call_diffeq_solver()

std::tuple< std::string, std::string > nmodl::pybind_wrappers::call_diffeq_solver ( const std::string &  node_as_nmodl,
const std::string &  dt_var,
const std::set< std::string > &  vars,
bool  use_pade_approx,
const std::set< std::string > &  function_calls,
const std::string &  method 
)

Definition at line 106 of file wrapper.cpp.

◆ call_solve_linear_system()

std::tuple< std::vector< std::string >, std::vector< std::string >, std::string > nmodl::pybind_wrappers::call_solve_linear_system ( const std::vector< std::string > &  eq_system,
const std::vector< std::string > &  state_vars,
const std::set< std::string > &  vars,
bool  small_system,
bool  elimination,
const std::string &  tmp_unique_prefix,
const std::set< std::string > &  function_calls 
)

Definition at line 29 of file wrapper.cpp.

◆ call_solve_nonlinear_system()

std::tuple< std::vector< std::string >, std::string > nmodl::pybind_wrappers::call_solve_nonlinear_system ( const std::vector< std::string > &  eq_system,
const std::vector< std::string > &  state_vars,
const std::set< std::string > &  vars,
const std::set< std::string > &  function_calls 
)

Definition at line 73 of file wrapper.cpp.

◆ finalize_interpreter_func()

void nmodl::pybind_wrappers::finalize_interpreter_func ( )

Definition at line 238 of file wrapper.cpp.

◆ initialize_interpreter_func()

void nmodl::pybind_wrappers::initialize_interpreter_func ( )

Definition at line 234 of file wrapper.cpp.

◆ nmodl_init_pybind_wrapper_api()

pybind_wrap_api nmodl::pybind_wrappers::nmodl_init_pybind_wrapper_api ( )
noexcept

Definition at line 244 of file wrapper.cpp.