<!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> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="pages.html">Related Pages</a> </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>