1 #include <../../nrnconf.h>
20 int compute(
double freq,
bool nonlin =
false,
int maxiter = 500);
45 std::complex<double>*
input =
nullptr;
46 std::complex<double>*
d =
nullptr;
47 std::complex<double>*
pivot =
nullptr;
69 nonlin = *
getarg(2) ? true :
false;
196 d =
new std::complex<double>[
n];
198 input =
new std::complex<double>[
n];
199 pivot =
new std::complex<double>[
n];
202 if (x < 0.0 ||
sec ==
nullptr) {
255 hoc_execerror(
"Impedance stimulus location is not specified.", 0);
260 double omega = 1e-6 * 2 * 3.14159265358979323846 * freq;
273 hoc_execerror(
"Impedance stimulus location is not specified.", 0);
285 for (
int i = 0;
i <
n; ++
i) {
311 for (
int i = 0;
i <
n; ++
i) {
335 for (
int i = 0;
i < _nt->
ncell; ++
i) {
339 for (
int i = _nt->
ncell; i < _nt->end; ++
i) {
347 for (
int i = _nt->
ncell; i < _nt->end; ++
i) {
void setup_topology(void)
Node * node_exact(Section *sec, double x)
like node_index but give proper node when x is 0 or 1 as well as in between
double input_phase(Section *, double)
double transfer_amp(Section *, double)
std::complex< double > * d
std::complex< double > * input
double transfer_phase(Section *, double)
std::complex< double > * transfer
int loc(Section *, double)
std::complex< double > * pivot
double ratio_amp(Section *, double)
double input_amp(Section *, double)
void location(Section *, double)
int compute(double freq, bool nonlin=false, int maxiter=500)
double transfer_amp(int curloc, int vloc)
void compute(double omega, double deltafac, int maxiter)
double ratio_amp(int clmploc, int vloc)
double input_phase(int curloc)
double input_amp(int curloc)
double transfer_phase(int curloc, int vloc)
void class2oc(const char *, ctor_f *cons, dtor_f *destruct, Member_func *, Member_ret_obj_func *, Member_ret_str_func *)
double chkarg(int, double low, double high)
int hoc_is_double_arg(int narg)
static double transfer_amp(void *v)
static double location(void *v)
void(* Pfrv4)(int, Node **, double **, Datum **)
static double input_amp(void *v)
static Member_func members[]
static double deltafac(void *v)
static double input_phase(void *v)
static void * cons(Object *)
static void destruct(void *v)
static double ratio_amp(void *v)
static double compute(void *v)
static double transfer_phase(void *v)
static void nrn_lhs(NrnThread *_nt)
void hoc_execerror(const char *s1, const char *s2)
static void nrn_rhs(NrnThread *_nt)
void section_ref(Section *)
void section_unref(Section *)
void nrn_seg_or_x_arg(int iarg, Section **psec, double *px)
neuron::model_sorted_token nrn_ensure_model_data_are_sorted()
Ensure neuron::container::* data are sorted.
void nrn_thread_error(const char *s)
A view into a set of mechanism instances.
std::vector< double * > data()
Get a vector of double* representing the model data.
Represent main neuron object computed by single thread.
Non-template stable handle to a generic value.