<!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>ITK: itk::MultipleValuedVnlCostFunctionAdaptor Class Reference</title> <link href="DoxygenStyle.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 --> <center> <a href="index.html" class="qindex">Main Page</a> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <a href="pages.html" class="qindex">Concepts</a></center> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="namespaceitk.html">itk</a>::<a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html">MultipleValuedVnlCostFunctionAdaptor</a> </div> <div class="contents"> <h1>itk::MultipleValuedVnlCostFunctionAdaptor Class Reference<br> <small> [<a class="el" href="group__Numerics.html">Numerics</a>, <a class="el" href="group__Optimizers.html">Optimizers</a>]</small> </h1><!-- doxytag: class="itk::MultipleValuedVnlCostFunctionAdaptor" -->This class is an Adaptor that allows to pass itk::MultipleValuedCostFunctions to vnl_optimizers expecting a vnl_cost_function. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>></code> <p> <div class="dynheader"> Collaboration diagram for itk::MultipleValuedVnlCostFunctionAdaptor:</div> <div class="dynsection"> <p><center><img src="classitk_1_1MultipleValuedVnlCostFunctionAdaptor__coll__graph.png" border="0" usemap="#itk_1_1MultipleValuedVnlCostFunctionAdaptor__coll__map" alt="Collaboration graph"></center> <map name="itk_1_1MultipleValuedVnlCostFunctionAdaptor__coll__map"> <area shape="rect" id="node2" href="classitk_1_1Array.html" title="itk::Array\< double \>" alt="" coords="655,31,812,60"><area shape="rect" id="node4" href="classvnl__vector.html" title="vnl_vector\< double  \>" alt="" coords="299,5,464,35"><area shape="rect" id="node6" href="classitk_1_1Array.html" title="Array class with size defined at construction time." alt="" coords="288,60,475,89"><area shape="rect" id="node8" href="classvnl__vector.html" title="vnl_vector\< TValueType \>" alt="" coords="5,60,203,89"><area shape="rect" id="node11" href="classitk_1_1Array2D.html" title="itk::Array2D\< double \>" alt="" coords="645,149,821,179"><area shape="rect" id="node13" href="classvnl__matrix.html" title="vnl_matrix\< double  \>" alt="" coords="299,117,464,147"><area shape="rect" id="node15" href="classitk_1_1Array2D.html" title="Array2D class representing a 2D array with size defined at construction time." alt="" coords="277,171,485,200"><area shape="rect" id="node17" href="classvnl__matrix.html" title="vnl_matrix\< TValueType \>" alt="" coords="7,171,201,200"><area shape="rect" id="node19" href="classitk_1_1SmartPointer.html" title="itk::SmartPointer\< Self \>" alt="" coords="637,213,829,243"><area shape="rect" id="node21" href="classitk_1_1SmartPointer.html" title="Implements transparent reference counting." alt="" coords="255,224,508,253"></map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div> <p> <a href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor-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 Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <br class="typebreak"> <a class="el" href="classitk_1_1Array2D.html">MultipleValuedCostFunction::DerivativeType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#63d34afc708b1e52a080f829878c60c1">DerivativeType</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classvnl__matrix.html">vnl_matrix</a>< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#8e6dab8ee0cf5341972fe14ba27be2b3">InternalDerivativeType</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classvnl__vector.html">vnl_vector</a>< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#e0826480e88f5203821a1142d587c3c0">InternalMeasureType</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classvnl__vector.html">vnl_vector</a>< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#166152cdace9b35322b1466a07b5240a">InternalParametersType</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <br class="typebreak"> <a class="el" href="classitk_1_1Array.html">MultipleValuedCostFunction::MeasureType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#8519ca92714a6b5fdbab503f3af13133">MeasureType</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <br class="typebreak"> <a class="el" href="classitk_1_1Array.html">MultipleValuedCostFunction::ParametersType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#ea638801aafe9331e41109f1b9c4902d">ParametersType</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classitk_1_1Array.html">Array</a>< double > </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#e4c8c866c2fc2d41d0fd3844c593567b">ScalesType</a></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#c2e84dd80d3d1aef58ffea0b4510578b">AddObserver</a> (const <a class="el" href="classitk_1_1EventObject.html">EventObject</a> &event, <a class="el" href="classitk_1_1Command.html">Command</a> *) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#f12e10d9f6043b85f793da4ab86f2509">compute</a> (const <a class="el" href="classvnl__vector.html">InternalParametersType</a> &x, <a class="el" href="classvnl__vector.html">InternalMeasureType</a> *f, <a class="el" href="classvnl__matrix.html">InternalDerivativeType</a> *g)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#a83355afcc75e676571212bed97dcc0f">ConvertExternalToInternalGradient</a> (const <a class="el" href="classitk_1_1Array2D.html">DerivativeType</a> &input, <a class="el" href="classvnl__matrix.html">InternalDerivativeType</a> &output)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#245f889963d471ddf2cf76d26025f314">ConvertExternalToInternalMeasures</a> (const <a class="el" href="classitk_1_1Array.html">MeasureType</a> &input, <a class="el" href="classvnl__vector.html">InternalMeasureType</a> &output)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#91bb49274f2944f426387e9a94b0f3bc">f</a> (const <a class="el" href="classvnl__vector.html">InternalParametersType</a> &inparameters, <a class="el" href="classvnl__vector.html">InternalMeasureType</a> &measures)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classitk_1_1MultipleValuedCostFunction.html">MultipleValuedCostFunction</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#8e480c1f2ba88aee471d8b1608e07ac0">GetCostFunction</a> (void) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#ea747fe2bc0e8bb9e493ac7bc94b79df">gradf</a> (const <a class="el" href="classvnl__vector.html">InternalParametersType</a> &inparameters, <a class="el" href="classvnl__matrix.html">InternalDerivativeType</a> &gradient)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#9146768f29bcd9b1e70acad95d920772">MultipleValuedVnlCostFunctionAdaptor</a> (unsigned int spaceDimension, unsigned int numberOfValues)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#c4ee7792f3661c094054cb581817d6b2">SetCostFunction</a> (<a class="el" href="classitk_1_1MultipleValuedCostFunction.html">MultipleValuedCostFunction</a> *costFunction)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#a4fa4edc202f957df57b7192adb55435">SetScales</a> (const <a class="el" href="classitk_1_1Array.html">ScalesType</a> &scales)</td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classitk_1_1Array.html">ParametersType</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#df05fa004e8ef03778f0a0eeba7585f6">GetCachedCurrentParameters</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classitk_1_1Array2D.html">DerivativeType</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#800cdbff872f660b8a7849aaf7e730e9">GetCachedDerivative</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classitk_1_1Array.html">MeasureType</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#8554456212ba9d3c87f5460b88f0224b">GetCachedValue</a> () const </td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#d47863d25c423f505612a1c8e24e15bd">GetUseGradient</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#e9e28de5916a591294f594eb0b4716cc">SetUseGradient</a> (bool)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#be716f7c6dff5096c0802ce3954ccfc5">UseGradientOff</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#5f8813f5dc1bf45a2a4f82d50616c54c">UseGradientOn</a> ()</td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#fe221023d96834393ea6e5e23cd5173a">ReportIteration</a> (const <a class="el" href="classitk_1_1EventObject.html">EventObject</a> &event) const </td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> This class is an Adaptor that allows to pass itk::MultipleValuedCostFunctions to vnl_optimizers expecting a vnl_cost_function. <p> This class returns a single valued. <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00036">36</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> <hr><h2>Member Typedef Documentation</h2> <a class="anchor" name="63d34afc708b1e52a080f829878c60c1"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::DerivativeType" ref="63d34afc708b1e52a080f829878c60c1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classitk_1_1Array2D.html">MultipleValuedCostFunction::DerivativeType</a> <a class="el" href="classitk_1_1Array2D.html">itk::MultipleValuedVnlCostFunctionAdaptor::DerivativeType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Derivatives of the <a class="el" href="classitk_1_1MultipleValuedCostFunction.html" title="This class is a base for the CostFunctions returning a multiple values.">MultipleValuedCostFunction</a> <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00057">57</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <a class="anchor" name="8e6dab8ee0cf5341972fe14ba27be2b3"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::InternalDerivativeType" ref="8e6dab8ee0cf5341972fe14ba27be2b3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classvnl__matrix.html">vnl_matrix</a><double> <a class="el" href="classvnl__matrix.html">itk::MultipleValuedVnlCostFunctionAdaptor::InternalDerivativeType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> InternalGradientType typedef. <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00048">48</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <a class="anchor" name="e0826480e88f5203821a1142d587c3c0"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::InternalMeasureType" ref="e0826480e88f5203821a1142d587c3c0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classvnl__vector.html">vnl_vector</a><double> <a class="el" href="classvnl__vector.html">itk::MultipleValuedVnlCostFunctionAdaptor::InternalMeasureType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> InternalMeasureType typedef. <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00045">45</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <a class="anchor" name="166152cdace9b35322b1466a07b5240a"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::InternalParametersType" ref="166152cdace9b35322b1466a07b5240a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classvnl__vector.html">vnl_vector</a><double> <a class="el" href="classvnl__vector.html">itk::MultipleValuedVnlCostFunctionAdaptor::InternalParametersType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> InternalParametersType typedef. <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00042">42</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <a class="anchor" name="8519ca92714a6b5fdbab503f3af13133"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::MeasureType" ref="8519ca92714a6b5fdbab503f3af13133" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classitk_1_1Array.html">MultipleValuedCostFunction::MeasureType</a> <a class="el" href="classitk_1_1Array.html">itk::MultipleValuedVnlCostFunctionAdaptor::MeasureType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> MeasureType of the <a class="el" href="classitk_1_1MultipleValuedCostFunction.html" title="This class is a base for the CostFunctions returning a multiple values.">MultipleValuedCostFunction</a> <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00051">51</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <a class="anchor" name="ea638801aafe9331e41109f1b9c4902d"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::ParametersType" ref="ea638801aafe9331e41109f1b9c4902d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classitk_1_1Array.html">MultipleValuedCostFunction::ParametersType</a> <a class="el" href="classitk_1_1Array.html">itk::MultipleValuedVnlCostFunctionAdaptor::ParametersType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Parameters of the <a class="el" href="classitk_1_1MultipleValuedCostFunction.html" title="This class is a base for the CostFunctions returning a multiple values.">MultipleValuedCostFunction</a> <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00054">54</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <a class="anchor" name="e4c8c866c2fc2d41d0fd3844c593567b"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::ScalesType" ref="e4c8c866c2fc2d41d0fd3844c593567b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classitk_1_1Array.html">Array</a><double> <a class="el" href="classitk_1_1Array.html">itk::MultipleValuedVnlCostFunctionAdaptor::ScalesType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Scales typedef <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00060">60</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="9146768f29bcd9b1e70acad95d920772"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::MultipleValuedVnlCostFunctionAdaptor" ref="9146768f29bcd9b1e70acad95d920772" args="(unsigned int spaceDimension, unsigned int numberOfValues)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">itk::MultipleValuedVnlCostFunctionAdaptor::MultipleValuedVnlCostFunctionAdaptor </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>spaceDimension</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>numberOfValues</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor with size </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="c2e84dd80d3d1aef58ffea0b4510578b"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::AddObserver" ref="c2e84dd80d3d1aef58ffea0b4510578b" args="(const EventObject &event, Command *) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned long itk::MultipleValuedVnlCostFunctionAdaptor::AddObserver </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1EventObject.html">EventObject</a> & </td> <td class="paramname"> <em>event</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classitk_1_1Command.html">Command</a> * </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> const</td> </tr> </table> </div> <div class="memdoc"> <p> This AddObserver method allows to simulate that this class derives from an itkObject for the purpose of reporting iteration events. The goal of this method is to allow ITK-vnl optimizer adaptors to get iteration events despite the fact that VNL does not provide callbacks. </div> </div><p> <a class="anchor" name="f12e10d9f6043b85f793da4ab86f2509"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::compute" ref="f12e10d9f6043b85f793da4ab86f2509" args="(const InternalParametersType &x, InternalMeasureType *f, InternalDerivativeType *g)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void itk::MultipleValuedVnlCostFunctionAdaptor::compute </td> <td>(</td> <td class="paramtype">const <a class="el" href="classvnl__vector.html">InternalParametersType</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classvnl__vector.html">InternalMeasureType</a> * </td> <td class="paramname"> <em>f</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classvnl__matrix.html">InternalDerivativeType</a> * </td> <td class="paramname"> <em>g</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Delegate computation of value and gradient to the costFunction. </div> </div><p> <a class="anchor" name="a83355afcc75e676571212bed97dcc0f"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::ConvertExternalToInternalGradient" ref="a83355afcc75e676571212bed97dcc0f" args="(const DerivativeType &input, InternalDerivativeType &output)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void itk::MultipleValuedVnlCostFunctionAdaptor::ConvertExternalToInternalGradient </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1Array2D.html">DerivativeType</a> & </td> <td class="paramname"> <em>input</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classvnl__matrix.html">InternalDerivativeType</a> & </td> <td class="paramname"> <em>output</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Convert external derviative measures into internal type </div> </div><p> <a class="anchor" name="245f889963d471ddf2cf76d26025f314"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::ConvertExternalToInternalMeasures" ref="245f889963d471ddf2cf76d26025f314" args="(const MeasureType &input, InternalMeasureType &output)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void itk::MultipleValuedVnlCostFunctionAdaptor::ConvertExternalToInternalMeasures </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1Array.html">MeasureType</a> & </td> <td class="paramname"> <em>input</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classvnl__vector.html">InternalMeasureType</a> & </td> <td class="paramname"> <em>output</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Convert external measures into internal type </div> </div><p> <a class="anchor" name="91bb49274f2944f426387e9a94b0f3bc"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::f" ref="91bb49274f2944f426387e9a94b0f3bc" args="(const InternalParametersType &inparameters, InternalMeasureType &measures)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void itk::MultipleValuedVnlCostFunctionAdaptor::f </td> <td>(</td> <td class="paramtype">const <a class="el" href="classvnl__vector.html">InternalParametersType</a> & </td> <td class="paramname"> <em>inparameters</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classvnl__vector.html">InternalMeasureType</a> & </td> <td class="paramname"> <em>measures</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Delegate computation of the value to the <a class="el" href="classitk_1_1CostFunction.html" title="Base class for cost functions intended to be used with Optimizers.">CostFunction</a>. </div> </div><p> <a class="anchor" name="df05fa004e8ef03778f0a0eeba7585f6"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::GetCachedCurrentParameters" ref="df05fa004e8ef03778f0a0eeba7585f6" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classitk_1_1Array.html">ParametersType</a>& itk::MultipleValuedVnlCostFunctionAdaptor::GetCachedCurrentParameters </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Return the value of the last evaluation to the value of the cost function. Note that this method DOES NOT triggers a computation of the function or the derivatives, it only returns previous values. Therefore the values here are only valid after you invoke the <a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#91bb49274f2944f426387e9a94b0f3bc">f()</a> or <a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#ea747fe2bc0e8bb9e493ac7bc94b79df">gradf()</a> methods. </div> </div><p> <a class="anchor" name="800cdbff872f660b8a7849aaf7e730e9"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::GetCachedDerivative" ref="800cdbff872f660b8a7849aaf7e730e9" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classitk_1_1Array2D.html">DerivativeType</a>& itk::MultipleValuedVnlCostFunctionAdaptor::GetCachedDerivative </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Return the value of the last evaluation to the value of the cost function. Note that this method DOES NOT triggers a computation of the function or the derivatives, it only returns previous values. Therefore the values here are only valid after you invoke the <a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#91bb49274f2944f426387e9a94b0f3bc">f()</a> or <a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#ea747fe2bc0e8bb9e493ac7bc94b79df">gradf()</a> methods. </div> </div><p> <a class="anchor" name="8554456212ba9d3c87f5460b88f0224b"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::GetCachedValue" ref="8554456212ba9d3c87f5460b88f0224b" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classitk_1_1Array.html">MeasureType</a>& itk::MultipleValuedVnlCostFunctionAdaptor::GetCachedValue </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Return the value of the last evaluation to the value of the cost function. Note that this method DOES NOT triggers a computation of the function or the derivatives, it only returns previous values. Therefore the values here are only valid after you invoke the <a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#91bb49274f2944f426387e9a94b0f3bc">f()</a> or <a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#ea747fe2bc0e8bb9e493ac7bc94b79df">gradf()</a> methods. </div> </div><p> <a class="anchor" name="8e480c1f2ba88aee471d8b1608e07ac0"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::GetCostFunction" ref="8e480c1f2ba88aee471d8b1608e07ac0" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classitk_1_1MultipleValuedCostFunction.html">MultipleValuedCostFunction</a>* itk::MultipleValuedVnlCostFunctionAdaptor::GetCostFunction </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the <a class="el" href="classitk_1_1CostFunction.html" title="Base class for cost functions intended to be used with Optimizers.">CostFunction</a> deriving from <a class="el" href="classitk_1_1MultipleValuedCostFunction.html" title="This class is a base for the CostFunctions returning a multiple values.">MultipleValuedCostFunction</a> <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00071">71</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <a class="anchor" name="d47863d25c423f505612a1c8e24e15bd"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::GetUseGradient" ref="d47863d25c423f505612a1c8e24e15bd" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool itk::MultipleValuedVnlCostFunctionAdaptor::GetUseGradient </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Define if the Cost function should provide a customized Gradient computation or the gradient can be computed internally using a default approach </div> </div><p> <a class="anchor" name="ea747fe2bc0e8bb9e493ac7bc94b79df"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::gradf" ref="ea747fe2bc0e8bb9e493ac7bc94b79df" args="(const InternalParametersType &inparameters, InternalDerivativeType &gradient)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void itk::MultipleValuedVnlCostFunctionAdaptor::gradf </td> <td>(</td> <td class="paramtype">const <a class="el" href="classvnl__vector.html">InternalParametersType</a> & </td> <td class="paramname"> <em>inparameters</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classvnl__matrix.html">InternalDerivativeType</a> & </td> <td class="paramname"> <em>gradient</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Delegate computation of the gradient to the costFunction. </div> </div><p> <a class="anchor" name="fe221023d96834393ea6e5e23cd5173a"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::ReportIteration" ref="fe221023d96834393ea6e5e23cd5173a" args="(const EventObject &event) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void itk::MultipleValuedVnlCostFunctionAdaptor::ReportIteration </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1EventObject.html">EventObject</a> & </td> <td class="paramname"> <em>event</em> </td> <td> ) </td> <td> const<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> This method is intended to be called by the derived classes in order to notify of an iteration event to any Command/Observers </div> </div><p> <a class="anchor" name="c4ee7792f3661c094054cb581817d6b2"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::SetCostFunction" ref="c4ee7792f3661c094054cb581817d6b2" args="(MultipleValuedCostFunction *costFunction)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void itk::MultipleValuedVnlCostFunctionAdaptor::SetCostFunction </td> <td>(</td> <td class="paramtype"><a class="el" href="classitk_1_1MultipleValuedCostFunction.html">MultipleValuedCostFunction</a> * </td> <td class="paramname"> <em>costFunction</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Set the <a class="el" href="classitk_1_1CostFunction.html" title="Base class for cost functions intended to be used with Optimizers.">CostFunction</a> deriving from <a class="el" href="classitk_1_1MultipleValuedCostFunction.html" title="This class is a base for the CostFunctions returning a multiple values.">MultipleValuedCostFunction</a> <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00067">67</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> </div> </div><p> <a class="anchor" name="a4fa4edc202f957df57b7192adb55435"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::SetScales" ref="a4fa4edc202f957df57b7192adb55435" args="(const ScalesType &scales)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void itk::MultipleValuedVnlCostFunctionAdaptor::SetScales </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1Array.html">ScalesType</a> & </td> <td class="paramname"> <em>scales</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Set current parameters scaling. </div> </div><p> <a class="anchor" name="e9e28de5916a591294f594eb0b4716cc"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::SetUseGradient" ref="e9e28de5916a591294f594eb0b4716cc" args="(bool)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void itk::MultipleValuedVnlCostFunctionAdaptor::SetUseGradient </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Define if the Cost function should provide a customized Gradient computation or the gradient can be computed internally using a default approach <p>Referenced by <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00102">UseGradientOff()</a>, and <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00101">UseGradientOn()</a>.</p> </div> </div><p> <a class="anchor" name="be716f7c6dff5096c0802ce3954ccfc5"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::UseGradientOff" ref="be716f7c6dff5096c0802ce3954ccfc5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void itk::MultipleValuedVnlCostFunctionAdaptor::UseGradientOff </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Define if the Cost function should provide a customized Gradient computation or the gradient can be computed internally using a default approach <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00102">102</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> <p>References <a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#e9e28de5916a591294f594eb0b4716cc">SetUseGradient()</a>.</p> </div> </div><p> <a class="anchor" name="5f8813f5dc1bf45a2a4f82d50616c54c"></a><!-- doxytag: member="itk::MultipleValuedVnlCostFunctionAdaptor::UseGradientOn" ref="5f8813f5dc1bf45a2a4f82d50616c54c" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void itk::MultipleValuedVnlCostFunctionAdaptor::UseGradientOn </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Define if the Cost function should provide a customized Gradient computation or the gradient can be computed internally using a default approach <p>Definition at line <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html#l00101">101</a> of file <a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a>.</p> <p>References <a class="el" href="classitk_1_1MultipleValuedVnlCostFunctionAdaptor.html#e9e28de5916a591294f594eb0b4716cc">SetUseGradient()</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="itkMultipleValuedVnlCostFunctionAdaptor_8h_source.html">itkMultipleValuedVnlCostFunctionAdaptor.h</a></ul> </div> <hr><address><small> Generated at Fri May 8 05:30:47 2009 for ITK by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53> </a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>