9.4.1 Requests Sent from the Optimizer to the Framework

Lines starting with ``('' are treated as part of the protocol. All other lines are ignored and may be treated as comments. A request has the following form:

   $\displaystyle \mbox{{\small\texttt{(}}$\langle$\textit{type}$\rangle$\ $\langle$\textit{argument}$\rangle$$*${\small\texttt{)}}}$

The following table lists the types of requests and their meaning. Some types are vital and have to be understood by every implementation, while other types provide information about the internal state of the optimizer and can be safely ignored by the framework.

evaluate
(required)
(evaluate ({($ \langle$variable name$ \rangle$ $ \langle$value$ \rangle$)}$ *$) ((id $ \langle$request id$ \rangle$)))
Requests an evaluation. The request id is a positive integer.

gradient
(required)
(gradient ({($ \langle$variable name$ \rangle$ $ \langle$value$ \rangle$)}$ *$) ((id $ \langle$request id$ \rangle$)))
Requests an evaluation for the calculation of an gradient. Apart from giving the reason why the optimizer sends this request, there is no semantic difference to evaluate.

result
(required)
(result $ \langle$status$ \rangle$ {($ \langle$variable name$ \rangle$ $ \langle$value$ \rangle$)}$ *$)
Returns the result of an optimization. The status, an integer value, indicates if the optimization was finished successfully. The meaning of the status code depends on the optimizer used.

jacobian
(optional, informative)
(jacobian $ \langle$rest$ \rangle$)
The entries of the Jacobian, provided by some optimizers. For debugging purposes only.

reduction
(optional, informative)
(reduction $ \langle$value$ \rangle$)
Information provided by some optimizers, cf. [92].

statistics
(optional, informative)
(statistics $ \langle$rest$ \rangle$)
Information provided by some optimizers, cf. [92].

Clemens Heitzinger 2003-05-08