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