<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.20" xml:lang="en-US">
  <compounddef id="classlibecpint_1_1_radial_integral" kind="class" language="C++" prot="public">
    <compoundname>libecpint::RadialIntegral</compoundname>
    <includes refid="radial_8hpp" local="no">radial.hpp</includes>
    <innerclass refid="structlibecpint_1_1_radial_integral_1_1_parameters" prot="public">libecpint::RadialIntegral::Parameters</innerclass>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classlibecpint_1_1_radial_integral_1a3eab6902a04542fea0f7716720101ab5" prot="private" static="no" mutable="no">
        <type><ref refid="classlibecpint_1_1_g_c_quadrature" kindref="compound">GCQuadrature</ref></type>
        <definition>GCQuadrature libecpint::RadialIntegral::bigGrid</definition>
        <argsstring></argsstring>
        <name>bigGrid</name>
        <briefdescription>
<para>The larger integration grid for type 1 integrals, and for when the smaller grid fails for type 2 integrals. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="50" column="14" bodyfile="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" bodystart="50" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classlibecpint_1_1_radial_integral_1a8fd9dc20f11777d70a4717bcd6e42695" prot="private" static="no" mutable="no">
        <type><ref refid="classlibecpint_1_1_g_c_quadrature" kindref="compound">GCQuadrature</ref></type>
        <definition>GCQuadrature libecpint::RadialIntegral::smallGrid</definition>
        <argsstring></argsstring>
        <name>smallGrid</name>
        <briefdescription>
<para>The smaller integration grid, default for the type 2 integrals. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="52" column="14" bodyfile="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" bodystart="52" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classlibecpint_1_1_radial_integral_1a0ecab0ef4febcbbde502dd2d8d0e3232" prot="private" static="no" mutable="no">
        <type><ref refid="classlibecpint_1_1_g_c_quadrature" kindref="compound">GCQuadrature</ref></type>
        <definition>GCQuadrature libecpint::RadialIntegral::primGrid</definition>
        <argsstring></argsstring>
        <name>primGrid</name>
        <briefdescription>
<para>Even smaller grid for primitive integrals. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="54" column="14" bodyfile="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" bodystart="54" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classlibecpint_1_1_radial_integral_1a02377eb5c6fa6e3e8bc7a9adab9d54ce" prot="private" static="no" mutable="no">
        <type><ref refid="classlibecpint_1_1_bessel_function" kindref="compound">BesselFunction</ref></type>
        <definition>BesselFunction libecpint::RadialIntegral::bessie</definition>
        <argsstring></argsstring>
        <name>bessie</name>
        <briefdescription>
<para>Modified spherical Bessel function of the first kind. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="56" column="16" bodyfile="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" bodystart="56" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classlibecpint_1_1_radial_integral_1aec0cebbcc385b095d3cddaca1535bfc6" prot="private" static="no" mutable="no">
        <type>double</type>
        <definition>double libecpint::RadialIntegral::tolerance</definition>
        <argsstring></argsstring>
        <name>tolerance</name>
        <briefdescription>
<para>Tolerance for change below which an integral is considered converged. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="59" column="8" bodyfile="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" bodystart="59" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-static-func">
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1ac44fed4a3ddd6f4070a059fae618825c" prot="private" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double libecpint::RadialIntegral::integrand</definition>
        <argsstring>(double r, const double *p, int ix)</argsstring>
        <name>integrand</name>
        <param>
          <type>double</type>
          <declname>r</declname>
        </param>
        <param>
          <type>const double *</type>
          <declname>p</declname>
        </param>
        <param>
          <type>int</type>
          <declname>ix</declname>
        </param>
        <briefdescription>
<para>This integrand simply returns the pretabulated integrand values stored in p given an index ix. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="62" column="15" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="69" bodyend="71"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1a162467ec2a4b9561b53215ea3f6ac835" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void libecpint::RadialIntegral::buildBessel</definition>
        <argsstring>(const std::vector&lt; double &gt; &amp;r, int nr, int maxL, TwoIndex&lt; double &gt; &amp;values, double weight=1.0) const</argsstring>
        <name>buildBessel</name>
        <param>
          <type>const std::vector&lt; double &gt; &amp;</type>
          <declname>r</declname>
        </param>
        <param>
          <type>int</type>
          <declname>nr</declname>
        </param>
        <param>
          <type>int</type>
          <declname>maxL</declname>
        </param>
        <param>
          <type><ref refid="structlibecpint_1_1_two_index" kindref="compound">TwoIndex</ref>&lt; double &gt; &amp;</type>
          <declname>values</declname>
        </param>
        <param>
          <type>double</type>
          <declname>weight</declname>
          <defval>1.0</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Builds a matrix of Bessel at the given points up to the given maximum angular momentum. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>r</parametername>
