gnucap.git - Gnu Circuit Analysis Package

index : gnucap.git
Gnu Circuit Analysis Package
summary refs log tree commit diff
diff options
context:
space:
mode:
authorFelix Salfelder <felix@salfelder.org>2025年11月13日 00:00:00 +0000
committerFelix Salfelder <felix@salfelder.org>2025年11月13日 00:00:00 +0000
commit019cc973677b739c6d085c3eb3ed22b3eade29ad (patch)
treef7381f8888e21ddee2028f0f1850062c0152c9bf
parentdd0e7066641252c3d2e2beef4ec52193e725c564 (diff)
downloadgnucap-019cc973677b739c6d085c3eb3ed22b3eade29ad.tar.gz
fix clang warningspowl-3
- implicit string literal to bool conversion - unused variables - enum in double arithmetic still complaining about unused static double INF..
Diffstat
-rw-r--r--apps/d_bjt.model 5
-rw-r--r--apps/d_mos.model 18
-rw-r--r--include/u_sim_data.h 3
-rw-r--r--lib/m_spline.cc 2
-rw-r--r--lib/u_sim_data.cc 4
5 files changed, 15 insertions, 17 deletions
diff --git a/apps/d_bjt.model b/apps/d_bjt.model
index 44ba386e..a6a55c09 100644
--- a/apps/d_bjt.model
+++ b/apps/d_bjt.model
@@ -726,12 +726,13 @@ bool DEV_BUILT_IN_BJT::do_tr()
}
if (_sim->uic_now()) {untested();//736
+ int polarity = int(m->polarity);
if (has_good_value(c->icvbe)) {untested();//737
- vbe = m->polarity * c->icvbe;
+ vbe = polarity * c->icvbe;
}else{untested();//739
}
if (has_good_value(c->icvce)) {untested();//741
- vbc = vbe - m->polarity * c->icvce;
+ vbc = vbe - polarity * c->icvce;
vbx = vbc;
}else{untested();//744
}
diff --git a/apps/d_mos.model b/apps/d_mos.model
index 1854e987..536affdf 100644
--- a/apps/d_mos.model
+++ b/apps/d_mos.model
@@ -140,10 +140,10 @@ device BUILT_IN_MOS {
vg = "@n_g[V]";
vb = "@n_b[V]";
vs = "@n_s[V]";
- "i{d}" = "(_Rd) ? @Rd[I] : (@Ids[I] - @Cgd[I] - @Ddb[I] * m->polarity)";
- is = "(_Rs) ? @Rs[I] : (-@Ids[I] - @Cgs[I] - @Dsb[I] * m->polarity)";
+ "i{d}" = "(_Rd) ? @Rd[I] : (@Ids[I] - @Cgd[I] - @Ddb[I] * double(m->polarity))";
+ is = "(_Rs) ? @Rs[I] : (-@Ids[I] - @Cgs[I] - @Dsb[I] * double(m->polarity))";
ig = "@Cgs[I] + @Cgd[I] + @Cgb[I]";
- ib = "- @Ddb[I] * m->polarity - @Dsb[I] * m->polarity - @Cgb[I]";
+ ib = "- @Ddb[I] * double(m->polarity) - @Dsb[I] * double(m->polarity) - @Cgb[I]";
ibd = "@Ddb[I]";
ibs = "@Dsb[I]";
"cgso{vl}" = "@Cgs[NV]";
@@ -162,9 +162,9 @@ device BUILT_IN_MOS {
"gmb{s}" = "(reversed) ? gmbr : gmbf";
gbd = "@Ddb[G]";
gbs = "@Dsb[G]";
- vth = "von * m->polarity";
- ids = "m->polarity * ((reversed) ? -ids : ids)";
- "idst{ray}" = "- @Cgd[I] + @Ddb[I] * m->polarity";
+ vth = "von * double(m->polarity)";
+ ids = "double(m->polarity) * ((reversed) ? -ids : ids)";
+ "idst{ray}" = "- @Cgd[I] + @Ddb[I] * double(m->polarity)";
p ="@Rs[P] +@Rd[P] +@Ddb[P] +@Dsb[P] +@Cgs[P] +@Cgd[P] +@Cgb[P] +@Ids[P]";
pd="@Rs[PD]+@Rd[PD]+@Ddb[PD]+@Dsb[PD]+@Cgs[PD]+@Cgd[PD]+@Cgb[PD]+@Ids[PD]";
ps="@Rs[PS]+@Rd[PS]+@Ddb[PS]+@Dsb[PS]+@Cgs[PS]+@Cgd[PS]+@Cgb[PS]+@Ids[PS]";
@@ -469,7 +469,8 @@ bool DEV_BUILT_IN_MOS::tr_needs_eval()const
assert(c);
const MODEL_BUILT_IN_MOS_BASE* m=prechecked_cast<const MODEL_BUILT_IN_MOS_BASE*>(c->model());
assert(m);
- polarity_t polarity = m->polarity;
+ polarity_t polarity_ = m->polarity;
+ double polarity = double(polarity_);
node_t& eff_s((reversed) ? n_(n_id) : n_(n_is));
node_t& eff_d((reversed) ? n_(n_is) : n_(n_id));
return !(conchk(vds,polarity*(eff_d.v0()-eff_s.v0()),OPT::vntol)
@@ -492,7 +493,8 @@ bool DEV_BUILT_IN_MOS::do_tr()
bool was_saturated = saturated;
bool was_reversed = reversed;
bool was_sbfwd = sbfwd;
- polarity_t polarity = m->polarity;
+ polarity_t polarity_ = m->polarity;
+ double polarity = double(polarity_);
if (_sim->is_initial_step()) {
reversed = false;
diff --git a/include/u_sim_data.h b/include/u_sim_data.h
index 38a62bb3..46b39fe1 100644
--- a/include/u_sim_data.h
+++ b/include/u_sim_data.h
@@ -183,9 +183,6 @@ public:
bool exceeds_iteration_limit(OPT::ITL itlnum)const {return(_iter[iSTEP] > OPT::itl[itlnum]);}
bool uic_now() {return _uic && analysis_is_static() && _time0==0.;}
SIM_MODE has_op()const {return _has_op;}
-private: // stash here for now. Try plugins performance later.
- BSMATRIX_SOLVER<double>* _aa_solver;
- BSMATRIX_SOLVER<COMPLEX>* _acx_solver;
};
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
diff --git a/lib/m_spline.cc b/lib/m_spline.cc
index 09d8ee7f..a1f63e5c 100644
--- a/lib/m_spline.cc
+++ b/lib/m_spline.cc
@@ -290,7 +290,7 @@ FPOLY1 SPLINE::at(double x)const
case 0: untested();
return FPOLY1(x, _f0[i], 0.);
default: untested();
- assert(!"spline problem");
+ unreachable();
return FPOLY1();
}
{ untested();
diff --git a/lib/u_sim_data.cc b/lib/u_sim_data.cc
index 3ca48e92..46e35689 100644
--- a/lib/u_sim_data.cc
+++ b/lib/u_sim_data.cc
@@ -73,9 +73,7 @@ SIM_DATA::SIM_DATA()
_evalq(nullptr),
_evalq_uc(nullptr),
_waves(nullptr),
- _has_op(s_NONE),
- _aa_solver(nullptr),
- _acx_solver(nullptr)
+ _has_op(s_NONE)
{
_evalq = &_evalq1;
_evalq_uc = &_evalq2;
generated by cgit v1.2.3 (git 2.25.1) at 2025年11月24日 19:34:59 +0000

AltStyle によって変換されたページ (->オリジナル) /