<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>sc::Function class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.2.5 on Mon Oct 14 14:16:55 2002 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>sc::Function Class Reference</h1>The <a class="el" href="class_sc__Function.html">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 <<a class="el" href="function_h-source.html">function.h</a>></code> <p> Inheritance diagram for sc::Function<p><center><img src="class_sc__Function_inherit_graph.gif" border="0" usemap="#sc::Function_inherit_map" alt="Inheritance graph"></center> <map name="sc::Function_inherit_map"> <area href="class_sc__MolecularEnergy.html" shape="rect" coords="283,214,409,233"> <area href="class_sc__Volume.html" shape="rect" coords="582,214,657,233"> <area href="class_sc__SavableState.html" shape="rect" coords="385,81,486,99"> <area href="class_sc__DescribedClass.html" shape="rect" coords="378,14,493,33"> <area href="class_sc__Compute.html" shape="rect" coords="510,81,590,99"> <area href="class_sc__Wavefunction.html" shape="rect" coords="371,281,478,299"> <area href="class_sc__Shape.html" shape="rect" coords="737,281,801,299"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for sc::Function:<p><center><img src="class_sc__Function_coll_graph.gif" border="0" usemap="#sc::Function_coll_map" alt="Collaboration graph"></center> <map name="sc::Function_coll_map"> <area href="class_sc__SavableState.html" shape="rect" coords="37,347,138,366"> <area href="class_sc__DescribedClass.html" shape="rect" coords="14,262,129,280"> <area href="class_sc__RefCount.html" shape="rect" coords="21,179,103,198"> <area href="class_sc__Identity.html" shape="rect" coords="26,96,98,115"> <area href="class_sc__Compute.html" shape="rect" coords="205,347,285,366"> <area href="class_sc__Ref.html" shape="rect" coords="311,304,453,323"> <area href="class_sc__RefBase.html" shape="rect" coords="443,179,521,198"> <area href="class_sc__Ref.html" shape="rect" coords="419,262,545,280"> <area href="class_sc__Ref.html" shape="rect" coords="569,262,715,280"> <area href="class_sc__RefSCVector.html" shape="rect" coords="438,347,542,366"> <area href="class_sc__RefSCDimension.html" shape="rect" coords="573,347,698,366"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_sc__Function-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="a0" doxytag="sc::Function::Function"></a> </td><td valign=bottom><b>Function</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a1" doxytag="sc::Function::Function"></a> </td><td valign=bottom><b>Function</b> (<a class="el" href="class_sc__StateIn.html">StateIn</a> &)</td></tr> <tr><td nowrap align=right valign=top><a name="a2" doxytag="sc::Function::Function"></a> </td><td valign=bottom><b>Function</b> (const Function &)</td></tr> <tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="class_sc__Function.html#a3">Function</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__KeyVal.html">KeyVal</a> > &, double funcacc=DBL_EPSILON, double gradacc=DBL_EPSILON, double hessacc=DBL_EPSILON)</td></tr> <tr><td> </td><td><font size=-1><em>The keyval constructor reads the following keywords:.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a4" doxytag="sc::Function::~Function"></a> virtual </td><td valign=bottom><b>~Function</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a5" doxytag="sc::Function::operator="></a> Function& </td><td valign=bottom><b>operator=</b> (const Function &)</td></tr> <tr><td nowrap align=right valign=top><a name="a6" doxytag="sc::Function::matrixkit"></a> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__SCMatrixKit.html">SCMatrixKit</a>> </td><td valign=bottom><a class="el" href="class_sc__Function.html#a6">matrixkit</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Return the <a class="el" href="class_sc__SCMatrixKit.html">SCMatrixKit</a> used to construct vectors and matrices.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a7" doxytag="sc::Function::dimension"></a> <a class="el" href="class_sc__RefSCDimension.html">RefSCDimension</a> </td><td valign=bottom><a class="el" href="class_sc__Function.html#a7">dimension</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Return the <a class="el" href="class_sc__SCDimension.html">SCDimension</a> of the problem.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__Function.html#a8">save_data_state</a> (<a class="el" href="class_sc__StateOut.html">StateOut</a> &)</td></tr> <tr><td> </td><td><font size=-1><em>Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="class_sc__StateIn.html">StateIn</a> CTOR initializes them.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a9" doxytag="sc::Function::value"></a> virtual double </td><td valign=bottom><a class="el" href="class_sc__Function.html#a9">value</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Return the value of the function.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a10" doxytag="sc::Function::value_needed"></a> int </td><td valign=bottom><a class="el" href="class_sc__Function.html#a10">value_needed</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Returns nonzero if the current value is not up-to-date.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="class_sc__Function.html#a11">do_value</a> (int)</td></tr> <tr><td> </td><td><font size=-1><em>If passed a nonzero number, compute the value the next time <a class="el" href="class_sc__Compute.html#b0">compute</a>() is called.</em> <a href="#a11">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a12" doxytag="sc::Function::value_result"></a> AccResultdouble& </td><td valign=bottom><b>value_result</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a13" doxytag="sc::Function::set_desired_value_accuracy"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__Function.html#a13">set_desired_value_accuracy</a> (double)</td></tr> <tr><td> </td><td><font size=-1><em>Set the accuracy to which the value is to be computed.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a14" doxytag="sc::Function::actual_value_accuracy"></a> virtual double </td><td valign=bottom><a class="el" href="class_sc__Function.html#a14">actual_value_accuracy</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Return the accuracy with which the value has been computed.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a15" doxytag="sc::Function::desired_value_accuracy"></a> virtual double </td><td valign=bottom><a class="el" href="class_sc__Function.html#a15">desired_value_accuracy</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Return the accuracy with which the value is to be computed.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a30" doxytag="sc::Function::guess_hessian"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__Function.html#a30">guess_hessian</a> (<a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &)</td></tr> <tr><td> </td><td><font size=-1><em><a class="el" href="class_sc__Compute.html">Compute</a> a quick, approximate hessian.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a31" doxytag="sc::Function::inverse_hessian"></a> virtual <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> </td><td valign=bottom><b>inverse_hessian</b> (<a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &)</td></tr> <tr><td nowrap align=right valign=top><a name="a32" doxytag="sc::Function::value_implemented"></a> virtual int </td><td valign=bottom><a class="el" href="class_sc__Function.html#a32">value_implemented</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>Information about the availability of values, gradients, and hessians.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a33" doxytag="sc::Function::gradient_implemented"></a> virtual int </td><td valign=bottom><b>gradient_implemented</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a34" doxytag="sc::Function::hessian_implemented"></a> virtual int </td><td valign=bottom><b>hessian_implemented</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a35" doxytag="sc::Function::set_x"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__Function.html#a35">set_x</a> (const <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> &)</td></tr> <tr><td> </td><td><font size=-1><em>Set and retrieve the coordinate values.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a36" doxytag="sc::Function::get_x"></a> <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> </td><td valign=bottom><b>get_x</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a37" doxytag="sc::Function::get_x_no_copy"></a> const <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a>& </td><td valign=bottom><b>get_x_no_copy</b> () const</td></tr> <tr><td nowrap align=right valign=top>virtual <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__NonlinearTransform.html">NonlinearTransform</a>> </td><td valign=bottom><a class="el" href="class_sc__Function.html#a38">change_coordinates</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system.</em> <a href="#a38">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a39" doxytag="sc::Function::print"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__Function.html#a39">print</a> (std::ostream &=ExEnv::out0()) const</td></tr> <tr><td> </td><td><font size=-1><em>Print information about the object.</em></font><br><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 nowrap align=right valign=top><a name="a16" doxytag="sc::Function::gradient"></a> virtual <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> </td><td valign=bottom><b>gradient</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a17" doxytag="sc::Function::gradient_needed"></a> int </td><td valign=bottom><b>gradient_needed</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a18" doxytag="sc::Function::do_gradient"></a> int </td><td valign=bottom><b>do_gradient</b> (int)</td></tr> <tr><td nowrap align=right valign=top><a name="a19" doxytag="sc::Function::set_desired_gradient_accuracy"></a> virtual void </td><td valign=bottom><b>set_desired_gradient_accuracy</b> (double)</td></tr> <tr><td nowrap align=right valign=top><a name="a20" doxytag="sc::Function::actual_gradient_accuracy"></a> virtual double </td><td valign=bottom><b>actual_gradient_accuracy</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a21" doxytag="sc::Function::desired_gradient_accuracy"></a> virtual double </td><td valign=bottom><b>desired_gradient_accuracy</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a22" doxytag="sc::Function::gradient_result"></a> AccResultRefSCVector& </td><td 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 nowrap align=right valign=top><a name="a23" doxytag="sc::Function::hessian"></a> virtual <a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> </td><td valign=bottom><b>hessian</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a24" doxytag="sc::Function::hessian_needed"></a> int </td><td valign=bottom><b>hessian_needed</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a25" doxytag="sc::Function::do_hessian"></a> int </td><td valign=bottom><b>do_hessian</b> (int)</td></tr> <tr><td nowrap align=right valign=top><a name="a26" doxytag="sc::Function::set_desired_hessian_accuracy"></a> virtual void </td><td valign=bottom><b>set_desired_hessian_accuracy</b> (double)</td></tr> <tr><td nowrap align=right valign=top><a name="a27" doxytag="sc::Function::actual_hessian_accuracy"></a> virtual double </td><td valign=bottom><b>actual_hessian_accuracy</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a28" doxytag="sc::Function::desired_hessian_accuracy"></a> virtual double </td><td valign=bottom><b>desired_hessian_accuracy</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a29" doxytag="sc::Function::hessian_result"></a> AccResultRefSymmSCMatrix& </td><td valign=bottom><b>hessian_result</b> ()</td></tr> <tr><td colspan=2><br><h2>Protected Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="b3" doxytag="sc::Function::set_matrixkit"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__Function.html#b3">set_matrixkit</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__SCMatrixKit.html">SCMatrixKit</a> > &)</td></tr> <tr><td> </td><td><font size=-1><em>Set the <a class="el" href="class_sc__SCMatrixKit.html">SCMatrixKit</a> that should be used to construct the requisite vectors and matrices.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="b4" doxytag="sc::Function::set_dimension"></a> virtual void </td><td valign=bottom><b>set_dimension</b> (const <a class="el" href="class_sc__RefSCDimension.html">RefSCDimension</a> &)</td></tr> <tr><td nowrap align=right valign=top><a name="b8" doxytag="sc::Function::get_x_reference"></a> <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a>& </td><td valign=bottom><a class="el" href="class_sc__Function.html#b8">get_x_reference</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Get read/write access to the coordinates for modification.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="b9" doxytag="sc::Function::do_change_coordinates"></a> void </td><td valign=bottom><a class="el" href="class_sc__Function.html#b9">do_change_coordinates</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__NonlinearTransform.html">NonlinearTransform</a> > &)</td></tr> <tr><td> </td><td><font size=-1><em>Change the coordinate system and apply the given transform to intermediates matrices and vectors.</em></font><br><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 nowrap align=right valign=top><a name="b0" doxytag="sc::Function::set_value"></a> virtual void </td><td valign=bottom><b>set_value</b> (double)</td></tr> <tr><td nowrap align=right valign=top><a name="b1" doxytag="sc::Function::set_gradient"></a> virtual void </td><td valign=bottom><b>set_gradient</b> (<a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> &)</td></tr> <tr><td nowrap align=right valign=top><a name="b2" doxytag="sc::Function::set_hessian"></a> virtual void </td><td valign=bottom><b>set_hessian</b> (<a class="el" href="class_sc__RefSymmSCMatrix.html">RefSymmSCMatrix</a> &)</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 nowrap align=right valign=top><a name="b5" doxytag="sc::Function::set_actual_value_accuracy"></a> virtual void </td><td valign=bottom><b>set_actual_value_accuracy</b> (double)</td></tr> <tr><td nowrap align=right valign=top><a name="b6" doxytag="sc::Function::set_actual_gradient_accuracy"></a> virtual void </td><td valign=bottom><b>set_actual_gradient_accuracy</b> (double)</td></tr> <tr><td nowrap align=right valign=top><a name="b7" doxytag="sc::Function::set_actual_hessian_accuracy"></a> virtual void </td><td valign=bottom><b>set_actual_hessian_accuracy</b> (double)</td></tr> <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> <tr><td nowrap align=right valign=top><a name="n0" doxytag="sc::Function::matrixkit_"></a> <a class="el" href="class_sc__Ref.html">Ref</a><<a class="el" href="class_sc__SCMatrixKit.html">SCMatrixKit</a>> </td><td valign=bottom><a class="el" href="class_sc__Function.html#n0">matrixkit_</a></td></tr> <tr><td> </td><td><font size=-1><em>Used to construct new matrices.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="n1" doxytag="sc::Function::x_"></a> <a class="el" href="class_sc__RefSCVector.html">RefSCVector</a> </td><td valign=bottom><a class="el" href="class_sc__Function.html#n1">x_</a></td></tr> <tr><td> </td><td><font size=-1><em>The variables.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="n2" doxytag="sc::Function::dim_"></a> <a class="el" href="class_sc__RefSCDimension.html">RefSCDimension</a> </td><td valign=bottom><a class="el" href="class_sc__Function.html#n2">dim_</a></td></tr> <tr><td> </td><td><font size=-1><em>The dimension of x_.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="n3" doxytag="sc::Function::value_"></a> AccResultdouble </td><td valign=bottom><a class="el" href="class_sc__Function.html#n3">value_</a></td></tr> <tr><td> </td><td><font size=-1><em>The value of the function at x_.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="n4" doxytag="sc::Function::gradient_"></a> AccResultRefSCVector </td><td valign=bottom><a class="el" href="class_sc__Function.html#n4">gradient_</a></td></tr> <tr><td> </td><td><font size=-1><em>The gradient at x_.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="n5" doxytag="sc::Function::hessian_"></a> AccResultRefSymmSCMatrix </td><td valign=bottom><a class="el" href="class_sc__Function.html#n5">hessian_</a></td></tr> <tr><td> </td><td><font size=-1><em>The hessian at x_.</em></font><br><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> The <a class="el" href="class_sc__Function.html">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 & Destructor Documentation</h2> <a name="a3" doxytag="sc::Function::Function"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> sc::Function::Function ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__KeyVal.html">KeyVal</a> > &, </b></td> </tr> <tr> <td></td> <td><b> double <em>funcacc</em> = DBL_EPSILON, </b></td> </tr> <tr> <td></td> <td><b> double <em>gradacc</em> = DBL_EPSILON, </b></td> </tr> <tr> <td></td> <td><b> double <em>hessacc</em> = DBL_EPSILON ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> The keyval constructor reads the following keywords:. <p> <dl compact> <p> <dt><code>matrixkit</code><dd> Gives a <a class="el" href="class_sc__SCMatrixKit.html">SCMatrixKit</a> object. If it is not specified, a default <a class="el" href="class_sc__SCMatrixKit.html">SCMatrixKit</a> is selected. <p> <dt><code>value_accuracy</code><dd> Sets the accuracy to which values are computed. The default is the machine accuracy. <p> <dt><code>gradient_accuracy</code><dd> Sets the accuracy to which gradients are computed. The default is the machine accuracy. <p> <dt><code>hessian_accuracy</code><dd> Sets the accuracy to which hessians are computed. The default is the machine accuracy. <p> </dl> </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a name="a38" doxytag="sc::Function::change_coordinates"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__NonlinearTransform.html">NonlinearTransform</a> > sc::Function::change_coordinates ( </b></td> <td valign="bottom"><b> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <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="class_sc__MolecularEnergy.html#a19">sc::MolecularEnergy</a>. </td> </tr> </table> <a name="a11" doxytag="sc::Function::do_value"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> int sc::Function::do_value ( </b></td> <td valign="bottom"><b> int ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> If passed a nonzero number, compute the value the next time <a class="el" href="class_sc__Compute.html#b0">compute</a>() is called. <p> Return a nonzero number if the value was previously to be computed. </td> </tr> </table> <a name="a8" doxytag="sc::Function::save_data_state"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> virtual void sc::Function::save_data_state ( </b></td> <td valign="bottom"><b> <a class="el" href="class_sc__StateOut.html">StateOut</a> & <em>s</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Save the base classes (with save_data_state) and the members in the same order that the <a class="el" href="class_sc__StateIn.html">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="class_sc__SavableState.html#a5">sc::SavableState</a>. <p> Reimplemented in <a class="el" href="class_sc__MolecularEnergy.html#a4">sc::MolecularEnergy</a>, <a class="el" href="class_sc__MBPT2.html#a3">sc::MBPT2</a>, <a class="el" href="class_sc__PsiWavefunction.html#a3">sc::PsiWavefunction</a>, <a class="el" href="class_sc__PsiSCF.html#a3">sc::PsiSCF</a>, <a class="el" href="class_sc__PsiCCSD.html#a3">sc::PsiCCSD</a>, <a class="el" href="class_sc__PsiCCSD_T.html#a3">sc::PsiCCSD_T</a>, <a class="el" href="class_sc__CLHF.html#a3">sc::CLHF</a>, <a class="el" href="class_sc__CLSCF.html#a3">sc::CLSCF</a>, <a class="el" href="class_sc__HSOSHF.html#a3">sc::HSOSHF</a>, <a class="el" href="class_sc__HSOSSCF.html#a3">sc::HSOSSCF</a>, <a class="el" href="class_sc__SCF.html#a3">sc::SCF</a>, <a class="el" href="class_sc__UnrestrictedSCF.html#a3">sc::UnrestrictedSCF</a>, <a class="el" href="class_sc__OneBodyWavefunction.html#a3">sc::OneBodyWavefunction</a>, and <a class="el" href="class_sc__Wavefunction.html#a3">sc::Wavefunction</a>. </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="function_h-source.html">function.h</a></ul> <hr> <address> <small> Generated at Mon Oct 14 14:16:55 2002 for <a href="http://aros.ca.sandia.gov/~cljanss/mpqc">MPQC</a> 2.1.2 using the documentation package <a href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a> 1.2.5. </small> </address> </body> </html>