1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TaoLineSearch/TaoLineSearchSetObjectiveAndGTSRoutine.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>TaoLineSearchSetObjectiveAndGTSRoutine</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<div id="version" align=right><b>petsc-3.7.5 2017-01-01</b></div>
<div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.7.5 v3.7.5 docs/manualpages/TaoLineSearch/TaoLineSearchSetObjectiveAndGTSRoutine.html "><small>Report Typos and Errors</small></a></div>
<A NAME="TaoLineSearchSetObjectiveAndGTSRoutine"><H1>TaoLineSearchSetObjectiveAndGTSRoutine</H1></A>
Sets the objective and (gradient'*stepdirection) evaluation routine for the line search. Sometimes it is more efficient to compute the inner product of the gradient and the step direction than it is to compute the gradient, and this is all the line search typically needs of the gradient.
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petsctaolinesearch.h"
PetscErrorCode TaoLineSearchSetObjectiveAndGTSRoutine(TaoLineSearch ls, PetscErrorCode(*func)(TaoLineSearch ls, Vec x, Vec s, PetscReal *, PetscReal *, void*), void *ctx)
</PRE>
Logically Collective on TaoLineSearch
<P>
<H3><FONT COLOR="#CC3333">Input Parameter</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>ls </B></TD><TD>- the TaoLineSearch context
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>func </B></TD><TD>- the objective and gradient evaluation routine
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>ctx </B></TD><TD>- the (optional) user-defined context for private data
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Calling sequence of func</FONT></H3>
<pre>
func (TaoLinesearch ls, <A HREF="../Vec/Vec.html#Vec">Vec</A> x, <A HREF="../Sys/PetscReal.html#PetscReal">PetscReal</A> *f, <A HREF="../Sys/PetscReal.html#PetscReal">PetscReal</A> *gts, void *ctx);
</pre>
<P>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>x </B></TD><TD>- input vector
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>s </B></TD><TD>- step direction
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>f </B></TD><TD>- function value
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>gts </B></TD><TD>- inner product of gradient and step direction vectors
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>ctx (optional) user</B></TD><TD>- defined context
</TD></TR></TABLE>
<P>
Note: The gradient will still need to be computed at the end of the line
search, so you will still need to set a line search gradient evaluation
routine
<P>
Note: Bounded line searches (those used in bounded optimization algorithms)
don't use g's directly, but rather (g'x - g'x0)/steplength. You can get the
x0 and steplength with <A HREF="../TaoLineSearch/TaoLineSearchGetStartingVector.html#TaoLineSearchGetStartingVector">TaoLineSearchGetStartingVector</A>() and <A HREF="../TaoLineSearch/TaoLineSearchGetStepLength.html#TaoLineSearchGetStepLength">TaoLineSearchGetStepLength</A>()
<P>
<P>
<H3><FONT COLOR="#CC3333">Note</FONT></H3>
Some algorithms (lcl, gpcg) set their own objective routine for the
line search, application programmers should be wary of overriding the
default objective routine.
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../TaoLineSearch/TaoLineSearchCreate.html#TaoLineSearchCreate">TaoLineSearchCreate</A>(), TaoLineSearchSetObjective(), TaoLineSearchSetGradient(), <A HREF="../TaoLineSearch/TaoLineSearchUseTaoRoutines.html#TaoLineSearchUseTaoRoutines">TaoLineSearchUseTaoRoutines</A>()
<BR><P><B><P><B><FONT COLOR="#CC3333">Level:</FONT></B>advanced
<BR><FONT COLOR="#CC3333">Location:</FONT></B><A HREF="../../../src/tao/linesearch/interface/taolinesearch.c.html#TaoLineSearchSetObjectiveAndGTSRoutine">src/tao/linesearch/interface/taolinesearch.c</A>
<BR><A HREF="./index.html">Index of all TaoLineSearch routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>
|