Sophie

Sophie

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

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>uhftmpl.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:39 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>uhftmpl.h</h1><div class="fragment"><pre>00001 
00002 <font class="keyword">namespace </font>sc {
00003 
00004 <font class="keyword">class </font>LocalUHFContribution {
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> pmata;
00009     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb;
00010 
00011   <font class="keyword">public</font>:
00012     LocalUHFContribution(<font class="keywordtype">double</font> *ga, <font class="keywordtype">double</font> *pa, <font class="keywordtype">double</font> *gb, <font class="keywordtype">double</font> *pb) :
00013       gmata(ga), gmatb(gb), pmata(pa), pmatb(pb) {}
00014     ~LocalUHFContribution()<font class="keyword"> </font>{}
00015 
00016     <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>,<font class="keywordtype">double</font>)<font class="keyword"> </font>{};
00017 
00018     <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>{
00019       gmata[ij] += val*(pmata[kl]+pmatb[kl]);
00020       gmata[kl] += val*(pmata[ij]+pmatb[ij]);
00021 
00022       gmatb[ij] += val*(pmata[kl]+pmatb[kl]);
00023       gmatb[kl] += val*(pmata[ij]+pmatb[ij]);
00024     }
00025     
00026     <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>{
00027       val *= 0.5;
00028       gmata[ij] -= val*pmata[kl];
00029       gmata[kl] -= val*pmata[ij];
00030 
00031       gmatb[ij] -= val*pmatb[kl];
00032       gmatb[kl] -= val*pmatb[ij];
00033     }
00034     
00035     <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>{
00036       gmata[ij] -= val*pmata[kl];
00037       gmata[kl] -= val*pmata[ij];
00038 
00039       gmatb[ij] -= val*pmatb[kl];
00040       gmatb[kl] -= val*pmatb[ij];
00041     }
00042     
00043     <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>{
00044       cont1(ij,kl,val);
00045       cont2(ij,kl,val);
00046     }
00047     
00048     <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>{
00049       cont1(ij,kl,val);
00050       cont3(ij,kl,val);
00051     }
00052 };
00053 
00054 <font class="keyword">class </font>LocalUHFEnergyContribution {
00055   <font class="keyword">private</font>:
00056     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata;
00057     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb;
00058 
00059   <font class="keyword">public</font>:
00060     <font class="keywordtype">double</font> ec;
00061     <font class="keywordtype">double</font> ex;
00062     
00063     LocalUHFEnergyContribution(<font class="keywordtype">double</font> *a, <font class="keywordtype">double</font> *b) : pmata(a), pmatb(b) {
00064       ec=ex=0;
00065     }
00066 
00067     ~LocalUHFEnergyContribution()<font class="keyword"> </font>{}
00068 
00069     <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>,<font class="keywordtype">double</font>)<font class="keyword"> </font>{};
00070 
00071     <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>{
00072       ec += val*(pmata[ij]+pmatb[ij])*(pmata[kl]+pmatb[kl]);
00073     }
00074     
00075     <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>{
00076       ex -= 0.5*val*(pmata[ij]*pmata[kl]+pmatb[ij]*pmatb[kl]);
00077     }
00078     
00079     <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>{
00080       ex -= val*(pmata[ij]*pmata[kl]+pmatb[ij]*pmatb[kl]);
00081     }
00082     
00083     <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>{
00084       cont1(ij,kl,val);
00085       cont2(ij,kl,val);
00086     }
00087     
00088     <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>{
00089       cont1(ij,kl,val);
00090       cont3(ij,kl,val);
00091     }
00092 };
00093 
00094 <font class="keyword">class </font>LocalUHFGradContribution {
00095   <font class="keyword">private</font>:
00096     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmata;
00097     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmatb;
00098 
00099   <font class="keyword">public</font>:
00100     LocalUHFGradContribution(<font class="keywordtype">double</font> *a, <font class="keywordtype">double</font> *b) : pmata(a), pmatb(b) {}
00101     ~LocalUHFGradContribution()<font class="keyword"> </font>{}
00102 
00103     <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>{
00104       <font class="keywordflow">return</font> (pmata[ij]*pmata[kl])+(pmatb[ij]*pmatb[kl]) +
00105              (pmata[ij]*pmatb[kl])+(pmatb[ij]*pmata[kl]);
00106     }
00107 
00108     <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>{
00109       <font class="keywordflow">return</font> 2*((pmata[ij]*pmata[kl])+(pmatb[ij]*pmatb[kl]));
00110     }
00111 };
00112 
00113 }
</div></pre><hr>
<address>
<small>

Generated at Mon Oct 14 14:16:39 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>