</parameternamelist>
<parameterdescription>
<para>- vector of points to evaluate at </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>nr</parametername>
</parameternamelist>
<parameterdescription>
<para>- number of points in r (for convenience) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>maxL</parametername>
</parameternamelist>
<parameterdescription>
<para>- the maximum angular momentum needed </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>values</parametername>
</parameternamelist>
<parameterdescription>
<para>- <ref refid="structlibecpint_1_1_two_index" kindref="compound">TwoIndex&lt;double&gt;</ref> to store the values in </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>weight</parametername>
</parameternamelist>
<parameterdescription>
<para>- factor to weight r by (defaults to 1) </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="72" column="6" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="46" bodyend="60"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1a3d24ad5249cce6f7d2c756b35838b420" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double libecpint::RadialIntegral::calcKij</definition>
        <argsstring>(double Na, double Nb, double zeta_a, double zeta_b, double R2) const</argsstring>
        <name>calcKij</name>
        <param>
          <type>double</type>
          <declname>Na</declname>
        </param>
        <param>
          <type>double</type>
          <declname>Nb</declname>
        </param>
        <param>
          <type>double</type>
          <declname>zeta_a</declname>
        </param>
        <param>
          <type>double</type>
          <declname>zeta_b</declname>
        </param>
        <param>
          <type>double</type>
          <declname>R2</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="74" column="8" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="62" bodyend="66"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1aeadf896902754c614f12b4dfd7d12397" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void libecpint::RadialIntegral::buildU</definition>
        <argsstring>(const ECP &amp;U, const int l, const int N, const GCQuadrature &amp;grid, double *Utab) const</argsstring>
        <name>buildU</name>
        <param>
          <type>const <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> &amp;</type>
          <declname>U</declname>
        </param>
        <param>
          <type>const int</type>
          <declname>l</declname>
        </param>
        <param>
          <type>const int</type>
          <declname>N</declname>
        </param>
        <param>
          <type>const <ref refid="classlibecpint_1_1_g_c_quadrature" kindref="compound">GCQuadrature</ref> &amp;</type>
          <declname>grid</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>Utab</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Tabulate r^{N+2} times the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> for all quadrature points. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>U</parametername>
</parameternamelist>
<parameterdescription>
<para>- the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> to be pretabulated </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l</parametername>
</parameternamelist>
<parameterdescription>
<para>- the angular momentum shell of the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> to be used </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>N</parametername>
</parameternamelist>
<parameterdescription>
<para>- the power of r to weight the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> by </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>grid</parametername>
</parameternamelist>
<parameterdescription>
<para>- the quadrature grid to be used </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>Utab</parametername>
</parameternamelist>
<parameterdescription>
<para>- the array to put the values into. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="84" column="6" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="111" bodyend="122"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1afb4ba9e73581249f9854212c08fe5fe2" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void libecpint::RadialIntegral::buildF</definition>
        <argsstring>(const GaussianShell &amp;shell, double A, int lstart, int lend, const std::vector&lt; double &gt; &amp;r, int nr, int start, int end, TwoIndex&lt; double &gt; &amp;F) const</argsstring>
        <name>buildF</name>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shell</declname>
        </param>
        <param>
          <type>double</type>
          <declname>A</declname>
        </param>
        <param>
          <type>int</type>
          <declname>lstart</declname>
        </param>
        <param>
          <type>int</type>
          <declname>lend</declname>
        </param>
        <param>
          <type>const std::vector&lt; double &gt; &amp;</type>
          <declname>r</declname>
        </param>
        <param>
          <type>int</type>
          <declname>nr</declname>
        </param>
        <param>
          <type>int</type>
          <declname>start</declname>
        </param>
        <param>
          <type>int</type>
          <declname>end</declname>
        </param>
        <param>
          <type><ref refid="structlibecpint_1_1_two_index" kindref="compound">TwoIndex</ref>&lt; double &gt; &amp;</type>
          <declname>F</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Tabulate the F function values for the default mode of calculating type 2 integrals. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>shell</parametername>
