Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > contrib > by-pkgid > 263386785cefb9ae5d63b926d214d809 > files > 1378

mpqc-2.1.2-4mdk.ppc.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>tchftmpl.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.5 on Mon Oct 14 14:16:38 2002 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>tchftmpl.h</h1><div class="fragment"><pre>00001 
00002 <font class="keyword">namespace </font>sc {
00003 
00004 <font class="keyword">class </font>LocalTCContribution {
00005   <font class="keyword">private</font>:
00006     <font class="keywordtype">double</font> * <font class="keyword">const</font> gmata;
00007     <font class="keywordtype">double</font> * <font class="keyword">const</font> gmatb;
00008     <font class="keywordtype">double</font> * <font class="keyword">const</font> kmata;
00009     <font class="keywordtype">double</font> * <font class="keyword">const</font> kmatb;
00010 
00011     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata;
00012     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb;
00013     <font class="keywordtype">double</font> * <font class="keyword">const</font> opmata;
00014     <font class="keywordtype">double</font> * <font class="keyword">const</font> opmatb;
00015   <font class="keyword">public</font>:
00016     LocalTCContribution(<font class="keywordtype">double</font> *ga, <font class="keywordtype">double</font> *pa, <font class="keywordtype">double</font> *gb, <font class="keywordtype">double</font> *pb,
00017                         <font class="keywordtype">double</font> *ka, <font class="keywordtype">double</font> *opa, <font class="keywordtype">double</font> *kb, <font class="keywordtype">double</font> *opb) :
00018       gmata(ga), gmatb(gb), kmata(ka), kmatb(kb),
00019       pmata(pa), pmatb(pb), opmata(opa), opmatb(opb) {}
00020     ~LocalTCContribution()<font class="keyword"> </font>{}
00021 
00022     <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>,<font class="keywordtype">double</font>)<font class="keyword"> </font>{}
00023 
00024     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont1(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00025       gmata[ij] += val*pmata[kl];
00026       gmata[kl] += val*pmata[ij];
00027 
00028       gmatb[ij] += val*pmatb[kl];
00029       gmatb[kl] += val*pmatb[ij];
00030     }
00031     
00032     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont2(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00033       val *= 0.25;
00034       gmata[ij] -= val*pmata[kl];
00035       gmata[kl] -= val*pmata[ij];
00036 
00037       gmatb[ij] -= val*pmatb[kl];
00038       gmatb[kl] -= val*pmatb[ij];
00039 
00040       kmata[ij] += val*opmata[kl];
00041       kmata[kl] += val*opmata[ij];
00042 
00043       kmatb[ij] += val*opmatb[kl];
00044       kmatb[kl] += val*opmatb[ij];
00045     }
00046     
00047     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont3(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00048       val *= 0.5;
00049       gmata[ij] -= val*pmata[kl];
00050       gmata[kl] -= val*pmata[ij];
00051 
00052       gmatb[ij] -= val*pmatb[kl];
00053       gmatb[kl] -= val*pmatb[ij];
00054 
00055       kmata[ij] += val*opmata[kl];
00056       kmata[kl] += val*opmata[ij];
00057 
00058       kmatb[ij] += val*opmatb[kl];
00059       kmatb[kl] += val*opmatb[ij];
00060     }
00061     
00062     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont4(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00063       gmata[ij] += 0.75*val*pmata[kl];
00064       gmata[kl] += 0.75*val*pmata[ij];
00065 
00066       gmatb[ij] += 0.75*val*pmatb[kl];
00067       gmatb[kl] += 0.75*val*pmatb[ij];
00068 
00069       kmata[ij] += 0.25*val*opmata[kl];
00070       kmata[kl] += 0.25*val*opmata[ij];
00071 
00072       kmatb[ij] += 0.25*val*opmatb[kl];
00073       kmatb[kl] += 0.25*val*opmatb[ij];
00074     }
00075     
00076     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont5(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00077       val *= 0.5;
00078       gmata[ij] += val*pmata[kl];
00079       gmata[kl] += val*pmata[ij];
00080 
00081       gmatb[ij] += val*pmatb[kl];
00082       gmatb[kl] += val*pmatb[ij];
00083 
00084       kmata[ij] += val*opmata[kl];
00085       kmata[kl] += val*opmata[ij];
00086 
00087       kmatb[ij] += val*opmatb[kl];
00088       kmatb[kl] += val*opmatb[ij];
00089     }
00090 };
00091 
00092 <font class="keyword">class </font>LocalTCEnergyContribution {
00093   <font class="keyword">private</font>:
00094     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata;
00095     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb;
00096     <font class="keywordtype">double</font> * <font class="keyword">const</font> opmata;
00097     <font class="keywordtype">double</font> * <font class="keyword">const</font> opmatb;
00098 
00099   <font class="keyword">public</font>:
00100     <font class="keywordtype">double</font> eca;
00101     <font class="keywordtype">double</font> exa;
00102     <font class="keywordtype">double</font> ecb;
00103     <font class="keywordtype">double</font> exb;
00104     <font class="keywordtype">double</font> ecab;
00105     <font class="keywordtype">double</font> exab;
00106     
00107     LocalTCEnergyContribution(<font class="keywordtype">double</font> *pa, <font class="keywordtype">double</font> *pb, <font class="keywordtype">double</font> *opa, <font class="keywordtype">double</font> *opb) :
00108       pmata(pa), pmatb(pb), opmata(opa), opmatb(opb) {
00109       exa=eca=0;
00110       exb=ecb=0;
00111       exab=ecab=0;
00112     }
00113     ~LocalTCEnergyContribution()<font class="keyword"> </font>{}
00114 
00115     <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>,<font class="keywordtype">double</font>)<font class="keyword"> </font>{};
00116 
00117     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont1(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00118       eca += val*pmata[ij]*pmata[kl];
00119       ecb += val*pmatb[ij]*pmatb[kl];
00120       ecab += val*(pmata[ij]*pmatb[kl]-pmatb[ij]*pmata[kl]);
00121     }
00122     
00123     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont2(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00124       exa -= 0.25*val*pmata[ij]*pmata[kl];
00125       exb -= 0.25*val*pmatb[ij]*pmatb[kl];
00126       exab -= 0.25*val*(pmata[ij]*pmatb[kl]-pmatb[ij]*pmata[kl]);
00127     }
00128     
00129     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont3(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00130       exa -= 0.5*val*pmata[ij]*pmata[kl];
00131       exb -= 0.5*val*pmatb[ij]*pmatb[kl];
00132       exab -= 0.5*val*(pmata[ij]*pmatb[kl]-pmatb[ij]*pmata[kl]);
00133     }
00134     
00135     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont4(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00136       eca += val*pmata[ij]*pmata[kl];
00137       ecb += val*pmatb[ij]*pmatb[kl];
00138       ecab += val*(pmata[ij]*pmatb[kl]-pmatb[ij]*pmata[kl]);
00139 
00140       exa -= 0.25*val*pmata[ij]*pmata[kl];
00141       exb -= 0.25*val*pmatb[ij]*pmatb[kl];
00142       exab -= 0.25*val*(pmata[ij]*pmatb[kl]-pmatb[ij]*pmata[kl]);
00143     }
00144     
00145     <font class="keyword">inline</font> <font class="keywordtype">void</font> cont5(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl, <font class="keywordtype">double</font> val)<font class="keyword"> </font>{
00146       eca += val*pmata[ij]*pmata[kl];
00147       ecb += val*pmatb[ij]*pmatb[kl];
00148       ecab += val*(pmata[ij]*pmatb[kl]-pmatb[ij]*pmata[kl]);
00149 
00150       exa -= 0.5*val*pmata[ij]*pmata[kl];
00151       exb -= 0.5*val*pmatb[ij]*pmatb[kl];
00152       exab -= 0.5*val*(pmata[ij]*pmatb[kl]-pmatb[ij]*pmata[kl]);
00153     }
00154 };
00155 
00156 <font class="keyword">class </font>LocalTCGradContribution {
00157   <font class="keyword">private</font>:
00158     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmat;
00159     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata;
00160     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb;
00161     <font class="keywordtype">double</font> c1sq;
00162     <font class="keywordtype">double</font> c2sq;
00163     <font class="keywordtype">double</font> c1c2;
00164 
00165   <font class="keyword">public</font>:
00166     LocalTCGradContribution(<font class="keywordtype">double</font> *p, <font class="keywordtype">double</font> *pa, <font class="keywordtype">double</font> *pb,
00167                             <font class="keywordtype">double</font> c1, <font class="keywordtype">double</font> c2) :
00168       pmat(p), pmata(pa), pmatb(pb)
00169     {
00170       c1sq = c1*c1;
00171       c2sq = c2*c2;
00172       c1c2 = c1*c2;
00173     }
00174     ~LocalTCGradContribution()<font class="keyword"> </font>{}
00175 
00176     <font class="keyword">inline</font> <font class="keywordtype">double</font> cont1(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl)<font class="keyword"> </font>{
00177       <font class="keywordflow">return</font> pmat[ij]*pmat[kl] +
00178         c1sq*(pmata[ij]*pmat[kl] + pmat[ij]*pmata[kl]) +
00179         c2sq*(pmatb[ij]*pmat[kl] + pmat[ij]*pmatb[kl]) +
00180         0.5*c1sq*pmata[ij]*pmata[kl] +
00181         0.5*c2sq*pmatb[ij]*pmatb[kl];
00182     }
00183 
00184     <font class="keyword">inline</font> <font class="keywordtype">double</font> cont2(<font class="keywordtype">int</font> ij, <font class="keywordtype">int</font> kl)<font class="keyword"> </font>{
00185       <font class="keywordflow">return</font> pmat[ij]*pmat[kl] +
00186         c1sq*(pmata[ij]*pmat[kl] + pmat[ij]*pmata[kl]) +
00187         c2sq*(pmatb[ij]*pmat[kl] + pmat[ij]*pmatb[kl]) -
00188         c1c2*(pmata[ij]*pmatb[kl] + pmatb[ij]*pmata[kl]);
00189     }
00190 };
00191 
00192 }
</div></pre><hr>
<address>
<small>

Generated at Mon Oct 14 14:16:38 2002 for <a
href="http://aros.ca.sandia.gov/~cljanss/mpqc">MPQC</a>
2.1.2 using the documentation package <a
href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a>
1.2.5.

</small>
</address>
</body>
</html>