Sophie

Sophie

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

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>hsoshftmpl.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:37 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>hsoshftmpl.h</h1><div class="fragment"><pre>00001 
00002 <font class="keyword">class </font>LocalHSOSContribution {
00003   <font class="keyword">private</font>:
00004     <font class="keywordtype">double</font> * <font class="keyword">const</font> gmat;
00005     <font class="keywordtype">double</font> * <font class="keyword">const</font> gmato;
00006     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmat;
00007     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmato;
00008 
00009   <font class="keyword">public</font>:
00010     LocalHSOSContribution(<font class="keywordtype">double</font> *g, <font class="keywordtype">double</font> *p, <font class="keywordtype">double</font> *go, <font class="keywordtype">double</font> *po) :
00011       gmat(g), gmato(go), pmat(p), pmato(po) {}
00012     ~LocalHSOSContribution()<font class="keyword"> </font>{}
00013 
00014     <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>,<font class="keywordtype">double</font>)<font class="keyword"> </font>{};
00015 
00016     <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>{
00017       gmat[ij] += val*pmat[kl];
00018       gmat[kl] += val*pmat[ij];
00019     }
00020     
00021     <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>{
00022       val *= 0.25;
00023       gmat[ij] -= val*pmat[kl];
00024       gmat[kl] -= val*pmat[ij];
00025 
00026       gmato[ij] += val*pmato[kl];
00027       gmato[kl] += val*pmato[ij];
00028     }
00029     
00030     <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>{
00031       val *= 0.5;
00032       gmat[ij] -= val*pmat[kl];
00033       gmat[kl] -= val*pmat[ij];
00034 
00035       gmato[ij] += val*pmato[kl];
00036       gmato[kl] += val*pmato[ij];
00037     }
00038     
00039     <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>{
00040       gmat[ij] += 0.75*val*pmat[kl];
00041       gmat[kl] += 0.75*val*pmat[ij];
00042 
00043       gmato[ij] += 0.25*val*pmato[kl];
00044       gmato[kl] += 0.25*val*pmato[ij];
00045     }
00046     
00047     <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>{
00048       val *= 0.5;
00049       gmat[ij] += val*pmat[kl];
00050       gmat[kl] += val*pmat[ij];
00051 
00052       gmato[ij] += val*pmato[kl];
00053       gmato[kl] += val*pmato[ij];
00054     }
00055 };
00056 
00057 <font class="keyword">class </font>LocalHSOSEnergyContribution {
00058   <font class="keyword">private</font>:
00059     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmat;
00060     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmato;
00061 
00062   <font class="keyword">public</font>:
00063     <font class="keywordtype">double</font> ec;
00064     <font class="keywordtype">double</font> ex;
00065 
00066     <font class="keywordtype">void</font> set_bound(<font class="keywordtype">double</font>,<font class="keywordtype">double</font>)<font class="keyword"> </font>{};
00067     
00068     LocalHSOSEnergyContribution(<font class="keywordtype">double</font> *p, <font class="keywordtype">double</font> *po) : pmat(p), pmato(po) {
00069       ec=ex=0;
00070     }
00071 
00072     ~LocalHSOSEnergyContribution()<font class="keyword"> </font>{}
00073 
00074     <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>{
00075       ec += val*pmat[ij]*pmat[kl];
00076     }
00077     
00078     <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>{
00079       ex -= 0.25*val*(pmat[ij]*pmat[kl] + pmato[ij]*pmato[kl]);
00080     }
00081     
00082     <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>{
00083       ex -= 0.5*val*(pmat[ij]*pmat[kl] + pmato[ij]*pmato[kl]);
00084     }
00085     
00086     <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>{
00087       ec += val*pmat[ij]*pmat[kl];
00088       ex -= 0.25*val*(pmat[ij]*pmat[kl] + pmato[ij]*pmato[kl]);
00089     }
00090     
00091     <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>{
00092       ec += val*pmat[ij]*pmat[kl];
00093       ex -= 0.5*val*(pmat[ij]*pmat[kl] + pmato[ij]*pmato[kl]);
00094     }
00095 };
00096 <font class="keyword">class </font>LocalHSOSGradContribution {
00097   <font class="keyword">private</font>:
00098     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmat;
00099     <font class="keywordtype">double</font> * <font class="keyword">const</font> pmato;
00100 
00101   <font class="keyword">public</font>:
00102     LocalHSOSGradContribution(<font class="keywordtype">double</font> *p, <font class="keywordtype">double</font> *po) : pmat(p), pmato(po) {}
00103     ~LocalHSOSGradContribution()<font class="keyword"> </font>{}
00104 
00105     <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>{
00106       <font class="keywordflow">return</font> pmat[ij]*pmat[kl] +
00107         0.5*(pmato[ij]*pmat[kl] + pmat[ij]*pmato[kl]) +
00108         0.25*pmato[ij]*pmato[kl];
00109     }
00110 
00111     <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>{
00112       <font class="keywordflow">return</font> pmat[ij]*pmat[kl] +
00113         0.5*(pmato[ij]*pmat[kl] + pmat[ij]*pmato[kl] + pmato[ij]*pmato[kl]);
00114     }
00115 };
</div></pre><hr>
<address>
<small>

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