</parameternamelist>
<parameterdescription>
<para>- the shell of orbital basis functions to tabulate over </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>lstart</parametername>
</parameternamelist>
<parameterdescription>
<para>- the lowest angular momentum needed </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>lend</parametername>
</parameternamelist>
<parameterdescription>
<para>- the maximum angular momentum needed </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>r</parametername>
</parameternamelist>
<parameterdescription>
<para>- quadrature grid points </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>nr</parametername>
</parameternamelist>
<parameterdescription>
<para>- the number of grid points in r </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>start</parametername>
</parameternamelist>
<parameterdescription>
<para>- the grid point to start at </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>end</parametername>
</parameternamelist>
<parameterdescription>
<para>- the grid point to stop at </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>F</parametername>
</parameternamelist>
<parameterdescription>
<para>- the matrix to put the values in </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="97" column="6" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="236" bodyend="261"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1a0aab6879e20837964bbb6370e5e97602" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int libecpint::RadialIntegral::integrate</definition>
        <argsstring>(int maxL, int gridSize, const TwoIndex&lt; double &gt; &amp;intValues, GCQuadrature &amp;grid, std::vector&lt; double &gt; &amp;values, int start, int end, int offset=0, int skip=1) const</argsstring>
        <name>integrate</name>
        <param>
          <type>int</type>
          <declname>maxL</declname>
        </param>
        <param>
          <type>int</type>
          <declname>gridSize</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_two_index" kindref="compound">TwoIndex</ref>&lt; double &gt; &amp;</type>
          <declname>intValues</declname>
        </param>
        <param>
          <type><ref refid="classlibecpint_1_1_g_c_quadrature" kindref="compound">GCQuadrature</ref> &amp;</type>
          <declname>grid</declname>
        </param>
        <param>
          <type>std::vector&lt; double &gt; &amp;</type>
          <declname>values</declname>
        </param>
        <param>
          <type>int</type>
          <declname>start</declname>
        </param>
        <param>
          <type>int</type>
          <declname>end</declname>
        </param>
        <param>
          <type>int</type>
          <declname>offset</declname>
          <defval>0</defval>
        </param>
        <param>
          <type>int</type>
          <declname>skip</declname>
          <defval>1</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Performs the integration given the pretabulated integrand values. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>maxL</parametername>
</parameternamelist>
<parameterdescription>
<para>- the maximum angular momentum needed </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>gridSize</parametername>
</parameternamelist>
<parameterdescription>
<para>- the number of quadrature points </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>intValues</parametername>
</parameternamelist>
<parameterdescription>
<para>- the <ref refid="structlibecpint_1_1_two_index" kindref="compound">TwoIndex&lt;double&gt;</ref> of pretabulated integrand values for each angular momentum needed </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>grid</parametername>
</parameternamelist>
<parameterdescription>
<para>- the quadrature grid </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>values</parametername>
</parameternamelist>
<parameterdescription>
<para>- the vector to put the resulting integrals into </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>start</parametername>
</parameternamelist>
<parameterdescription>
<para>- index of first point to integrate over </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>end</parametername>
</parameternamelist>
<parameterdescription>
<para>- index of last point to integrate over </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>offset</parametername>
</parameternamelist>
<parameterdescription>
<para>- the angular momentum to start at (defaults to 0) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>skip</parametername>
</parameternamelist>
<parameterdescription>
<para>- the steps of angular momentum to go up in (defaults to 1) </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="114" column="5" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="124" bodyend="142"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1a54959dd73caf19610aaf64ef92dc38bd" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void libecpint::RadialIntegral::compute_base_integrals</definition>
        <argsstring>(int N_min, int N_max, double p, double o_root_p, double P1, double P2, double P1_2, double P2_2, double X1, double X2, double oP1, double oP2, double *values) const</argsstring>
        <name>compute_base_integrals</name>
        <param>
          <type>int</type>
          <declname>N_min</declname>
        </param>
        <param>
          <type>int</type>
          <declname>N_max</declname>
        </param>
        <param>
          <type>double</type>
          <declname>p</declname>
        </param>
        <param>
          <type>double</type>
          <declname>o_root_p</declname>
        </param>
        <param>
          <type>double</type>
          <declname>P1</declname>
        </param>
        <param>
          <type>double</type>
          <declname>P2</declname>
        </param>
        <param>
          <type>double</type>
          <declname>P1_2</declname>
        </param>
        <param>
          <type>double</type>
          <declname>P2_2</declname>
        </param>
        <param>
          <type>double</type>
          <declname>X1</declname>
        </param>
        <param>
          <type>double</type>
          <declname>X2</declname>
        </param>
        <param>
          <type>double</type>
          <declname>oP1</declname>
        </param>
        <param>
          <type>double</type>
          <declname>oP2</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>values</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Computes the base integrals needed for the recursive type 2 integration. See ref. Shaw2017 for details. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>N_min</parametername>
