Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 247b28499c443e092731ffba814075f2 > files > 261

mpqc-html-2.3.1-9mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPQC: sc::Function Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><b>sc</b>::<a class="el" href="classsc_1_1Function.html">Function</a>
  </div>
</div>
<div class="contents">
<h1>sc::Function Class Reference</h1><!-- doxytag: class="sc::Function" --><!-- doxytag: inherits="sc::SavableState,sc::Compute" -->The <a class="el" href="classsc_1_1Function.html" title="The Function class is an abstract base class that, given a set of coordinates, will...">Function</a> class is an abstract base class that, given a set of coordinates, will compute a value and possibly a gradient and hessian at that point.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="function_8h_source.html">function.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for sc::Function:</div>
<div class="dynsection">

<p><center><img src="classsc_1_1Function.png" usemap="#sc::Function_map" border="0" alt=""></center>
<map name="sc::Function_map">
<area href="classsc_1_1SavableState.html" alt="sc::SavableState" shape="rect" coords="522,168,686,192">
<area href="classsc_1_1Compute.html" alt="sc::Compute" shape="rect" coords="696,168,860,192">
<area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="522,112,686,136">
<area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="522,56,686,80">
<area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="522,0,686,24">
<area href="classsc_1_1MolecularEnergy.html" alt="sc::MolecularEnergy" shape="rect" coords="435,280,599,304">
<area href="classsc_1_1Volume.html" alt="sc::Volume" shape="rect" coords="783,280,947,304">
<area href="classsc_1_1Wavefunction.html" alt="sc::Wavefunction" shape="rect" coords="435,336,599,360">
<area href="classsc_1_1BatchElectronDensity.html" alt="sc::BatchElectronDensity" shape="rect" coords="609,336,773,360">
<area href="classsc_1_1ElectronDensity.html" alt="sc::ElectronDensity" shape="rect" coords="783,336,947,360">
<area href="classsc_1_1Shape.html" alt="sc::Shape" shape="rect" coords="1174,336,1338,360">
<area href="classsc_1_1MBPT2.html" alt="sc::MBPT2" shape="rect" coords="0,392,164,416">
<area href="classsc_1_1OneBodyWavefunction.html" alt="sc::OneBodyWavefunction" shape="rect" coords="435,392,599,416">
<area href="classsc_1_1PsiWavefunction.html" alt="sc::PsiWavefunction" shape="rect" coords="783,392,947,416">
<area href="classsc_1_1ConnollyShape.html" alt="sc::ConnollyShape" shape="rect" coords="957,392,1121,416">
<area href="classsc_1_1UnionShape.html" alt="sc::UnionShape" shape="rect" coords="1392,392,1556,416">
<area href="classsc_1_1MBPT2__R12.html" alt="sc::MBPT2_R12" shape="rect" coords="0,448,164,472">
<area href="classsc_1_1SCF.html" alt="sc::SCF" shape="rect" coords="435,448,599,472">
<area href="classsc_1_1PsiCCSD.html" alt="sc::PsiCCSD" shape="rect" coords="609,448,773,472">
<area href="classsc_1_1PsiCCSD__T.html" alt="sc::PsiCCSD_T" shape="rect" coords="783,448,947,472">
<area href="classsc_1_1PsiSCF.html" alt="sc::PsiSCF" shape="rect" coords="1131,448,1295,472">
<area href="classsc_1_1DiscreteConnollyShape.html" alt="sc::DiscreteConnollyShape" shape="rect" coords="1305,448,1469,472">
<area href="classsc_1_1VDWShape.html" alt="sc::VDWShape" shape="rect" coords="1479,448,1643,472">
<area href="classsc_1_1CLSCF.html" alt="sc::CLSCF" shape="rect" coords="87,504,251,528">
<area href="classsc_1_1HSOSSCF.html" alt="sc::HSOSSCF" shape="rect" coords="435,504,599,528">
<area href="classsc_1_1UnrestrictedSCF.html" alt="sc::UnrestrictedSCF" shape="rect" coords="783,504,947,528">
<area href="classsc_1_1PsiCLHF.html" alt="sc::PsiCLHF" shape="rect" coords="957,504,1121,528">
<area href="classsc_1_1PsiHSOSHF.html" alt="sc::PsiHSOSHF" shape="rect" coords="1131,504,1295,528">
<area href="classsc_1_1PsiUHF.html" alt="sc::PsiUHF" shape="rect" coords="1305,504,1469,528">
<area href="classsc_1_1CLHF.html" alt="sc::CLHF" shape="rect" coords="0,560,164,584">
<area href="classsc_1_1CLKS.html" alt="sc::CLKS" shape="rect" coords="174,560,338,584">
<area href="classsc_1_1HSOSHF.html" alt="sc::HSOSHF" shape="rect" coords="348,560,512,584">
<area href="classsc_1_1HSOSKS.html" alt="sc::HSOSKS" shape="rect" coords="522,560,686,584">
<area href="classsc_1_1UHF.html" alt="sc::UHF" shape="rect" coords="696,560,860,584">
<area href="classsc_1_1UKS.html" alt="sc::UKS" shape="rect" coords="870,560,1034,584">
</map>
</div>

