source: trunk/dports/math/octave-ocs/files/patch-src-Mshichmanhodgesmosfet.cc.diff @ 139731

Last change on this file since 139731 was 139731, checked in by michaelld@…, 4 years ago

octave-ocs: update to 0.1.5.

File size: 2.1 KB
RevLine 
[139731]1--- src/Mshichmanhodgesmosfet.cc.orig   2015-08-24 16:25:14.000000000 -0400
2+++ src/Mshichmanhodgesmosfet.cc        2015-08-24 16:26:30.000000000 -0400
3@@ -123,7 +123,7 @@
[138491]4   double vb   = extvar(3); // V-bulk
5   double T    = extvar(4); // Temperature
6 
7-  double k    = mu0*Cox*pow((T + Tshift)/300.0,-3.0/2.0)*W/L;
8+  double k    = mu0*Cox*std::pow((T + Tshift)/300.0,-3.0/2.0)*W/L;
[139731]9   double dkdT = mu0*Cox*W*(-3.0/2)*std::pow((T + Tshift)/300.0,-5.0/2.0 )*(1.0/300.0)/L;
[138491]10   
11   double vgs  = vg - vs;
12@@ -138,10 +138,10 @@
13     } 
14   else if ( ( (vgs-Vth)>= vds ) && (vds>=0))
15     {
[139731]16-      *ids  = k*((vgs-Vth)*vds - std::pow(vds,2)/2 ) + vds/rd;
17+      *ids  = k*((vgs-Vth)*vds - std::pow(vds,2.0)/2 ) + vds/rd;
[138491]18       *gm   = k*vds;
19       *gd   = k*(vgs-Vth-vds) + (1/rd);
[139731]20-      *didT = dkdT*((vgs-Vth)*vds-(std::pow(vds,2))/2);
21+      *didT = dkdT*((vgs-Vth)*vds-(std::pow(vds,2.0))/2);
[138491]22     } 
23   else if (((vgs-Vth)>=(vds))&&(vds<0))
24     { 
25@@ -152,10 +152,10 @@
26     } 
27   else // (i.e. if 0 <= vgs-vth <= vds)
28     { 
[139731]29-      *ids = (k/2)*std::pow((vgs-Vth),2) + vds/rd;
30+      *ids = (k/2)*std::pow((vgs-Vth),2.0) + vds/rd;
[138491]31       *gm  = k*(vgs-Vth);
32       *gd  = 1/rd;
[139731]33-      *didT= (dkdT/(2))*std::pow((vgs-Vth),2);
34+      *didT= (dkdT/(2))*std::pow((vgs-Vth),2.0);
[138491]35     } 
36 
37   *P       = -(*ids)*vds;
38@@ -192,10 +192,10 @@
39     } 
40   else if ( ( (vgs-Vth)<= vds ) && (vds<=0))
41     {
[139731]42-      *ids  = k*((vgs-Vth)*vds - std::pow(vds,2)/2 ) + vds/rd;
43+      *ids  = k*((vgs-Vth)*vds - std::pow(vds,2.0)/2 ) + vds/rd;
[138491]44       *gm   = k*vds;
45       *gd   = k*(vgs-Vth-vds) + (1/rd);
[139731]46-      *didT = dkdT*((vgs-Vth)*vds-(std::pow(vds,2))/2);
47+      *didT = dkdT*((vgs-Vth)*vds-(std::pow(vds,2.0))/2);
[138491]48     } 
49   else if (((vgs-Vth)<=(vds))&&(vds>0))
50     { 
51@@ -206,10 +206,10 @@
52     } 
53   else // (i.e. if 0 <= vgs-vth <= vds)
54     { 
[139731]55-      *ids = (k/2)*std::pow((vgs-Vth),2) + vds/rd;
56+      *ids = (k/2)*std::pow((vgs-Vth),2.0) + vds/rd;
[138491]57       *gm  = k*(vgs-Vth);
58       *gd  = 1/rd;
[139731]59-      *didT= (dkdT/(2))*std::pow((vgs-Vth),2);
60+      *didT= (dkdT/(2))*std::pow((vgs-Vth),2.0);
[138491]61     } 
62 
63   *P       = -(*ids)*vds;
Note: See TracBrowser for help on using the repository browser.