</parameternamelist>
<parameterdescription>
<para>- the lowest index of base integral needed (usually 2) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>N_max</parametername>
</parameternamelist>
<parameterdescription>
<para>- the highest index of base integral needed </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>p</parametername>
</parameternamelist>
<parameterdescription>
<para>- the sum of shellA, shellB, and <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> exponents (p = a + b + n) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>o_root_p</parametername>
</parameternamelist>
<parameterdescription>
<para>= 1/sqrt(p) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>P1</parametername>
</parameternamelist>
<parameterdescription>
<para>= (a * A + b * B) / p where A, B are the magnitudes of distance of shellA and shellB from <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>P2</parametername>
</parameternamelist>
<parameterdescription>
<para>= (b * B - a * A) / p </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>P1_2</parametername>
</parameternamelist>
<parameterdescription>
<para>= P1^2 </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>P2_2</parametername>
</parameternamelist>
<parameterdescription>
<para>= P2^2 </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>X1</parametername>
</parameternamelist>
<parameterdescription>
<para>= exp(p * P1^2 - a*A^2*b*B^2) / (16.0 * a * A * b * B) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>X2</parametername>
</parameternamelist>
<parameterdescription>
<para>= exp(p * P2^2 - a*A^2*b*B^2) / (16.0 * a * A * b * B) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>oP1</parametername>
</parameternamelist>
<parameterdescription>
<para>= 1 / P1 (P1 can&apos;t be zero as a, A, b, B, p &gt; 0) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>oP2</parametername>
</parameternamelist>
<parameterdescription>
<para>= 1 / P2 (set to zero if P2 = 0) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>values</parametername>
</parameternamelist>
<parameterdescription>
<para>- array of size N_max - N_min + 1 in which results are returned </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="133" column="6" bodyfile="/Users/robertshaw/devfiles/libecpint/src/generated/radial/radial_gen.cpp" bodystart="32" bodyend="105"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1a60c518824374379acf78f7d2b646e96f" prot="private" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>std::pair&lt; double, bool &gt;</type>
        <definition>std::pair&lt; double, bool &gt; libecpint::RadialIntegral::integrate_small</definition>
        <argsstring>(int N, int l1, int l2, double n, double a, double b, double A, double B) const</argsstring>
        <name>integrate_small</name>
        <param>
          <type>int</type>
          <declname>N</declname>
        </param>
        <param>
          <type>int</type>
          <declname>l1</declname>
        </param>
        <param>
          <type>int</type>
          <declname>l2</declname>
        </param>
        <param>
          <type>double</type>
          <declname>n</declname>
        </param>
        <param>
          <type>double</type>
          <declname>a</declname>
        </param>
        <param>
          <type>double</type>
          <declname>b</declname>
        </param>
        <param>
          <type>double</type>
          <declname>A</declname>
        </param>
        <param>
          <type>double</type>
          <declname>B</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Performs a single radial quadrature over a small grid <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>N</parametername>
