TAOTERMCALLBACKS#

A TaoTerm implementation that accesses the callback functions that have been provided with in TaoSetObjective(), TaoSetGradient(), TaoSetObjectiveAndGradient(), and TaoSetHessian().

Notes#

If you are interested in creating your own term, you should not use this. Use TAOTERMSHELL or create your own implementation of TaoTerm with TaoTermRegister().

A TAOTERMCALLBACKS is always TAOTERM_PARAMETERS_NONE, so the params argument of TaoTerm evaluation routines should always be NULL.

A TAOTERMCALLBACKS cannot create Hessian matrices; the user needs to pass the Hessian matrices used in algorithms in TaoSetHessian().

Developer Notes#

Internally each Tao has a TaoTerm of type TAOTERMCALLBACKS that is updated by the Tao callback routines (TaoSetObjective(), TaoSetGradient(), TaoSetObjectiveAndGradient(), and TaoSetHessian()).

The routines that get the user-defined Tao callback functions (TaoGetObjective(), TaoGetObjectiveAndGradient(), TaoGetGradient(), TaoGetHessian()) will always return those original callbacks, even if the objective function has been changed by TaoAddTerm(), so PETSc/TAO should not assume that those callbacks are valid in any library code.

A TAOTERMCALLBACKS has a weak-reference to the Tao that created it, which may not be the Tao currently using it because the term could have been shared using TaoGetTerm() and TaoAddTerm().

See Also#

TaoTerm: composable objective function terms, TaoTerm, TaoTermType

Level#

developer

Location#

src/tao/term/impls/callbacks/taotermcallbacks.c


Index of all TaoTerm routines
Table of Contents for all manual pages
Index of all manual pages