<p>
<a href="classsc_1_1Function-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d958c561ed4854a2dc81d048f6838d72"></a><!-- doxytag: member="sc::Function::Function" ref="d958c561ed4854a2dc81d048f6838d72" args="(StateIn &amp;)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>Function</b> (<a class="el" href="classsc_1_1StateIn.html">StateIn</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b2f24985cb16a0444b1100d702b8f0c3"></a><!-- doxytag: member="sc::Function::Function" ref="b2f24985cb16a0444b1100d702b8f0c3" args="(const Function &amp;)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>Function</b> (const <a class="el" href="classsc_1_1Function.html">Function</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#9c6e520f3ed51e0c65140717d95e2512">Function</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> &gt; &amp;, double funcacc=DBL_EPSILON, double gradacc=DBL_EPSILON, double hessacc=DBL_EPSILON)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The keyval constructor reads the following keywords:.  <a href="#9c6e520f3ed51e0c65140717d95e2512"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0869f7fb13b04cb6544196797d48e216"></a><!-- doxytag: member="sc::Function::operator=" ref="0869f7fb13b04cb6544196797d48e216" args="(const Function &amp;)" -->
<a class="el" href="classsc_1_1Function.html">Function</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classsc_1_1Function.html">Function</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCMatrixKit.html">SCMatrixKit</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#86be61bf9d28596b283e65bf101b174b">matrixkit</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <a class="el" href="classsc_1_1SCMatrixKit.html" title="The SCMatrixKit abstract class acts as a factory for producing matrices.">SCMatrixKit</a> used to construct vectors and matrices.  <a href="#86be61bf9d28596b283e65bf101b174b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9d5688f8f8bb8796485e7c8a7a69545"></a><!-- doxytag: member="sc::Function::dimension" ref="a9d5688f8f8bb8796485e7c8a7a69545" args="() const " -->
<a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#a9d5688f8f8bb8796485e7c8a7a69545">dimension</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <a class="el" href="classsc_1_1SCDimension.html" title="The SCDimension class is used to determine the size and blocking of matrices.">SCDimension</a> of the problem. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#5b48312329bddf00e7a44adb6c577dff">save_data_state</a> (<a class="el" href="classsc_1_1StateOut.html">StateOut</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="classsc_1_1StateIn.html" title="Restores objects that derive from SavableState.">StateIn</a> CTOR initializes them.  <a href="#5b48312329bddf00e7a44adb6c577dff"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="36e1b9c157780039752a3ea2e3736875"></a><!-- doxytag: member="sc::Function::value" ref="36e1b9c157780039752a3ea2e3736875" args="()" -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#36e1b9c157780039752a3ea2e3736875">value</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the value of the function. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fcaa99fe2ff2749d979d151b53ece66f"></a><!-- doxytag: member="sc::Function::value_needed" ref="fcaa99fe2ff2749d979d151b53ece66f" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#fcaa99fe2ff2749d979d151b53ece66f">value_needed</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns nonzero if the current value is not up-to-date. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#57ad99f54082575470644172a2022a5e">do_value</a> (int)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If passed a nonzero number, compute the value the next time <a class="el" href="classsc_1_1Compute.html#33f07c9eb2bfeba367f24d537c28c462" title="Recompute at least the results that have compute true and are not already computed...">compute()</a> is called.  <a href="#57ad99f54082575470644172a2022a5e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fa7358c3378bc0694a124630bce6091b"></a><!-- doxytag: member="sc::Function::value_result" ref="fa7358c3378bc0694a124630bce6091b" args="()" -->
<a class="el" href="classsc_1_1NCAccResult.html">AccResultdouble</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>value_result</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ddbc72f90b48f0423e855d3e9f3e36ed"></a><!-- doxytag: member="sc::Function::set_desired_value_accuracy" ref="ddbc72f90b48f0423e855d3e9f3e36ed" args="(double)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#ddbc72f90b48f0423e855d3e9f3e36ed">set_desired_value_accuracy</a> (double)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the accuracy to which the value is to be computed. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="75ca40b52a69404c175758a25822ba3c"></a><!-- doxytag: member="sc::Function::actual_value_accuracy" ref="75ca40b52a69404c175758a25822ba3c" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#75ca40b52a69404c175758a25822ba3c">actual_value_accuracy</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the accuracy with which the value has been computed. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a63f044fa1ea871cf9d14c723f03404"></a><!-- doxytag: member="sc::Function::desired_value_accuracy" ref="5a63f044fa1ea871cf9d14c723f03404" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#5a63f044fa1ea871cf9d14c723f03404">desired_value_accuracy</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the accuracy with which the value is to be computed. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9824774dc9c2539de5237dd43c208e1f"></a><!-- doxytag: member="sc::Function::guess_hessian" ref="9824774dc9c2539de5237dd43c208e1f" args="(RefSymmSCMatrix &amp;)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#9824774dc9c2539de5237dd43c208e1f">guess_hessian</a> (<a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classsc_1_1Compute.html" title="The Compute class provides a means of keeping results up to date.">Compute</a> a quick, approximate hessian. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="60f8ec4326c79eaa2c485d1d408c5508"></a><!-- doxytag: member="sc::Function::inverse_hessian" ref="60f8ec4326c79eaa2c485d1d408c5508" args="(RefSymmSCMatrix &amp;)" -->
virtual <a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>inverse_hessian</b> (<a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#54f1ed14490ca8bc4658989d6a78c1dc">value_implemented</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Information about the availability of values, gradients, and hessians.  <a href="#54f1ed14490ca8bc4658989d6a78c1dc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bd5519f003afb40ea4a6d48e592c8d3a"></a><!-- doxytag: member="sc::Function::gradient_implemented" ref="bd5519f003afb40ea4a6d48e592c8d3a" args="() const " -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><b>gradient_implemented</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ee352128883541238ad69e09ac77e9e8"></a><!-- doxytag: member="sc::Function::hessian_implemented" ref="ee352128883541238ad69e09ac77e9e8" args="() const " -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><b>hessian_implemented</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="aba15d584e7edd3c4ece549da5bd4778"></a><!-- doxytag: member="sc::Function::set_x" ref="aba15d584e7edd3c4ece549da5bd4778" args="(const RefSCVector &amp;)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#aba15d584e7edd3c4ece549da5bd4778">set_x</a> (const <a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set and retrieve the coordinate values. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bb5ed239a10355b6a9fcde8040bca96b"></a><!-- doxytag: member="sc::Function::get_x" ref="bb5ed239a10355b6a9fcde8040bca96b" args="() const " -->
<a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_x</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7297da3b8f02beae009d8e196270c1a7"></a><!-- doxytag: member="sc::Function::get_x_no_copy" ref="7297da3b8f02beae009d8e196270c1a7" args="() const " -->
const <a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_x_no_copy</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1NonlinearTransform.html">NonlinearTransform</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#a97727905279ce992e25514f52766c37">change_coordinates</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system.  <a href="#a97727905279ce992e25514f52766c37"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cdf2aa8181589c9ce7de5f63afe76402"></a><!-- doxytag: member="sc::Function::print" ref="cdf2aa8181589c9ce7de5f63afe76402" args="(std::ostream &amp;=ExEnv::out0()) const " -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#cdf2aa8181589c9ce7de5f63afe76402">print</a> (std::ostream &amp;=ExEnv::out0()) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print information about the object. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Gradient Members</div></td></tr>
<tr><td colspan="2"><div class="groupText">These are analogous to the routines that deal with values, but work with gradients instead.<br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="74f5439b850f1cba9ca0aeb65998a9c8"></a><!-- doxytag: member="sc::Function::gradient" ref="74f5439b850f1cba9ca0aeb65998a9c8" args="()" -->
virtual <a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>gradient</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="931c33d3ce2a34eb6ee8009535d261b6"></a><!-- doxytag: member="sc::Function::gradient_needed" ref="931c33d3ce2a34eb6ee8009535d261b6" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>gradient_needed</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a7dcaa7b0bc6cdacbbbfdbb1c13e039"></a><!-- doxytag: member="sc::Function::do_gradient" ref="9a7dcaa7b0bc6cdacbbbfdbb1c13e039" args="(int)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>do_gradient</b> (int)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="75f06eaabd6c710c185c6d9cf87371a1"></a><!-- doxytag: member="sc::Function::set_desired_gradient_accuracy" ref="75f06eaabd6c710c185c6d9cf87371a1" args="(double)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_desired_gradient_accuracy</b> (double)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b917d978c9f3135e403f39f024b387dd"></a><!-- doxytag: member="sc::Function::actual_gradient_accuracy" ref="b917d978c9f3135e403f39f024b387dd" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><b>actual_gradient_accuracy</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="48ab0604c5f18b814f13b40557fd70b6"></a><!-- doxytag: member="sc::Function::desired_gradient_accuracy" ref="48ab0604c5f18b814f13b40557fd70b6" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><b>desired_gradient_accuracy</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5dac53758ef77d021e26f771154bc769"></a><!-- doxytag: member="sc::Function::gradient_result" ref="5dac53758ef77d021e26f771154bc769" args="()" -->
<a class="el" href="classsc_1_1AccResult.html">AccResultRefSCVector</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>gradient_result</b> ()</td></tr>

<tr><td colspan="2"><div class="groupHeader">Hessian Members</div></td></tr>
<tr><td colspan="2"><div class="groupText">These are analogous to the routines that deal with values, but work with the hessian instead.<br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="582dd726fa3e0be8bcc8b5cea827192b"></a><!-- doxytag: member="sc::Function::hessian" ref="582dd726fa3e0be8bcc8b5cea827192b" args="()" -->
virtual <a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>hessian</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f79cd706140ed11eb0fd69e3a033a121"></a><!-- doxytag: member="sc::Function::hessian_needed" ref="f79cd706140ed11eb0fd69e3a033a121" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>hessian_needed</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2e25e3d9ce79cf882de286237b84378e"></a><!-- doxytag: member="sc::Function::do_hessian" ref="2e25e3d9ce79cf882de286237b84378e" args="(int)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>do_hessian</b> (int)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ee9e921cfa5790a9daf7ae28a8778d7f"></a><!-- doxytag: member="sc::Function::set_desired_hessian_accuracy" ref="ee9e921cfa5790a9daf7ae28a8778d7f" args="(double)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_desired_hessian_accuracy</b> (double)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5f5fa42228dd31b082476dddc0029b85"></a><!-- doxytag: member="sc::Function::actual_hessian_accuracy" ref="5f5fa42228dd31b082476dddc0029b85" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><b>actual_hessian_accuracy</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d4cd8cde59d059fe46c49f825add9d29"></a><!-- doxytag: member="sc::Function::desired_hessian_accuracy" ref="d4cd8cde59d059fe46c49f825add9d29" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><b>desired_hessian_accuracy</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3c29f43c6b5b553ea7466ab4fcb515f8"></a><!-- doxytag: member="sc::Function::hessian_result" ref="3c29f43c6b5b553ea7466ab4fcb515f8" args="()" -->
<a class="el" href="classsc_1_1AccResult.html">AccResultRefSymmSCMatrix</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>hessian_result</b> ()</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#a76abecd574f7744cd6d93f1bd6b5506">set_matrixkit</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCMatrixKit.html">SCMatrixKit</a> &gt; &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the <a class="el" href="classsc_1_1SCMatrixKit.html" title="The SCMatrixKit abstract class acts as a factory for producing matrices.">SCMatrixKit</a> that should be used to construct the requisite vectors and matrices.  <a href="#a76abecd574f7744cd6d93f1bd6b5506"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0a02b04b3cf9b77cf6cdc099003e4834"></a><!-- doxytag: member="sc::Function::set_dimension" ref="0a02b04b3cf9b77cf6cdc099003e4834" args="(const RefSCDimension &amp;)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_dimension</b> (const <a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1287b3d19e716b17e229f731fa4dadc6"></a><!-- doxytag: member="sc::Function::get_x_reference" ref="1287b3d19e716b17e229f731fa4dadc6" args="()" -->
<a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#1287b3d19e716b17e229f731fa4dadc6">get_x_reference</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get read/write access to the coordinates for modification. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#aebdb9c0bf5645da91d00cb127afecc4">do_change_coordinates</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1NonlinearTransform.html">NonlinearTransform</a> &gt; &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the coordinate system and apply the given transform to intermediates matrices and vectors.  <a href="#aebdb9c0bf5645da91d00cb127afecc4"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Update Members</div></td></tr>
<tr><td colspan="2"><div class="groupText">Update the various computable results. <br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1bbcc5d7265599465661add6944d66a6"></a><!-- doxytag: member="sc::Function::set_value" ref="1bbcc5d7265599465661add6944d66a6" args="(double)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_value</b> (double)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c87d65bb5f03428cf36c11db9b28bad7"></a><!-- doxytag: member="sc::Function::set_gradient" ref="c87d65bb5f03428cf36c11db9b28bad7" args="(RefSCVector &amp;)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_gradient</b> (<a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="80831289b5119d908734011e078ab6bd"></a><!-- doxytag: member="sc::Function::set_hessian" ref="80831289b5119d908734011e078ab6bd" args="(RefSymmSCMatrix &amp;)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_hessian</b> (<a class="el" href="classsc_1_1RefSymmSCMatrix.html">RefSymmSCMatrix</a> &amp;)</td></tr>

<tr><td colspan="2"><div class="groupHeader">Accuracy Setting Members</div></td></tr>
<tr><td colspan="2"><div class="groupText">Set the accuracies with which the various computables have been computed.<br><br></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="18e9ab0944e5c53c9dfeefc990714058"></a><!-- doxytag: member="sc::Function::set_actual_value_accuracy" ref="18e9ab0944e5c53c9dfeefc990714058" args="(double)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_actual_value_accuracy</b> (double)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="86cd75353a154a47aa58318ba39d881e"></a><!-- doxytag: member="sc::Function::set_actual_gradient_accuracy" ref="86cd75353a154a47aa58318ba39d881e" args="(double)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_actual_gradient_accuracy</b> (double)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2dd4014b7d262ba5076900dc10f620f0"></a><!-- doxytag: member="sc::Function::set_actual_hessian_accuracy" ref="2dd4014b7d262ba5076900dc10f620f0" args="(double)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_actual_hessian_accuracy</b> (double)</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1833a04507ed111de5df37fe0cd71b1b"></a><!-- doxytag: member="sc::Function::matrixkit_" ref="1833a04507ed111de5df37fe0cd71b1b" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCMatrixKit.html">SCMatrixKit</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#1833a04507ed111de5df37fe0cd71b1b">matrixkit_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to construct new matrices. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2a615bead5bd425bd082708f4b2c58c2"></a><!-- doxytag: member="sc::Function::x_" ref="2a615bead5bd425bd082708f4b2c58c2" args="" -->
<a class="el" href="classsc_1_1RefSCVector.html">RefSCVector</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#2a615bead5bd425bd082708f4b2c58c2">x_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The variables. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2f487293d319362639a912be9e9268ae"></a><!-- doxytag: member="sc::Function::dim_" ref="2f487293d319362639a912be9e9268ae" args="" -->
<a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#2f487293d319362639a912be9e9268ae">dim_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The dimension of x_. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a29fadf89f6ad8ab25e32d92dc9d87ee"></a><!-- doxytag: member="sc::Function::value_" ref="a29fadf89f6ad8ab25e32d92dc9d87ee" args="" -->
<a class="el" href="classsc_1_1NCAccResult.html">AccResultdouble</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#a29fadf89f6ad8ab25e32d92dc9d87ee">value_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The value of the function at x_. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ebedf1f0726ee6f6c782ebf81d7d85c1"></a><!-- doxytag: member="sc::Function::gradient_" ref="ebedf1f0726ee6f6c782ebf81d7d85c1" args="" -->
<a class="el" href="classsc_1_1AccResult.html">AccResultRefSCVector</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#ebedf1f0726ee6f6c782ebf81d7d85c1">gradient_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The gradient at x_. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1bf0316e343e945fce55fb7b25a27764"></a><!-- doxytag: member="sc::Function::hessian_" ref="1bf0316e343e945fce55fb7b25a27764" args="" -->
<a class="el" href="classsc_1_1AccResult.html">AccResultRefSymmSCMatrix</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Function.html#1bf0316e343e945fce55fb7b25a27764">hessian_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The hessian at x_. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="classsc_1_1Function.html" title="The Function class is an abstract base class that, given a set of coordinates, will...">Function</a> class is an abstract base class that, given a set of coordinates, will compute a value and possibly a gradient and hessian at that point. 
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="9c6e520f3ed51e0c65140717d95e2512"></a><!-- doxytag: member="sc::Function::Function" ref="9c6e520f3ed51e0c65140717d95e2512" args="(const Ref&lt; KeyVal &gt; &amp;, double funcacc=DBL_EPSILON, double gradacc=DBL_EPSILON, double hessacc=DBL_EPSILON)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">sc::Function::Function           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>funcacc</em> = <code>DBL_EPSILON</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>gradacc</em> = <code>DBL_EPSILON</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>hessacc</em> = <code>DBL_EPSILON</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The keyval constructor reads the following keywords:. 
<p>
<dl>
<dt><code>matrixkit</code></dt>
<dd>Gives a <a class="el" href="classsc_1_1SCMatrixKit.html" title="The SCMatrixKit abstract class acts as a factory for producing matrices.">SCMatrixKit</a> object. If it is not specified, a default <a class="el" href="classsc_1_1SCMatrixKit.html" title="The SCMatrixKit abstract class acts as a factory for producing matrices.">SCMatrixKit</a> is selected.<p>
</dd>
<dt><code>value_accuracy</code></dt>
<dd>Sets the accuracy to which values are computed. The default is the machine accuracy.<p>
</dd>
<dt><code>gradient_accuracy</code></dt>
<dd>Sets the accuracy to which gradients are computed. The default is the machine accuracy.<p>
</dd>
<dt><code>hessian_accuracy</code></dt>
<dd>Sets the accuracy to which hessians are computed. The default is the machine accuracy.<p>
</dd>
</dl>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a97727905279ce992e25514f52766c37"></a><!-- doxytag: member="sc::Function::change_coordinates" ref="a97727905279ce992e25514f52766c37" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1NonlinearTransform.html">NonlinearTransform</a>&gt; sc::Function::change_coordinates           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system. 
<p>
A return value of 0 means the coordinates were not changed. Otherwise, a transform object to the new coordinate system is return. The function object applies the transform to any objects it contains. This will obsolete the function data. 
<p>Reimplemented in <a class="el" href="classsc_1_1MolecularEnergy.html#10f7fa4c6c89628ddbfca08a7aafbb5b">sc::MolecularEnergy</a>.</p>

</div>
</div><p>
<a class="anchor" name="aebdb9c0bf5645da91d00cb127afecc4"></a><!-- doxytag: member="sc::Function::do_change_coordinates" ref="aebdb9c0bf5645da91d00cb127afecc4" args="(const Ref&lt; NonlinearTransform &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc::Function::do_change_coordinates           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1NonlinearTransform.html">NonlinearTransform</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Change the coordinate system and apply the given transform to intermediates matrices and vectors. 
<p>

</div>
</div><p>
<a class="anchor" name="57ad99f54082575470644172a2022a5e"></a><!-- doxytag: member="sc::Function::do_value" ref="57ad99f54082575470644172a2022a5e" args="(int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int sc::Function::do_value           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If passed a nonzero number, compute the value the next time <a class="el" href="classsc_1_1Compute.html#33f07c9eb2bfeba367f24d537c28c462" title="Recompute at least the results that have compute true and are not already computed...">compute()</a> is called. 
<p>
Return a nonzero number if the value was previously to be computed. 
</div>
</div><p>
<a class="anchor" name="86be61bf9d28596b283e65bf101b174b"></a><!-- doxytag: member="sc::Function::matrixkit" ref="86be61bf9d28596b283e65bf101b174b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1SCMatrixKit.html">SCMatrixKit</a>&gt; sc::Function::matrixkit           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the <a class="el" href="classsc_1_1SCMatrixKit.html" title="The SCMatrixKit abstract class acts as a factory for producing matrices.">SCMatrixKit</a> used to construct vectors and matrices. 
<p>

</div>
</div><p>
<a class="anchor" name="5b48312329bddf00e7a44adb6c577dff"></a><!-- doxytag: member="sc::Function::save_data_state" ref="5b48312329bddf00e7a44adb6c577dff" args="(StateOut &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::Function::save_data_state           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1StateOut.html">StateOut</a> &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="classsc_1_1StateIn.html" title="Restores objects that derive from SavableState.">StateIn</a> CTOR initializes them. 
<p>
This must be implemented by the derived class if the class has data. 
<p>Reimplemented from <a class="el" href="classsc_1_1SavableState.html#f9e0c212322d3c0f43e2dcb33e111acf">sc::SavableState</a>.</p>

<p>Reimplemented in <a class="el" href="classsc_1_1MolecularEnergy.html#1ec669bc0334cafd4e6f462827df6f5e">sc::MolecularEnergy</a>, <a class="el" href="classsc_1_1CLKS.html#21169fdfeb5542a3de2f06b032cf98be">sc::CLKS</a>, <a class="el" href="classsc_1_1HSOSKS.html#67094f2afdf9dd47a3d345ecd9f20971">sc::HSOSKS</a>, <a class="el" href="classsc_1_1UKS.html#bc444eb2a0a436b8b976749a4d8cbbe1">sc::UKS</a>, <a class="el" href="classsc_1_1MBPT2.html#a90c796fcab0f817548d7ac9dbed5433">sc::MBPT2</a>, <a class="el" href="classsc_1_1MBPT2__R12.html#b350b5b7de7d76a366e6e67f02700786">sc::MBPT2_R12</a>, <a class="el" href="classsc_1_1PsiWavefunction.html#9e8da0f3984a021692b31c92e3973efc">sc::PsiWavefunction</a>, <a class="el" href="classsc_1_1PsiSCF.html#730e6943d35d29c96f0bc852f55e0c40">sc::PsiSCF</a>, <a class="el" href="classsc_1_1PsiCCSD.html#db8d5ef6b2b1ff092a6cfdb6ce3fe127">sc::PsiCCSD</a>, <a class="el" href="classsc_1_1PsiCCSD__T.html#ffa8549a4672a9039b43b0ab7854ae2c">sc::PsiCCSD_T</a>, <a class="el" href="classsc_1_1CLHF.html#026656bcfc805db12be4aab363e28ba3">sc::CLHF</a>, <a class="el" href="classsc_1_1CLSCF.html#3b61717415569b103548a6d68bb36086">sc::CLSCF</a>, <a class="el" href="classsc_1_1HSOSHF.html#93ad9532bd65a5f099e6018af63943f5">sc::HSOSHF</a>, <a class="el" href="classsc_1_1HSOSSCF.html#e8e0badd4f65c1bc1fc269f38afc2065">sc::HSOSSCF</a>, <a class="el" href="classsc_1_1SCF.html#6727cd4ce9c36a67f8a420c979721dec">sc::SCF</a>, <a class="el" href="classsc_1_1UHF.html#103b404f8ec88592d21b6219ea003d92">sc::UHF</a>, <a class="el" href="classsc_1_1UnrestrictedSCF.html#ea95a6a9cfe22d2e75a71365e5858e09">sc::UnrestrictedSCF</a>, <a class="el" href="classsc_1_1OneBodyWavefunction.html#62df766f9b46b80b8a3621a8b1a21af8">sc::OneBodyWavefunction</a>, and <a class="el" href="classsc_1_1Wavefunction.html#7acd34ddf2ab8eec66dfdbd6b190d5c2">sc::Wavefunction</a>.</p>

</div>
</div><p>
<a class="anchor" name="a76abecd574f7744cd6d93f1bd6b5506"></a><!-- doxytag: member="sc::Function::set_matrixkit" ref="a76abecd574f7744cd6d93f1bd6b5506" args="(const Ref&lt; SCMatrixKit &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::Function::set_matrixkit           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCMatrixKit.html">SCMatrixKit</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the <a class="el" href="classsc_1_1SCMatrixKit.html" title="The SCMatrixKit abstract class acts as a factory for producing matrices.">SCMatrixKit</a> that should be used to construct the requisite vectors and matrices. 
<p>

</div>
</div><p>
<a class="anchor" name="54f1ed14490ca8bc4658989d6a78c1dc"></a><!-- doxytag: member="sc::Function::value_implemented" ref="54f1ed14490ca8bc4658989d6a78c1dc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int sc::Function::value_implemented           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Information about the availability of values, gradients, and hessians. 
<p>

<p>Reimplemented in <a class="el" href="classsc_1_1CLKS.html#84414303fd5758f5df27b4ab40292d87">sc::CLKS</a>, <a class="el" href="classsc_1_1HSOSKS.html#db989131be6366c0e57a4e1372907bbb">sc::HSOSKS</a>, <a class="el" href="classsc_1_1UKS.html#dbc1d2a550e6e1649941c14ecfbbe212">sc::UKS</a>, <a class="el" href="classsc_1_1MBPT2.html#bf4e44303ba0d135159ce7c418ebe70f">sc::MBPT2</a>, <a class="el" href="classsc_1_1MBPT2__R12.html#b303841e3468eb10fa875494173e6908">sc::MBPT2_R12</a>, <a class="el" href="classsc_1_1CLHF.html#b4cac1cfe9b5f13197100d99c8bf6c2e">sc::CLHF</a>, <a class="el" href="classsc_1_1HSOSHF.html#41e05e4405958c853dab399d5bd838ee">sc::HSOSHF</a>, <a class="el" href="classsc_1_1UHF.html#c8be0f88e0cd4b4220e3f9dda2efc0e7">sc::UHF</a>, and <a class="el" href="classsc_1_1Shape.html#f100ff00459dad5b7a549671ee7aab5f">sc::Shape</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="function_8h_source.html">function.h</a></ul>
</div>
<hr>
<address>
<small>

Generated at Wed Oct 14 14:12:15 2009 for <a
href="http://www.mpqc.org">MPQC</a>
2.3.1 using the documentation package <a
href="http://www.doxygen.org">Doxygen</a>
1.5.9.

</small>
</address>
</body>
</html>