</parameternamelist>
<parameterdescription>
<para>- power of r in integrand </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l1</parametername>
</parameternamelist>
<parameterdescription>
<para>- angular momentum of first Bessel function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l2</parametername>
</parameternamelist>
<parameterdescription>
<para>- angular momentum of second Bessel function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>n</parametername>
</parameternamelist>
<parameterdescription>
<para>- exponent of <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>a</parametername>
</parameternamelist>
<parameterdescription>
<para>- exponent of primitive in shellA </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>b</parametername>
</parameternamelist>
<parameterdescription>
<para>- exponent of primitive in shellB </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>A</parametername>
</parameternamelist>
<parameterdescription>
<para>- magnitude of distance of shellA from <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>B</parametername>
</parameternamelist>
<parameterdescription>
<para>- magnitude of distance of shellB from <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>a pair, where the first is the integral value, and the second is true if integration converged </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="149" column="11" bodyfile="/Users/robertshaw/devfiles/libecpint/src/generated/radial/radial_gen.cpp" bodystart="107" bodyend="137"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1af36637d464da95bf4eef4397021bed72" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>libecpint::RadialIntegral::RadialIntegral</definition>
        <argsstring>()</argsstring>
        <name>RadialIntegral</name>
        <briefdescription>
<para>Default constructor creates an empty object. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="154" column="1" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="33" bodyend="33"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1ab393e4e63a410d922c4b8fa1bee7df3f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void libecpint::RadialIntegral::init</definition>
        <argsstring>(int maxL, double tol=1e-15, int small=256, int large=1024)</argsstring>
        <name>init</name>
        <param>
          <type>int</type>
          <declname>maxL</declname>
        </param>
        <param>
          <type>double</type>
          <declname>tol</declname>
          <defval>1e-15</defval>
        </param>
        <param>
          <type>int</type>
          <declname>small</declname>
          <defval>256</defval>
        </param>
        <param>
          <type>int</type>
          <declname>large</declname>
          <defval>1024</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Initialises the object, in turn intialising the quadrature grids and <ref refid="classlibecpint_1_1_bessel_function" kindref="compound">BesselFunction</ref> <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>maxL</parametername>
</parameternamelist>
<parameterdescription>
<para>- the maximum angular momentum of integral needed </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>tol</parametername>
</parameternamelist>
<parameterdescription>
<para>- the tolerance for convergence of integrals (defaults to 1e-15) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>small</parametername>
</parameternamelist>
<parameterdescription>
<para>- the maximum number of quadrature points for the small integration grid (default 256, minimum recommended) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>large</parametername>
</parameternamelist>
<parameterdescription>
<para>- the maximum number of quadrature points for the large integration grid (default 1024, minimum recommended) </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="163" column="6" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="35" bodyend="44"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1a8fbfa7ff4f2147f12e532bb8c1091e2a" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structlibecpint_1_1_radial_integral_1_1_parameters" kindref="compound">Parameters</ref></type>
        <definition>RadialIntegral::Parameters libecpint::RadialIntegral::buildParameters</definition>
        <argsstring>(const GaussianShell &amp;shellA, const GaussianShell &amp;shellB, const ShellPairData &amp;data) const</argsstring>
        <name>buildParameters</name>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shellA</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shellB</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_shell_pair_data" kindref="compound">ShellPairData</ref> &amp;</type>
          <declname>data</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Given two GaussianShells, builds the parameters needed by both kind of integral. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>shellA</parametername>
</parameternamelist>
<parameterdescription>
<para>- the first <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>shellB</parametername>
</parameternamelist>
<parameterdescription>
<para>- the second <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data</parametername>
</parameternamelist>
<parameterdescription>
<para>- the data container for the shell pair </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>the parameters needed in both type 1 and 2 integrations </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="177" column="12" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="73" bodyend="109"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1a7fde45f9ebebc6b50cfd98bd93545daa" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void libecpint::RadialIntegral::type1</definition>
        <argsstring>(int maxL, int N, int offset, const ECP &amp;U, const GaussianShell &amp;shellA, const GaussianShell &amp;shellB, const ShellPairData &amp;data, const Parameters &amp;parameters, TwoIndex&lt; double &gt; &amp;values) const</argsstring>
        <name>type1</name>
        <param>
          <type>int</type>
          <declname>maxL</declname>
        </param>
        <param>
          <type>int</type>
          <declname>N</declname>
        </param>
        <param>
          <type>int</type>
          <declname>offset</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> &amp;</type>
          <declname>U</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shellA</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shellB</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_shell_pair_data" kindref="compound">ShellPairData</ref> &amp;</type>
          <declname>data</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_radial_integral_1_1_parameters" kindref="compound">Parameters</ref> &amp;</type>
          <declname>parameters</declname>
        </param>
        <param>
          <type><ref refid="structlibecpint_1_1_two_index" kindref="compound">TwoIndex</ref>&lt; double &gt; &amp;</type>
          <declname>values</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Calculates all type 1 radial integrals over two Gaussian shells up to the given maximum angular momentum. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>maxL</parametername>
