Sophie

Sophie

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

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>int2e.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>int2e.h</h1><div class="fragment"><pre>00001 <font class="comment">//</font>
00002 <font class="comment">// int2e.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: Curtis Janssen &lt;cljanss@limitpt.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">#ifdef __GNUG__</font>
00029 <font class="preprocessor"></font><font class="preprocessor">#pragma interface</font>
00030 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00031 <font class="preprocessor"></font>
00032 <font class="preprocessor">#ifndef _chemistry_qc_intv3_int2e_h</font>
00033 <font class="preprocessor"></font><font class="preprocessor">#define _chemistry_qc_intv3_int2e_h</font>
00034 <font class="preprocessor"></font>
00035 <font class="preprocessor">#include &lt;limits.h&gt;</font>
00036 
00037 <font class="preprocessor">#include &lt;util/ref/ref.h&gt;</font>
00038 <font class="preprocessor">#include &lt;chemistry/qc/basis/basis.h&gt;</font>
00039 <font class="preprocessor">#include &lt;chemistry/qc/oint3/build.h&gt;</font>
00040 <font class="preprocessor">#include &lt;chemistry/qc/intv3/fjt.h&gt;</font>
00041 <font class="preprocessor">#include &lt;chemistry/qc/intv3/types.h&gt;</font>
00042 <font class="preprocessor">#include &lt;chemistry/qc/intv3/storage.h&gt;</font>
00043 <font class="preprocessor">#include &lt;chemistry/qc/intv3/array.h&gt;</font>
00044 <font class="preprocessor">#include &lt;chemistry/qc/intv3/macros.h&gt;</font>
00045 
00046 <font class="keyword">namespace </font>sc {
00047 
00048 <font class="keyword">class </font>Integral;
00049 
00050 <font class="preprocessor">#define CHECK_INTEGRAL_ALGORITHM 0</font>
00051 <font class="preprocessor"></font>
<a name="l00055"></a><a class="code" href="class_sc__Int2eV3.html">00055</a> <font class="keyword">class </font>Int2eV3: <font class="keyword">public</font> RefCount {
00056   <font class="keyword">protected</font>:
00057     Integral *integral_;
00058 
00059     BuildIntV3 build;
00060     Ref&lt;IntegralStorer&gt; storer;
00061 
00062     Ref&lt;GaussianBasisSet&gt; bs1_;
00063     Ref&lt;GaussianBasisSet&gt; bs2_;
00064     Ref&lt;GaussianBasisSet&gt; bs3_;
00065     Ref&lt;GaussianBasisSet&gt; bs4_;
00066 
00067     Ref&lt;MessageGrp&gt; grp_;
00068 
00069     <font class="keywordtype">int</font> bs1_shell_offset_;
00070     <font class="keywordtype">int</font> bs2_shell_offset_;
00071     <font class="keywordtype">int</font> bs3_shell_offset_;
00072     <font class="keywordtype">int</font> bs4_shell_offset_;
00073     <font class="keywordtype">int</font> bs1_func_offset_;
00074     <font class="keywordtype">int</font> bs2_func_offset_;
00075     <font class="keywordtype">int</font> bs3_func_offset_;
00076     <font class="keywordtype">int</font> bs4_func_offset_;
00077     <font class="keywordtype">int</font> bs1_prim_offset_;
00078     <font class="keywordtype">int</font> bs2_prim_offset_;
00079     <font class="keywordtype">int</font> bs3_prim_offset_;
00080     <font class="keywordtype">int</font> bs4_prim_offset_;
00081 
00082     <font class="comment">// statics from vrr.cc</font>
00083   <font class="keyword">public</font>:
00084     <font class="keyword">enum</font> { STORAGE_CHUNK = 4096 };
00085   <font class="keyword">protected</font>:
00086     <font class="keyword">struct </font>store_list {
00087         <font class="keywordtype">void</font>* data[STORAGE_CHUNK];
00088         <font class="keyword">struct </font>store_list* p;
00089     };
00090     <font class="keyword">typedef</font> <font class="keyword">struct </font>store_list store_list_t;
00091     <font class="keywordtype">int</font> n_store_last;
00092     store_list_t* store;
00093     <font class="keyword">typedef</font> int (BuildIntV3::*intfunc)();
00094     intfunc build_routine[4][4][4][4][2];
00095     <font class="comment">/* Offset shell numbers. */</font>
00096     <font class="keywordtype">int</font> osh1, osh2, osh3, osh4;
00097     <font class="comment">/* Offset primitive numbers. */</font>
00098     <font class="keywordtype">int</font> opr1, opr2, opr3, opr4;
00099     <font class="comment">/* Saved initialization parameters used to free data. */</font>
00100     <font class="keywordtype">int</font> saved_am12,saved_am34,saved_ncon;
00101     <font class="comment">/* Stores the length of the inner loop for integral contraction. */</font>
00102     IntV3Arrayint3 contract_length;
00103 
00104     <font class="comment">// statics from hrr.cc</font>
00105   <font class="keyword">protected</font>:
00106     <font class="comment">/* The general contraction numbers. */</font>
00107     <font class="keywordtype">int</font> g1,g2,g3,g4;
00108     <font class="comment">/* A[] - B[] */</font>
00109     <font class="keywordtype">double</font> AmB[3];
00110     <font class="comment">/* C[] - D[] */</font>
00111     <font class="keywordtype">double</font> CmD[3];
00112     <font class="keywordtype">int</font> eAB;
00113     <font class="keywordtype">double</font> *buf34;
00114     <font class="keywordtype">double</font> *buf12;
00115     <font class="keywordtype">double</font> *bufshared;
00116 
00117     <font class="keywordtype">int</font> redundant_;
00118     <font class="keywordtype">int</font> permute_;
00119 
00120   <font class="keyword">protected</font>:
00121     Ref&lt;FJT&gt; fjt_;
00122 
00123     <font class="keywordtype">int</font> *int_shell_to_prim;
00124     IntV3Arraydouble2 int_shell_r;
00125     IntV3Arraydouble2 int_prim_zeta;
00126     IntV3Arraydouble2 int_prim_k;
00127     IntV3Arraydouble2 int_prim_oo2zeta;
00128     IntV3Arraydouble3 int_prim_p;
00129 
00130     <font class="keywordtype">double</font> *int_buffer;
00131     <font class="keywordtype">double</font> *int_derint_buffer;
00132 
00133     Ref&lt;GaussianBasisSet&gt; int_cs1;
00134     Ref&lt;GaussianBasisSet&gt; int_cs2;
00135     Ref&lt;GaussianBasisSet&gt; int_cs3;
00136     Ref&lt;GaussianBasisSet&gt; int_cs4;
00137 
00138     GaussianShell *int_shell1;
00139     GaussianShell *int_shell2;
00140     GaussianShell *int_shell3;
00141     GaussianShell *int_shell4;
00142 
00143     IntV3Arraydoublep2 ****e0f0_con_ints_array;  <font class="comment">/* The contr. int. inter. */</font>
00144 
00145     <font class="keywordtype">int</font> int_expweight1; <font class="comment">// For exponent weighted contractions.</font>
00146     <font class="keywordtype">int</font> int_expweight2; <font class="comment">// For exponent weighted contractions.</font>
00147     <font class="keywordtype">int</font> int_expweight3; <font class="comment">// For exponent weighted contractions.</font>
00148     <font class="keywordtype">int</font> int_expweight4; <font class="comment">// For exponent weighted contractions.</font>
00149 
00150     <font class="comment">// These are used to compute two and three center electron repulsion</font>
00151     <font class="comment">// integrals.  int_unit2 is 1 if shell 2 is to have value one everywhere</font>
00152     <font class="comment">// and int_unit4 is 1 if shell4 is to be a unit function.  Otherwise,</font>
00153     <font class="comment">// they should be zero.</font>
00154     <font class="comment">//</font>
00155 
00156     <font class="keywordtype">int</font> int_unit2;
00157     <font class="keywordtype">int</font> int_unit4;
00158     GaussianShell* int_unit_shell;
00159 
00160     <font class="keywordtype">int</font> int_integral_storage;
00161     <font class="keywordtype">int</font> int_store1;
00162     <font class="keywordtype">int</font> int_store2;
00163     <font class="keywordtype">int</font> int_derivative_bounds;
00164 
00165     <font class="comment">// locals from vrr.cc</font>
00166   <font class="keyword">protected</font>:
00167     <font class="keywordtype">void</font> add_store(<font class="keywordtype">void</font> *p);
00168     <font class="keywordtype">void</font> free_store();
00169     <font class="keywordtype">void</font> _free_store(store_list_t* s, <font class="keywordtype">int</font> n);
00170     <font class="keywordtype">void</font> build_not_using_gcs(<font class="keywordtype">int</font> nc1, <font class="keywordtype">int</font> nc2, <font class="keywordtype">int</font> nc3, <font class="keywordtype">int</font> nc4,
00171                              <font class="keywordtype">int</font> minam1, <font class="keywordtype">int</font> minam3, <font class="keywordtype">int</font> maxam12, <font class="keywordtype">int</font> maxam34,
00172                              <font class="keywordtype">int</font> dam1, <font class="keywordtype">int</font> dam2, <font class="keywordtype">int</font> dam3, <font class="keywordtype">int</font> dam4, <font class="keywordtype">int</font> eAB);
00173     <font class="keywordtype">void</font> build_using_gcs(<font class="keywordtype">int</font> nc1, <font class="keywordtype">int</font> nc2, <font class="keywordtype">int</font> nc3, <font class="keywordtype">int</font> nc4,
00174                          <font class="keywordtype">int</font> minam1, <font class="keywordtype">int</font> minam3, <font class="keywordtype">int</font> maxam12, <font class="keywordtype">int</font> maxam34,
00175                          <font class="keywordtype">int</font> dam1, <font class="keywordtype">int</font> dam2, <font class="keywordtype">int</font> dam3, <font class="keywordtype">int</font> dam4, <font class="keywordtype">int</font> eAB);
00176     <font class="keywordtype">void</font> gen_prim_intermediates(<font class="keywordtype">int</font> pr1, <font class="keywordtype">int</font> pr2, <font class="keywordtype">int</font> pr3, <font class="keywordtype">int</font> pr4, <font class="keywordtype">int</font> am);
00177     <font class="keywordtype">void</font> gen_prim_intermediates_with_norm(<font class="keywordtype">int</font> pr1, <font class="keywordtype">int</font> pr2, <font class="keywordtype">int</font> pr3, <font class="keywordtype">int</font> pr4,
00178                                  <font class="keywordtype">int</font> am, <font class="keywordtype">double</font> norm);
00179     <font class="keywordtype">void</font> gen_shell_intermediates(<font class="keywordtype">int</font> sh1, <font class="keywordtype">int</font> sh2, <font class="keywordtype">int</font> sh3, <font class="keywordtype">int</font> sh4);
00180     <font class="keywordtype">void</font> blockbuildprim(<font class="keywordtype">int</font> minam1, <font class="keywordtype">int</font> maxam12, <font class="keywordtype">int</font> minam3, <font class="keywordtype">int</font> maxam34);
00181     <font class="keywordtype">void</font> blockbuildprim_1(<font class="keywordtype">int</font> am12min, <font class="keywordtype">int</font> am12max, <font class="keywordtype">int</font> am34, <font class="keywordtype">int</font> m);
00182     <font class="keywordtype">void</font> blockbuildprim_3(<font class="keywordtype">int</font> am34min, <font class="keywordtype">int</font> am34max, <font class="keywordtype">int</font> m);
00183 
00184     <font class="comment">// globals from vrr.cc</font>
00185   <font class="keyword">protected</font>:
00186     <font class="keywordtype">void</font> int_init_buildgc(<font class="keywordtype">int</font> order,
00187                           <font class="keywordtype">int</font> am1, <font class="keywordtype">int</font> am2, <font class="keywordtype">int</font> am3, <font class="keywordtype">int</font> am4,
00188                           <font class="keywordtype">int</font> nc1, <font class="keywordtype">int</font> nc2, <font class="keywordtype">int</font> nc3, <font class="keywordtype">int</font> nc4);
00189     <font class="keywordtype">void</font> int_done_buildgc();
00190     <font class="keywordtype">void</font> int_buildgcam(<font class="keywordtype">int</font> minam1, <font class="keywordtype">int</font> minam2, <font class="keywordtype">int</font> minam3, <font class="keywordtype">int</font> minam4,
00191                        <font class="keywordtype">int</font> maxam1, <font class="keywordtype">int</font> maxam2, <font class="keywordtype">int</font> maxam3, <font class="keywordtype">int</font> maxam4,
00192                        <font class="keywordtype">int</font> dam1, <font class="keywordtype">int</font> dam2, <font class="keywordtype">int</font> dam3, <font class="keywordtype">int</font> dam4,
00193                        <font class="keywordtype">int</font> sh1, <font class="keywordtype">int</font> sh2, <font class="keywordtype">int</font> sh3, <font class="keywordtype">int</font> sh4,
00194                        <font class="keywordtype">int</font> eAB);
00195 
00196     <font class="comment">// globals from print2e.cc</font>
00197   <font class="keyword">protected</font>:
00198     <font class="keywordtype">void</font> int_offset_print(std::ostream &amp;,
00199                           <font class="keywordtype">double</font> *buffer,
00200                           Ref&lt;GaussianBasisSet&gt; c1, <font class="keywordtype">int</font> s1,
00201                           Ref&lt;GaussianBasisSet&gt; c2, <font class="keywordtype">int</font> s2,
00202                           Ref&lt;GaussianBasisSet&gt; c3, <font class="keywordtype">int</font> s3,
00203                           Ref&lt;GaussianBasisSet&gt; c4, <font class="keywordtype">int</font> s4);
00204     <font class="keywordtype">void</font> int_offset_print_n(std::ostream &amp;, <font class="keywordtype">double</font> *buffer,
00205                             <font class="keywordtype">int</font> n1, <font class="keywordtype">int</font> n2, <font class="keywordtype">int</font> n3, <font class="keywordtype">int</font> n4,
00206                             <font class="keywordtype">int</font> o1, <font class="keywordtype">int</font> o2, <font class="keywordtype">int</font> o3, <font class="keywordtype">int</font> o4,
00207                             <font class="keywordtype">int</font> e12, <font class="keywordtype">int</font> e13e24, <font class="keywordtype">int</font> e34);
00208     <font class="keywordtype">void</font> int_print(std::ostream &amp;, <font class="keywordtype">double</font> *buffer,
00209                    Ref&lt;GaussianBasisSet&gt; c1, <font class="keywordtype">int</font> s1,
00210                    Ref&lt;GaussianBasisSet&gt; c2, <font class="keywordtype">int</font> s2,
00211                    Ref&lt;GaussianBasisSet&gt; c3, <font class="keywordtype">int</font> s3,
00212                    Ref&lt;GaussianBasisSet&gt; c4, <font class="keywordtype">int</font> s4);
00213     <font class="keywordtype">void</font> int_print_n(std::ostream &amp;, <font class="keywordtype">double</font> *buffer,
00214                      <font class="keywordtype">int</font> n1, <font class="keywordtype">int</font> n2, <font class="keywordtype">int</font> n3, <font class="keywordtype">int</font> n4,
00215                      <font class="keywordtype">int</font> e12, <font class="keywordtype">int</font> e13e24, <font class="keywordtype">int</font> e34);
00216     <font class="keywordtype">void</font> int_print_intermediates(std::ostream &amp;);
00217 
00218     <font class="comment">// locals from hrr.cc</font>
00219   <font class="keyword">protected</font>:
00220     <font class="keywordtype">void</font> shiftam_12(<font class="keywordtype">double</font> *I0100, <font class="keywordtype">double</font> *I1000, <font class="keywordtype">double</font> *I0000,
00221                     <font class="keywordtype">int</font> am1, <font class="keywordtype">int</font> am2, <font class="keywordtype">int</font> am3, <font class="keywordtype">int</font> am4);
00222     <font class="keywordtype">void</font> shiftam_12eAB(<font class="keywordtype">double</font> *I0100, <font class="keywordtype">double</font> *I1000, <font class="keywordtype">double</font> *I0000,
00223                        <font class="keywordtype">int</font> am1, <font class="keywordtype">int</font> am2, <font class="keywordtype">int</font> am3, <font class="keywordtype">int</font> am4);
00224     <font class="keywordtype">void</font> shiftam_34(<font class="keywordtype">double</font> *I0001, <font class="keywordtype">double</font> *I0010, <font class="keywordtype">double</font> *I0000,
00225                     <font class="keywordtype">int</font> am1, <font class="keywordtype">int</font> am2, <font class="keywordtype">int</font> am3, <font class="keywordtype">int</font> am4);
00226         
00227     <font class="comment">// globals from hrr.cc</font>
00228   <font class="keyword">protected</font>:
00229     <font class="keywordtype">void</font> int_init_shiftgc(<font class="keywordtype">int</font> order, <font class="keywordtype">int</font> am1, <font class="keywordtype">int</font> am2, <font class="keywordtype">int</font> am3, <font class="keywordtype">int</font> am4);
00230     <font class="keywordtype">void</font> int_done_shiftgc();
00231     <font class="keywordtype">double</font> *int_shiftgcam(<font class="keywordtype">int</font> gc1, <font class="keywordtype">int</font> gc2, <font class="keywordtype">int</font> gc3, <font class="keywordtype">int</font> gc4,
00232                           <font class="keywordtype">int</font> tam1, <font class="keywordtype">int</font> tam2, <font class="keywordtype">int</font> tam3, <font class="keywordtype">int</font> tam4, <font class="keywordtype">int</font> peAB);
00233 
00234     <font class="comment">// locals from init2e.cc</font>
00235   <font class="keyword">protected</font>:
00236     <font class="keywordtype">void</font> alloc_inter(<font class="keywordtype">int</font> nprim,<font class="keywordtype">int</font> nshell);
00237     <font class="keywordtype">void</font> compute_shell_1(Ref&lt;GaussianBasisSet&gt; cs, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>);
00238     <font class="keywordtype">void</font> compute_prim_1(Ref&lt;GaussianBasisSet&gt; cs1);
00239     <font class="keywordtype">void</font> compute_shell_2(Ref&lt;GaussianBasisSet&gt; cs1,Ref&lt;GaussianBasisSet&gt; cs2);
00240     <font class="keywordtype">void</font> compute_prim_2(Ref&lt;GaussianBasisSet&gt; cs1,Ref&lt;GaussianBasisSet&gt; cs2);
00241 
00242 
00243     <font class="comment">// globals from init2e.cc</font>
00244   <font class="keyword">protected</font>:
00245     <font class="keywordtype">double</font> *int_initialize_erep(size_t storage, <font class="keywordtype">int</font> order,
00246                                 <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt; &amp;cs1,
00247                                 <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt; &amp;cs2,
00248                                 <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt; &amp;cs3,
00249                                 <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt; &amp;cs4);
00250     <font class="keywordtype">void</font> int_done_erep();
00251 
00252     <font class="comment">// from tformv3.cc</font>
00253   <font class="keyword">protected</font>:
00254     <font class="keywordtype">double</font> *source;
00255     <font class="keywordtype">double</font> *target;
00256     <font class="keywordtype">double</font> *scratch;
00257     <font class="keywordtype">int</font> nsourcemax;
00258     <font class="comment">// transform implementation functions:</font>
00259     <font class="keywordtype">void</font> transform_init();
00260     <font class="keywordtype">void</font> transform_done();
00261     <font class="keywordtype">void</font> source_space(<font class="keywordtype">int</font> nsource);
00262     <font class="keywordtype">void</font> copy_to_source(<font class="keywordtype">double</font> *integrals, <font class="keywordtype">int</font> nsource);
00263     <font class="keywordtype">void</font> do_gencon_sparse_transform_2e(Integral*integ,
00264                                        <font class="keywordtype">double</font> *integrals, <font class="keywordtype">double</font> *target,
00265                                        <font class="keywordtype">int</font> index,
00266                                        GaussianShell *sh1, GaussianShell *sh2,
00267                                        GaussianShell *sh3, GaussianShell *sh4);
00268     <font class="comment">// functions for general use outside of tformv3.cc:</font>
00269     <font class="comment">// integrals and target may overlap</font>
00270     <font class="keywordtype">void</font> transform_2e_slow(Integral *,
00271                       <font class="keywordtype">double</font> *integrals, <font class="keywordtype">double</font> *target,
00272                       GaussianShell *sh1, GaussianShell *sh2,
00273                       GaussianShell *sh3, GaussianShell *sh4);
00274     <font class="keywordtype">void</font> transform_2e(Integral *,
00275                       <font class="keywordtype">double</font> *integrals, <font class="keywordtype">double</font> *target,
00276                       GaussianShell *sh1, GaussianShell *sh2,
00277                       GaussianShell *sh3, GaussianShell *sh4);
00278 
00279     <font class="comment">// locals from comp2e.cc</font>
00280   <font class="keyword">protected</font>:
00281     <font class="keywordtype">void</font> compute_erep(<font class="keywordtype">int</font> flags, <font class="keywordtype">int</font> *psh1, <font class="keywordtype">int</font> *psh2, <font class="keywordtype">int</font> *psh3, <font class="keywordtype">int</font> *psh4,
00282                       <font class="keywordtype">int</font> dam1, <font class="keywordtype">int</font> dam2, <font class="keywordtype">int</font> dam3, <font class="keywordtype">int</font> dam4);
00283     <font class="keywordtype">void</font> compute_erep_1der(<font class="keywordtype">int</font> flags, <font class="keywordtype">double</font> *buffer,
00284                            <font class="keywordtype">int</font> *psh1, <font class="keywordtype">int</font> *psh2, <font class="keywordtype">int</font> *psh3, <font class="keywordtype">int</font> *psh4,
00285                            <font class="keywordtype">int</font> dercenter);
00286     <font class="keywordtype">void</font> nonredundant_erep(<font class="keywordtype">double</font> *buffer, <font class="keywordtype">int</font> e12, <font class="keywordtype">int</font> e34, <font class="keywordtype">int</font> e13e24,
00287                            <font class="keywordtype">int</font> n1, <font class="keywordtype">int</font> n2, <font class="keywordtype">int</font> n3, <font class="keywordtype">int</font> n4,
00288                            <font class="keywordtype">int</font> *red_off, <font class="keywordtype">int</font> *nonred_off);
00289     <font class="keywordtype">void</font> compute_erep_bound1der(<font class="keywordtype">int</font> flags, <font class="keywordtype">double</font> *buffer,
00290                                 <font class="keywordtype">int</font> *psh1, <font class="keywordtype">int</font> *psh2, <font class="keywordtype">int</font> *psh3, <font class="keywordtype">int</font> *psh4);
00291 
00292     <font class="comment">// globals from comp2e.cc</font>
00293   <font class="keyword">protected</font>:
00294     <font class="keywordtype">void</font> int_erep_bound1der(<font class="keywordtype">int</font> flags, <font class="keywordtype">int</font> bsh1, <font class="keywordtype">int</font> bsh2, <font class="keywordtype">int</font> *size);
00295 
00296 
00297     <font class="comment">// global vars from bounds.h</font>
00298   <font class="keyword">protected</font>:
00299     <font class="keyword">typedef</font> <font class="keywordtype">signed</font> <font class="keywordtype">char</font> int_bound_t;
00300     <font class="keyword">enum</font> { int_bound_min = SCHAR_MIN, int_bound_max = SCHAR_MAX };
00301     int_bound_t int_Q;    
00302     int_bound_t int_R;    
00303     int_bound_t *int_Qvec;
00304     int_bound_t *int_Rvec;
00305 
00306     <font class="comment">// global routines from bounds.cc</font>
00307   <font class="keyword">protected</font>:
00308     <font class="keywordtype">void</font> int_init_bounds_nocomp();
00309     <font class="keywordtype">void</font> int_init_bounds_1der_nocomp();
00310     <font class="keywordtype">void</font> int_bounds_comp(<font class="keywordtype">int</font> s1, <font class="keywordtype">int</font> s2);
00311     <font class="keywordtype">void</font> int_bounds_1der_comp(<font class="keywordtype">int</font> s1, <font class="keywordtype">int</font> s2);
00312     <font class="keywordtype">int</font> int_erep_2bound(<font class="keywordtype">int</font> s1, <font class="keywordtype">int</font> s2);
00313     <font class="keywordtype">int</font> int_erep_0bound_1der();
00314     <font class="keywordtype">int</font> int_erep_2bound_1der(<font class="keywordtype">int</font> s1, <font class="keywordtype">int</font> s2);
00315 
00316     <font class="comment">// local routines from bounds.cc</font>
00317   <font class="keyword">protected</font>:
00318     <font class="keywordtype">void</font> compute_bounds(int_bound_t *overall, int_bound_t *vec, <font class="keywordtype">int</font> flag);
00319     <font class="keywordtype">void</font> compute_bounds_shell(int_bound_t *overall, int_bound_t *vec,
00320                               <font class="keywordtype">int</font> flag, <font class="keywordtype">int</font> sh1, <font class="keywordtype">int</font> sh2);
00321 
00322     <font class="comment">// global routines from storage.cc</font>
00323   <font class="keyword">protected</font>:
00324     <font class="keywordtype">int</font> int_have_stored_integral(<font class="keywordtype">int</font> sh1,<font class="keywordtype">int</font> sh2,<font class="keywordtype">int</font> sh3,<font class="keywordtype">int</font> sh4,
00325                                  <font class="keywordtype">int</font> p12,<font class="keywordtype">int</font> p34,<font class="keywordtype">int</font> p13p24);
00326     <font class="keywordtype">void</font> int_store_integral(<font class="keywordtype">int</font> sh1,<font class="keywordtype">int</font> sh2,<font class="keywordtype">int</font> sh3,<font class="keywordtype">int</font> sh4,
00327                             <font class="keywordtype">int</font> p12,<font class="keywordtype">int</font> p34,<font class="keywordtype">int</font> p13p24,
00328                             <font class="keywordtype">int</font> size);
00329 
00330     <font class="comment">// from offsets.cc</font>
00331   <font class="keyword">protected</font>:
00332     <font class="keywordtype">void</font> int_initialize_offsets2();
00333     <font class="keywordtype">void</font> int_done_offsets2();
00334 
00335     <font class="comment">// from comp2e3c.cc</font>
00336   <font class="keyword">protected</font>:
00337     <font class="keywordtype">void</font> make_int_unit_shell();
00338     <font class="keywordtype">void</font> delete_int_unit_shell();
00339 
00340   <font class="keyword">protected</font>:
00341     <font class="comment">// for intermediate storage:</font>
00342     <font class="keywordtype">int</font> used_storage_;
00343     <font class="keywordtype">int</font> used_storage_build_;
00344     <font class="keywordtype">int</font> used_storage_shift_;
00345 
00346   <font class="keyword">public</font>:
00347     Int2eV3(Integral *,
00348             <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;,
00349             <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;,
00350             <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;,
00351             <font class="keyword">const</font> Ref&lt;GaussianBasisSet&gt;&amp;,
00352             <font class="keywordtype">int</font> order, size_t storage);
00353     ~Int2eV3();
00354 
00355     <font class="comment">// storage.cc: for the storage of integrals</font>
00356     <font class="keywordtype">void</font> init_storage(<font class="keywordtype">int</font> size);
00357     <font class="keywordtype">void</font> done_storage();
00358 
00359     <font class="comment">// for intermediate storage</font>
00360     <font class="keywordtype">int</font> storage_used()<font class="keyword"> </font>{ <font class="keywordflow">return</font> used_storage_; }
00361 
00362     <font class="comment">// bounds.cc</font>
00363     <font class="keywordtype">void</font> init_bounds();
00364     <font class="keywordtype">void</font> init_bounds_1der();
00365     <font class="keywordtype">void</font> done_bounds();
00366     <font class="keywordtype">void</font> done_bounds_1der();
00367     <font class="comment">// Covert a bound to/from the log of the bound (returns 2^bound)</font>
00368     <font class="comment">// replace:</font>
00369     <font class="comment">//double int_bound_to_double(int bound);</font>
00370     <font class="comment">//double int_bound_double(int value);</font>
00371     <font class="comment">//int int_bound_log(double value);</font>
00372     <font class="keyword">static</font> <font class="keywordtype">double</font> logbound_to_bound(<font class="keywordtype">int</font>);
00373     <font class="keyword">static</font> <font class="keywordtype">int</font> bound_to_logbound(<font class="keywordtype">double</font> value);
00374 
00375     <font class="comment">// If redundant is false the redundant integrals that arise</font>
00376     <font class="comment">// when a shell index is repeated are stored.</font>
00377     <font class="comment">// The default is true.</font>
00378     <font class="keywordtype">int</font> redundant()<font class="keyword"> </font>{ <font class="keywordflow">return</font> redundant_; }
00379     <font class="keywordtype">void</font> set_redundant(<font class="keywordtype">int</font> i)<font class="keyword"> </font>{ redundant_ = i; }
00380 
00381     <font class="comment">// If permute is true the routines are allowed to permute indices.</font>
00382     <font class="comment">// The default is false.</font>
00383     <font class="keywordtype">int</font> permute()<font class="keyword"> </font>{ <font class="keywordflow">return</font> permute_; }
00384     <font class="keywordtype">void</font> set_permute(<font class="keywordtype">int</font> i)<font class="keyword"> </font>{ permute_ = i; }
00385 
00386     <font class="keywordtype">int</font> used_storage()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> used_storage_; }
00387 
00388     <font class="comment">// from comp2e.cc</font>
00389     <font class="keywordtype">void</font> erep(<font class="keywordtype">int</font> &amp;psh1, <font class="keywordtype">int</font> &amp;psh2, <font class="keywordtype">int</font> &amp;psh3, <font class="keywordtype">int</font> &amp;psh4);
00390     <font class="keywordtype">void</font> erep(<font class="keywordtype">int</font> *shells, <font class="keywordtype">int</font>  *sizes);
00391     <font class="keywordtype">void</font> erep_all1der(<font class="keywordtype">int</font> &amp;psh1, <font class="keywordtype">int</font> &amp;psh2, <font class="keywordtype">int</font> &amp;psh3, <font class="keywordtype">int</font> &amp;psh4,
00392                       der_centersv3_t *der_centers);
00393     <font class="keywordtype">void</font> erep_all1der(<font class="keywordtype">int</font> *shells, <font class="keywordtype">int</font>  *sizes,
00394                       der_centersv3_t *dercenters);
00395 
00396     <font class="comment">// from comp2e3c.cc</font>
00397     <font class="keywordtype">void</font> erep_2center(<font class="keywordtype">int</font> &amp;psh1, <font class="keywordtype">int</font> &amp;psh2);
00398     <font class="keywordtype">void</font> erep_2center(<font class="keywordtype">int</font> *shells, <font class="keywordtype">int</font>  *sizes);
00399     <font class="keywordtype">void</font> erep_3center(<font class="keywordtype">int</font> &amp;psh1, <font class="keywordtype">int</font> &amp;psh2, <font class="keywordtype">int</font> &amp;psh3);
00400     <font class="keywordtype">void</font> erep_3center(<font class="keywordtype">int</font> *shells, <font class="keywordtype">int</font>  *sizes);
00401 
00402     <font class="comment">// from bounds.cc</font>
00403     <font class="keywordtype">int</font> erep_4bound(<font class="keywordtype">int</font> s1, <font class="keywordtype">int</font> s2, <font class="keywordtype">int</font> s3, <font class="keywordtype">int</font> s4);
00404     <font class="keywordtype">int</font> erep_4bound_1der(<font class="keywordtype">int</font> s1, <font class="keywordtype">int</font> s2, <font class="keywordtype">int</font> s3, <font class="keywordtype">int</font> s4);
00405 
00406     <font class="keywordtype">double</font> *buffer()<font class="keyword"> </font>{ <font class="keywordflow">return</font> int_buffer; }
00407 
00408     Ref&lt;GaussianBasisSet&gt; basis()<font class="keyword"></font>
00409 <font class="keyword">    </font>{
00410       <font class="keywordflow">if</font> (bs1_==bs2_ &amp;&amp; bs1_ == bs3_ &amp;&amp; bs1_ == bs4_) <font class="keywordflow">return</font> bs1_;
00411       <font class="keywordflow">return</font> 0;
00412     }
00413     Ref&lt;GaussianBasisSet&gt; basis1()<font class="keyword"> </font>{ <font class="keywordflow">return</font> bs1_; }
00414     Ref&lt;GaussianBasisSet&gt; basis2()<font class="keyword"> </font>{ <font class="keywordflow">return</font> bs2_; }
00415     Ref&lt;GaussianBasisSet&gt; basis3()<font class="keyword"> </font>{ <font class="keywordflow">return</font> bs3_; }
00416     Ref&lt;GaussianBasisSet&gt; basis4()<font class="keyword"> </font>{ <font class="keywordflow">return</font> bs4_; }
00417 
00418     Ref&lt;GaussianBasisSet&gt; cs1()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> int_cs1; }
00419     Ref&lt;GaussianBasisSet&gt; cs2()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> int_cs2; }
00420     Ref&lt;GaussianBasisSet&gt; cs3()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> int_cs3; }
00421     Ref&lt;GaussianBasisSet&gt; cs4()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> int_cs4; }
00422 
00423     GaussianBasisSet * pcs1()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> int_cs1.pointer(); }
00424     GaussianBasisSet * pcs2()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> int_cs2.pointer(); }
00425     GaussianBasisSet * pcs3()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> int_cs3.pointer(); }
00426     GaussianBasisSet * pcs4()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> int_cs4.pointer(); }
00427 };
00428 
00429 }
00430 
00431 <font class="preprocessor">#endif</font>
00432 <font class="preprocessor"></font>
00433 <font class="comment">// Local Variables:</font>
00434 <font class="comment">// mode: c++</font>
00435 <font class="comment">// c-file-style: "CLJ"</font>
00436 <font class="comment">// End:</font>
</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>