Sophie

Sophie

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

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>tbint.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>tbint.h</h1><div class="fragment"><pre>00001 <font class="comment">//</font>
00002 <font class="comment">// tbint.h</font>
00003 <font class="comment">//</font>
00004 <font class="comment">// Copyright (C) 1996 Limit Point Systems, Inc.</font>
00005 <font class="comment">//</font>
00006 <font class="comment">// Author: Edward Seidl &lt;seidl@janed.com&gt;</font>
00007 <font class="comment">// Maintainer: LPS</font>
00008 <font class="comment">//</font>
00009 <font class="comment">// This file is part of the SC Toolkit.</font>
00010 <font class="comment">//</font>
00011 <font class="comment">// The SC Toolkit is free software; you can redistribute it and/or modify</font>
00012 <font class="comment">// it under the terms of the GNU Library General Public License as published by</font>
00013 <font class="comment">// the Free Software Foundation; either version 2, or (at your option)</font>
00014 <font class="comment">// any later version.</font>
00015 <font class="comment">//</font>
00016 <font class="comment">// The SC Toolkit is distributed in the hope that it will be useful,</font>
00017 <font class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00018 <font class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
00019 <font class="comment">// GNU Library General Public License for more details.</font>
00020 <font class="comment">//</font>
00021 <font class="comment">// You should have received a copy of the GNU Library General Public License</font>
00022 <font class="comment">// along with the SC Toolkit; see the file COPYING.LIB.  If not, write to</font>
00023 <font class="comment">// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.</font>
00024 <font class="comment">//</font>
00025 <font class="comment">// The U.S. Government is granted a limited license as per AL 91-7.</font>
00026 <font class="comment">//</font>
00027 
00028 <font class="preprocessor">#ifndef _chemistry_qc_basis_tbint_h</font>
00029 <font class="preprocessor"></font><font class="preprocessor">#define _chemistry_qc_basis_tbint_h</font>
00030 <font class="preprocessor"></font>
00031 <font class="preprocessor">#ifdef __GNUC__</font>
00032 <font class="preprocessor"></font><font class="preprocessor">#pragma interface</font>
00033 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00034 <font class="preprocessor"></font>
00035 <font class="preprocessor">#include &lt;util/ref/ref.h&gt;</font>
00036 <font class="preprocessor">#include &lt;util/group/message.h&gt;</font>
00037 <font class="preprocessor">#include &lt;chemistry/qc/basis/gaussbas.h&gt;</font>
00038 <font class="preprocessor">#include &lt;chemistry/qc/basis/dercent.h&gt;</font>
00039 
00040 <font class="keyword">namespace </font>sc {
00041 
00042 <font class="comment">// //////////////////////////////////////////////////////////////////////////</font>
00043 
00044 <font class="keyword">class </font>Integral;
00045 
<a name="l00049"></a><a class="code" href="class_sc__TwoBodyInt.html">00049</a> <font class="keyword">class </font>TwoBodyInt : <font class="keyword">public</font> RefCount {
00050   <font class="keyword">protected</font>:
00051     <font class="comment">// this is who created me</font>
00052     Integral *integral_;
00053 
00054     Ref&lt;GaussianBasisSet&gt; bs1_;
00055     Ref&lt;GaussianBasisSet&gt; bs2_;
00056     Ref&lt;GaussianBasisSet&gt; bs3_;
00057     Ref&lt;GaussianBasisSet&gt; bs4_;
00058 
00059     <font class="keywordtype">double</font> *buffer_;
00060 
00061     <font class="keywordtype">int</font> redundant_;
00062     
00063     TwoBodyInt(Integral *integral,
00064                <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;bs1,
00065                <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;bs2,
00066                <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;bs3,
00067                <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;bs4);
00068   <font class="keyword">public</font>:
00069     <font class="keyword">virtual</font> ~TwoBodyInt();
00070   
00072     <font class="keywordtype">int</font> <a class="code" href="class_sc__TwoBodyInt.html#a1">nbasis</a>() <font class="keyword">const</font>;
00073     
00075 
00076     <font class="keywordtype">int</font> nbasis1() <font class="keyword">const</font>;
00077     <font class="keywordtype">int</font> nbasis2() <font class="keyword">const</font>;
00078     <font class="keywordtype">int</font> nbasis3() <font class="keyword">const</font>;
00079     <font class="keywordtype">int</font> nbasis4() <font class="keyword">const</font>;
00081 
00083     <font class="keywordtype">int</font> <a class="code" href="class_sc__TwoBodyInt.html#a6">nshell</a>() <font class="keyword">const</font>;
00084     
00086 
00087     <font class="keywordtype">int</font> nshell1() <font class="keyword">const</font>;
00088     <font class="keywordtype">int</font> nshell2() <font class="keyword">const</font>;
00089     <font class="keywordtype">int</font> nshell3() <font class="keyword">const</font>;
00090     <font class="keywordtype">int</font> nshell4() <font class="keyword">const</font>;
00092 
00094     Ref&lt;GaussianBasisSet&gt; <a class="code" href="class_sc__TwoBodyInt.html#a11">basis</a>();
00095 
00097 
00098     Ref&lt;GaussianBasisSet&gt; basis1();
00099     Ref&lt;GaussianBasisSet&gt; basis2();
00100     Ref&lt;GaussianBasisSet&gt; basis3();
00101     Ref&lt;GaussianBasisSet&gt; basis4();
00103 
00107     <font class="keyword">const</font> <font class="keywordtype">double</font> * <a class="code" href="class_sc__TwoBodyInt.html#a16">buffer</a>() <font class="keyword">const</font>;
00108     
00111     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__TwoBodyInt.html#a17">compute_shell</a>(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>) = 0;
00112 
00115     <font class="keyword">virtual</font> <font class="keywordtype">int</font> <a class="code" href="class_sc__TwoBodyInt.html#a18">log2_shell_bound</a>(<font class="keywordtype">int</font>= -1,<font class="keywordtype">int</font>= -1,<font class="keywordtype">int</font>= -1,<font class="keywordtype">int</font>= -1) = 0;
00116 
<a name="l00120"></a><a class="code" href="class_sc__TwoBodyInt.html#a19">00120</a>     <font class="keywordtype">int</font> <a class="code" href="class_sc__TwoBodyInt.html#a19">redundant</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> redundant_; }
00121     <font class="keywordtype">void</font> set_redundant(<font class="keywordtype">int</font> i)<font class="keyword"> </font>{ redundant_ = i; }
00123 
00125     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__TwoBodyInt.html#a21">set_integral_storage</a>(size_t storage);
00126 
<a name="l00128"></a><a class="code" href="class_sc__TwoBodyInt.html#a22">00128</a>     Integral *<a class="code" href="class_sc__TwoBodyInt.html#a22">integral</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> integral_; }
00129 };
00130 
00131 
00132 
00133 <font class="comment">// //////////////////////////////////////////////////////////////////////////</font>
00134 
00135 <font class="keyword">class </font>ShellQuartetIter {
00136   <font class="keyword">protected</font>:
00137     <font class="keyword">const</font> <font class="keywordtype">double</font> * buf;
00138     <font class="keywordtype">double</font> scale_;
00139 
00140     <font class="keywordtype">int</font> redund_;
00141     
00142     <font class="keywordtype">int</font> e12;
00143     <font class="keywordtype">int</font> e34;
00144     <font class="keywordtype">int</font> e13e24;
00145 
00146     <font class="keywordtype">int</font> index;
00147     
00148     <font class="keywordtype">int</font> istart;
00149     <font class="keywordtype">int</font> jstart;
00150     <font class="keywordtype">int</font> kstart;
00151     <font class="keywordtype">int</font> lstart;
00152 
00153     <font class="keywordtype">int</font> iend;
00154     <font class="keywordtype">int</font> jend;
00155     <font class="keywordtype">int</font> kend;
00156     <font class="keywordtype">int</font> lend;
00157 
00158     <font class="keywordtype">int</font> icur;
00159     <font class="keywordtype">int</font> jcur;
00160     <font class="keywordtype">int</font> kcur;
00161     <font class="keywordtype">int</font> lcur;
00162 
00163     <font class="keywordtype">int</font> i_;
00164     <font class="keywordtype">int</font> j_;
00165     <font class="keywordtype">int</font> k_;
00166     <font class="keywordtype">int</font> l_;
00167     
00168   <font class="keyword">public</font>:
00169     ShellQuartetIter();
00170     <font class="keyword">virtual</font> ~ShellQuartetIter();
00171 
00172     <font class="keyword">virtual</font> <font class="keywordtype">void</font> init(<font class="keyword">const</font> <font class="keywordtype">double</font> *,
00173                       <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>,
00174                       <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>,
00175                       <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>,
00176                       <font class="keywordtype">double</font>, <font class="keywordtype">int</font>);
00177 
00178     <font class="keyword">virtual</font> <font class="keywordtype">void</font> start();
00179     <font class="keyword">virtual</font> <font class="keywordtype">void</font> next();
00180 
00181     <font class="keywordtype">int</font> ready()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> icur &lt; iend; }
00182 
00183     <font class="keywordtype">int</font> i()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> i_; }
00184     <font class="keywordtype">int</font> j()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> j_; }
00185     <font class="keywordtype">int</font> k()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> k_; }
00186     <font class="keywordtype">int</font> l()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> l_; }
00187 
00188     <font class="keywordtype">int</font> nint()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> iend*jend*kend*lend; }
00189     
00190     <font class="keywordtype">double</font> val()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> buf[index]*scale_; }
00191 };
00192 
00193 <font class="keyword">class </font>TwoBodyIntIter {
00194   <font class="keyword">protected</font>:
00195     Ref&lt;TwoBodyInt&gt; tbi;
00196     ShellQuartetIter sqi;
00197     
00198     <font class="keywordtype">int</font> iend;
00199     
00200     <font class="keywordtype">int</font> icur;
00201     <font class="keywordtype">int</font> jcur;
00202     <font class="keywordtype">int</font> kcur;
00203     <font class="keywordtype">int</font> lcur;
00204     
00205   <font class="keyword">public</font>:
00206     TwoBodyIntIter();
00207     TwoBodyIntIter(<font class="keyword">const</font> Ref&lt;TwoBodyInt&gt;&amp;);
00208 
00209     <font class="keyword">virtual</font> ~TwoBodyIntIter();
00210     
00211     <font class="keyword">virtual</font> <font class="keywordtype">void</font> start();
00212     <font class="keyword">virtual</font> <font class="keywordtype">void</font> next();
00213 
00214     <font class="keywordtype">int</font> ready()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (icur &lt; iend); }
00215 
00216     <font class="keywordtype">int</font> ishell()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> icur; }
00217     <font class="keywordtype">int</font> jshell()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> jcur; }
00218     <font class="keywordtype">int</font> kshell()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> kcur; }
00219     <font class="keywordtype">int</font> lshell()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> lcur; }
00220 
00221     <font class="keyword">virtual</font> <font class="keywordtype">double</font> scale() <font class="keyword">const</font>;
00222 
00223     ShellQuartetIter&amp; current_quartet();
00224 };
00225 
00226 <font class="comment">// //////////////////////////////////////////////////////////////////////////</font>
00227 
<a name="l00231"></a><a class="code" href="class_sc__TwoBodyDerivInt.html">00231</a> <font class="keyword">class </font>TwoBodyDerivInt : <font class="keyword">public</font> RefCount {
00232   <font class="keyword">protected</font>:
00233     <font class="comment">// this is who created me</font>
00234     Integral *integral_;
00235 
00236     Ref&lt;GaussianBasisSet&gt; bs1_;
00237     Ref&lt;GaussianBasisSet&gt; bs2_;
00238     Ref&lt;GaussianBasisSet&gt; bs3_;
00239     Ref&lt;GaussianBasisSet&gt; bs4_;
00240 
00241     <font class="keywordtype">double</font> *buffer_;
00242 
00243     TwoBodyDerivInt(Integral* integral,
00244                     <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;b1,
00245                     <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;b2,
00246                     <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;b3,
00247                     <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;b4);
00248   <font class="keyword">public</font>:
00249     <font class="keyword">virtual</font> ~TwoBodyDerivInt();
00250   
00252     <font class="keywordtype">int</font> <a class="code" href="class_sc__TwoBodyDerivInt.html#a1">nbasis</a>() <font class="keyword">const</font>;
00253 
00255 
00256     <font class="keywordtype">int</font> nbasis1() <font class="keyword">const</font>;
00257     <font class="keywordtype">int</font> nbasis2() <font class="keyword">const</font>;
00258     <font class="keywordtype">int</font> nbasis3() <font class="keyword">const</font>;
00259     <font class="keywordtype">int</font> nbasis4() <font class="keyword">const</font>;
00261 
00263     <font class="keywordtype">int</font> <a class="code" href="class_sc__TwoBodyDerivInt.html#a6">nshell</a>() <font class="keyword">const</font>;
00264 
00266 
00267     <font class="keywordtype">int</font> nshell1() <font class="keyword">const</font>;
00268     <font class="keywordtype">int</font> nshell2() <font class="keyword">const</font>;
00269     <font class="keywordtype">int</font> nshell3() <font class="keyword">const</font>;
00270     <font class="keywordtype">int</font> nshell4() <font class="keyword">const</font>;
00272 
00274     Ref&lt;GaussianBasisSet&gt; <a class="code" href="class_sc__TwoBodyDerivInt.html#a11">basis</a>();
00275 
00277 
00278     Ref&lt;GaussianBasisSet&gt; basis1();
00279     Ref&lt;GaussianBasisSet&gt; basis2();
00280     Ref&lt;GaussianBasisSet&gt; basis3();
00281     Ref&lt;GaussianBasisSet&gt; basis4();
00283 
00287     <font class="keyword">const</font> <font class="keywordtype">double</font> * <a class="code" href="class_sc__TwoBodyDerivInt.html#a16">buffer</a>() <font class="keyword">const</font>;
00288     
00291     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__TwoBodyDerivInt.html#a17">compute_shell</a>(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,DerivCenters&amp;) = 0;
00292 
00295     <font class="keyword">virtual</font> <font class="keywordtype">int</font> <a class="code" href="class_sc__TwoBodyDerivInt.html#a18">log2_shell_bound</a>(<font class="keywordtype">int</font>= -1,<font class="keywordtype">int</font>= -1,<font class="keywordtype">int</font>= -1,<font class="keywordtype">int</font>= -1) = 0;
00296 };
00297 
00298 }
00299 
00300 <font class="preprocessor">#endif</font>
00301 <font class="preprocessor"></font>
00302 <font class="comment">// Local Variables:</font>
00303 <font class="comment">// mode: c++</font>
00304 <font class="comment">// c-file-style: "ETS"</font>
00305 <font class="comment">// End:</font>
</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>