</parameternamelist>
<parameterdescription>
<para>- the maximum angular momentum </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>N</parametername>
</parameternamelist>
<parameterdescription>
<para>- the power of r that the integrand is weighted by </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>offset</parametername>
</parameternamelist>
<parameterdescription>
<para>- the starting angular momentum </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>U</parametername>
</parameternamelist>
<parameterdescription>
<para>- the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> to be integrated over </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>shellA</parametername>
</parameternamelist>
<parameterdescription>
<para>- the first <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>shellB</parametername>
</parameternamelist>
<parameterdescription>
<para>- the second <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data</parametername>
</parameternamelist>
<parameterdescription>
<para>- the data container for the shell pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>parameters</parametername>
</parameternamelist>
<parameterdescription>
<para>- pre-calculated parameters for the radial integral </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>values</parametername>
</parameternamelist>
<parameterdescription>
<para>- the matrix to return the integrals in </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="192" column="6" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="144" bodyend="233"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1a0781fd9b60144e1312d547471148c05b" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void libecpint::RadialIntegral::type2</definition>
        <argsstring>(int lam, int l1start, int l1end, int l2start, int l2end, int N, const ECP &amp;U, const GaussianShell &amp;shellA, const GaussianShell &amp;shellB, const ShellPairData &amp;data, const Parameters &amp;parameters, TwoIndex&lt; double &gt; &amp;values) const</argsstring>
        <name>type2</name>
        <param>
          <type>int</type>
          <declname>lam</declname>
        </param>
        <param>
          <type>int</type>
          <declname>l1start</declname>
        </param>
        <param>
          <type>int</type>
          <declname>l1end</declname>
        </param>
        <param>
          <type>int</type>
          <declname>l2start</declname>
        </param>
        <param>
          <type>int</type>
          <declname>l2end</declname>
        </param>
        <param>
          <type>int</type>
          <declname>N</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> &amp;</type>
          <declname>U</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shellA</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shellB</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_shell_pair_data" kindref="compound">ShellPairData</ref> &amp;</type>
          <declname>data</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_radial_integral_1_1_parameters" kindref="compound">Parameters</ref> &amp;</type>
          <declname>parameters</declname>
        </param>
        <param>
          <type><ref refid="structlibecpint_1_1_two_index" kindref="compound">TwoIndex</ref>&lt; double &gt; &amp;</type>
          <declname>values</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Calculates all type 2 radial integrals over two Gaussian shells for the given <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> angular momentum l using quadrature <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>lam</parametername>
</parameternamelist>
<parameterdescription>
<para>- the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> shell angular momentum to be calculated over </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l1start</parametername>
</parameternamelist>
<parameterdescription>
<para>- the angular momentum to start on for the first shell </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l1end</parametername>
</parameternamelist>
<parameterdescription>
<para>- the angular momentum to stop at for the first shell </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l2start</parametername>
</parameternamelist>
<parameterdescription>
<para>- the angular momentum to start on for the second shell </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l2end</parametername>
</parameternamelist>
<parameterdescription>
<para>- the angular momentum to stop at for the second shell </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>N</parametername>
</parameternamelist>
<parameterdescription>
<para>- the power of r that the integrand is weighted by </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>U</parametername>
</parameternamelist>
<parameterdescription>
<para>- the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> to be integrated over </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>shellA</parametername>
</parameternamelist>
<parameterdescription>
<para>- the first <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>shellB</parametername>
</parameternamelist>
<parameterdescription>
<para>- the second <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>data</parametername>
</parameternamelist>
<parameterdescription>
<para>- the data container for the shell pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>parameters</parametername>
</parameternamelist>
<parameterdescription>
<para>- pre-calculated parameters for the radial integral </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>values</parametername>
</parameternamelist>
<parameterdescription>
<para>- the matrix to return the integrals in </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="211" column="6" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="283" bodyend="401"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1ac2027e7283ccb2a3d32d55f858d05102" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void libecpint::RadialIntegral::type2</definition>
        <argsstring>(const std::vector&lt; Triple &gt; &amp;triples, int nbase, int lam, const ECP &amp;U, const GaussianShell &amp;shellA, const GaussianShell &amp;shellB, double A, double B, ThreeIndex&lt; double &gt; &amp;radials) const</argsstring>
        <name>type2</name>
        <param>
          <type>const std::vector&lt; <ref refid="namespacelibecpint_1af2651847fa01dec731554db1e7b273fd" kindref="member">Triple</ref> &gt; &amp;</type>
          <declname>triples</declname>
        </param>
        <param>
          <type>int</type>
          <declname>nbase</declname>
        </param>
        <param>
          <type>int</type>
          <declname>lam</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> &amp;</type>
          <declname>U</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shellA</declname>
        </param>
        <param>
          <type>const <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> &amp;</type>
          <declname>shellB</declname>
        </param>
        <param>
          <type>double</type>
          <declname>A</declname>
        </param>
        <param>
          <type>double</type>
          <declname>B</declname>
        </param>
        <param>
          <type><ref refid="structlibecpint_1_1_three_index" kindref="compound">ThreeIndex</ref>&lt; double &gt; &amp;</type>
          <declname>radials</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Calculates all the requested type 2 radial integrals using predominantly a recursive algorithm. In the triples, l1 must be less than or equal to l2. Symmetry means that for l1 &gt; l2, {N, l1, l2} can be calculated as {N, l2, l1} but with shellA and shellB (And therefore also A and B) swapped.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>triples</parametername>
