--- src/Mshichmanhodgesmosfet.cc.orig 2015-08-24 16:25:14.000000000 -0400
+++ src/Mshichmanhodgesmosfet.cc 2015-08-24 16:26:30.000000000 -0400
double vb = extvar(3); // V-bulk
double T = extvar(4); // Temperature
- double k = mu0*Cox*pow((T + Tshift)/300.0,-3.0/2.0)*W/L;
+ double k = mu0*Cox*std::pow((T + Tshift)/300.0,-3.0/2.0)*W/L;
double dkdT = mu0*Cox*W*(-3.0/2)*std::pow((T + Tshift)/300.0,-5.0/2.0 )*(1.0/300.0)/L;
else if ( ( (vgs-Vth)>= vds ) && (vds>=0))
- *ids = k*((vgs-Vth)*vds - std::pow(vds,2)/2 ) + vds/rd;
+ *ids = k*((vgs-Vth)*vds - std::pow(vds,2.0)/2 ) + vds/rd;
*gd = k*(vgs-Vth-vds) + (1/rd);
- *didT = dkdT*((vgs-Vth)*vds-(std::pow(vds,2))/2);
+ *didT = dkdT*((vgs-Vth)*vds-(std::pow(vds,2.0))/2);
else if (((vgs-Vth)>=(vds))&&(vds<0))
else // (i.e. if 0 <= vgs-vth <= vds)
- *ids = (k/2)*std::pow((vgs-Vth),2) + vds/rd;
+ *ids = (k/2)*std::pow((vgs-Vth),2.0) + vds/rd;
- *didT= (dkdT/(2))*std::pow((vgs-Vth),2);
+ *didT= (dkdT/(2))*std::pow((vgs-Vth),2.0);
else if ( ( (vgs-Vth)<= vds ) && (vds<=0))
- *ids = k*((vgs-Vth)*vds - std::pow(vds,2)/2 ) + vds/rd;
+ *ids = k*((vgs-Vth)*vds - std::pow(vds,2.0)/2 ) + vds/rd;
*gd = k*(vgs-Vth-vds) + (1/rd);
- *didT = dkdT*((vgs-Vth)*vds-(std::pow(vds,2))/2);
+ *didT = dkdT*((vgs-Vth)*vds-(std::pow(vds,2.0))/2);
else if (((vgs-Vth)<=(vds))&&(vds>0))
else // (i.e. if 0 <= vgs-vth <= vds)
- *ids = (k/2)*std::pow((vgs-Vth),2) + vds/rd;
+ *ids = (k/2)*std::pow((vgs-Vth),2.0) + vds/rd;
- *didT= (dkdT/(2))*std::pow((vgs-Vth),2);
+ *didT= (dkdT/(2))*std::pow((vgs-Vth),2.0);