public nld_VCCS(base_device_t owner, string name, nl_fptype ri) : base(owner, name) { m_G = new param_fp_t(this, "G", nlconst.one()); m_RI = new param_fp_t(this, "RI", ri); m_OP = new terminal_t(this, "OP", termhandler); //m_OP(*this, "OP", &m_IP, {&m_ON, &m_IN}, NETLIB_DELEGATE(termhandler)); m_ON = new terminal_t(this, "ON", termhandler); //m_ON(*this, "ON", &m_IP, {&m_OP, &m_IN}, NETLIB_DELEGATE(termhandler)); m_IP = new terminal_t(this, "IP", termhandler); //m_IP(*this, "IP", &m_IN, {&m_OP, &m_ON}, NETLIB_DELEGATE(termhandler)); m_IN = new terminal_t(this, "IN", termhandler); //m_IN(*this, "IN", &m_IP, {&m_OP, &m_ON}, NETLIB_DELEGATE(termhandler)); m_OP1 = new terminal_t(this, "_OP1", termhandler); //, m_OP1(*this, "_OP1", &m_IN, NETLIB_DELEGATE(termhandler)) m_ON1 = new terminal_t(this, "_ON1", termhandler); //, m_ON1(*this, "_ON1", &m_IN, NETLIB_DELEGATE(termhandler)) m_OP.terminal_t_after_ctor(m_IP, new std.array <terminal_t, u64_const_2>(m_ON, m_IN)); m_ON.terminal_t_after_ctor(m_IP, new std.array <terminal_t, u64_const_2>(m_OP, m_IN)); m_IP.terminal_t_after_ctor(m_IN, new std.array <terminal_t, u64_const_2>(m_OP, m_ON)); m_IN.terminal_t_after_ctor(m_IP, new std.array <terminal_t, u64_const_2>(m_OP, m_ON)); m_OP1.terminal_t_after_ctor(m_IN); m_ON1.terminal_t_after_ctor(m_IN); ////, m_IPx(*this, "_IPx", &m_OP, NETLIB_DELEGATE(termhandler)) // <= this should be NULL and terminal be filtered out prior to solving... ////, m_INx(*this, "_INx", &m_ON, NETLIB_DELEGATE(termhandler)) // <= this should be NULL and terminal be filtered out prior to solving... m_gfac = nlconst.one(); connect(m_OP, m_OP1); connect(m_ON, m_ON1); ////connect(m_IP, m_IPx); ////connect(m_IN, m_INx); }
//NETLIB_CONSTRUCTOR_DERIVED(VCVS, VCCS) public nld_VCVS(base_device_t owner, string name) : base(owner, name) { m_RO = new param_fp_t(this, "RO", nlconst.one()); m_OP2 = new terminal_t(this, "_OP2", termhandler); //, &m_ON2, NETLIB_DELEGATE(termhandler)) m_ON2 = new terminal_t(this, "_ON2", termhandler); //, &m_OP2, NETLIB_DELEGATE(termhandler)) m_OP2.terminal_t_after_ctor(m_ON2); m_ON2.terminal_t_after_ctor(m_OP2); connect(m_OP2, m_OP1); connect(m_ON2, m_ON1); }
//NETLIB_CONSTRUCTOR_EX(VCCS, nl_fptype ri = nlconst::magic(1e9)) public nld_VCCS(base_device_t owner, string name) : this(owner, name, nlconst.magic(1e9)) { }