</parameternamelist>
<parameterdescription>
<para>- vector of triples of form {N, l1, l2} of all required radial integrals </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>nbase</parametername>
</parameternamelist>
<parameterdescription>
<para>- the maximum number of base integrals that will be needed (so only have to compute once) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>lam</parametername>
</parameternamelist>
<parameterdescription>
<para>- the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> shell angular momentum to be calculated over </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>U</parametername>
</parameternamelist>
<parameterdescription>
<para>- the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> to be integrated over </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>shellA</parametername>
</parameternamelist>
<parameterdescription>
<para>- the first <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>shellB</parametername>
</parameternamelist>
<parameterdescription>
<para>- the second <ref refid="structlibecpint_1_1_gaussian_shell" kindref="compound">GaussianShell</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>A</parametername>
</parameternamelist>
<parameterdescription>
<para>- the magnitude of the distance of shellA from the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>B</parametername>
</parameternamelist>
<parameterdescription>
<para>- the magnitude of the distance of shellB from the <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>radials</parametername>
</parameternamelist>
<parameterdescription>
<para>- the array to return the integrals in, indexed as (N, l1, l2) </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="230" column="6" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_gen.cpp" bodystart="156" bodyend="752"/>
      </memberdef>
      <memberdef kind="function" id="classlibecpint_1_1_radial_integral_1af12d9b2d0943bde72d6d106044423705" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double libecpint::RadialIntegral::estimate_type2</definition>
        <argsstring>(int N, int l1, int l2, double n, double a, double b, double A, double B) const</argsstring>
        <name>estimate_type2</name>
        <param>
          <type>int</type>
          <declname>N</declname>
        </param>
        <param>
          <type>int</type>
          <declname>l1</declname>
        </param>
        <param>
          <type>int</type>
          <declname>l2</declname>
        </param>
        <param>
          <type>double</type>
          <declname>n</declname>
        </param>
        <param>
          <type>double</type>
          <declname>a</declname>
        </param>
        <param>
          <type>double</type>
          <declname>b</declname>
        </param>
        <param>
          <type>double</type>
          <declname>A</declname>
        </param>
        <param>
          <type>double</type>
          <declname>B</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Estimates the value of the requested type 2 radial integral for prescreening, as described in ref. Shaw2017. The modal point is estimated by ignoring the ratios of bessel function derivatives - this gives an overestimate so is okay for screening, but would not be good for approximating the integral itself.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>N</parametername>
</parameternamelist>
<parameterdescription>
<para>- power of r in integrand </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l1</parametername>
</parameternamelist>
<parameterdescription>
<para>- angular momentum of first Bessel function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>l2</parametername>
</parameternamelist>
<parameterdescription>
<para>- angular momentum of second Bessel function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>n</parametername>
</parameternamelist>
<parameterdescription>
<para>- exponent of <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>a</parametername>
</parameternamelist>
<parameterdescription>
<para>- exponent of primitive in shellA </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>b</parametername>
</parameternamelist>
<parameterdescription>
<para>- exponent of primitive in shellB </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>A</parametername>
</parameternamelist>
<parameterdescription>
<para>- magnitude of distance of shellA from <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>B</parametername>
</parameternamelist>
<parameterdescription>
<para>- magnitude of distance of shellB from <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>estimated value (upper bound) of the type 2 integral </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="250" column="8" bodyfile="/Users/robertshaw/devfiles/libecpint/src/lib/radial_quad.cpp" bodystart="263" bodyend="281"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Abstracts the calculation of radial integrals for <ref refid="structlibecpint_1_1_e_c_p" kindref="compound">ECP</ref> integration. </para>
    </briefdescription>
    <detaileddescription>
<para>This should not be used directly, and is owned by <ref refid="classlibecpint_1_1_e_c_p_integral" kindref="compound">ECPIntegral</ref>. It provides the interface to the adaptive quadrature algorithms used to calculate the type 1 and 2 radial integrals, and the unrolled recursive scheme for type 2 radial integrals. </para>
    </detaileddescription>
    <collaborationgraph>
      <node id="4">
        <label>std::vector&lt; double &gt;</label>
      </node>
      <node id="2">
        <label>libecpint::BesselFunction</label>
        <link refid="classlibecpint_1_1_bessel_function"/>
      </node>
      <node id="1">
        <label>libecpint::RadialIntegral</label>
        <link refid="classlibecpint_1_1_radial_integral"/>
        <childnode refid="2" relation="usage">
          <edgelabel>bessie</edgelabel>
        </childnode>
        <childnode refid="3" relation="usage">
          <edgelabel>bigGrid</edgelabel>
          <edgelabel>primGrid</edgelabel>
          <edgelabel>smallGrid</edgelabel>
        </childnode>
      </node>
      <node id="3">
        <label>libecpint::GCQuadrature</label>
        <link refid="classlibecpint_1_1_g_c_quadrature"/>
        <childnode refid="4" relation="usage">
          <edgelabel>w</edgelabel>
          <edgelabel>x</edgelabel>
        </childnode>
      </node>
    </collaborationgraph>
    <location file="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" line="46" column="1" bodyfile="/Users/robertshaw/devfiles/libecpint/include/libecpint/radial.hpp" bodystart="47" bodyend="251"/>
    <listofallmembers>
      <member refid="classlibecpint_1_1_radial_integral_1a02377eb5c6fa6e3e8bc7a9adab9d54ce" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>bessie</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a3eab6902a04542fea0f7716720101ab5" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>bigGrid</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a162467ec2a4b9561b53215ea3f6ac835" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>buildBessel</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1afb4ba9e73581249f9854212c08fe5fe2" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>buildF</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a8fbfa7ff4f2147f12e532bb8c1091e2a" prot="public" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>buildParameters</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1aeadf896902754c614f12b4dfd7d12397" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>buildU</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a3d24ad5249cce6f7d2c756b35838b420" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>calcKij</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a54959dd73caf19610aaf64ef92dc38bd" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>compute_base_integrals</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1af12d9b2d0943bde72d6d106044423705" prot="public" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>estimate_type2</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1ab393e4e63a410d922c4b8fa1bee7df3f" prot="public" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>init</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1ac44fed4a3ddd6f4070a059fae618825c" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>integrand</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a0aab6879e20837964bbb6370e5e97602" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>integrate</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a60c518824374379acf78f7d2b646e96f" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>integrate_small</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a0ecab0ef4febcbbde502dd2d8d0e3232" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>primGrid</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1af36637d464da95bf4eef4397021bed72" prot="public" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>RadialIntegral</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a8fd9dc20f11777d70a4717bcd6e42695" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>smallGrid</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1aec0cebbcc385b095d3cddaca1535bfc6" prot="private" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>tolerance</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a7fde45f9ebebc6b50cfd98bd93545daa" prot="public" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>type1</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1a0781fd9b60144e1312d547471148c05b" prot="public" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>type2</name></member>
      <member refid="classlibecpint_1_1_radial_integral_1ac2027e7283ccb2a3d32d55f858d05102" prot="public" virt="non-virtual"><scope>libecpint::RadialIntegral</scope><name>type2</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
