Toolchains - Parameters - Filters
Toolchain forward-ad: New forward mode differentiation (experimental)
Transforms the code in forward mode AD.
Parameters
Name | Default value | Filters | Description | Toolchains |
---|---|---|---|---|
a-zeros-function | 'a_zeros' | xsl/renice.xsl | Name of the zero adjoint function. | forward-ad, prepare-fm, prepare-rm, rename, reverse-ad, taylor-ad |
activityAnalysis | Controls if-then-else. | forward-ad, prepare-fm, prepare-rm, reverse-ad, taylor-ad, xaif | ||
adimat-function-prefix | 'adimat_' | xsl/vector-forward-ad-new.xsl, xsl/vector-forward-ad.xsl, xsl/renice.xsl | Prefix for derivative functions. | forward-ad, prepare-fm, prepare-rm, rename, reverse-ad, taylor-ad |
adjoint-reductions | not($well-behaved) | xsl/renice.xsl | Whether to use adjred wrapper functions in adjoint code. | forward-ad, prepare-fm, prepare-rm, rename, reverse-ad, taylor-ad |
adjoint-subsasgn | not($well-behaved) | xsl/renice.xsl | Whether to use adjreshape wrapper functions in adjoint code. | forward-ad, prepare-fm, prepare-rm, rename, reverse-ad, taylor-ad |
avoid-vararg-functions | true() | xsl/renice.xsl | Whether to use push/pop/a_zeros functions without varargin. | forward-ad, prepare-fm, prepare-rm, rename, reverse-ad, taylor-ad |
comment-char | '%' | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Comment start character | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
comment-spacer | ' ' | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Space to insert after comment start character | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
comment-start | $comment-char | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Comment start text | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
fm | Controls if-then-else. | forward-ad | ||
fmmode | Controls if-then-else. | forward-ad | ||
forward-deriv-function-prefix | $forward-deriv-prefix | xsl/has-end.xsl, xsl/replicate-funref-assignments.xsl, xsl/renice.xsl, xsl/tmp-resolve2.xsl, xsl/to-source.xsl | the prefix for forward-ad derivative variables | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif |
forward-deriv-variable-prefix | $forward-deriv-prefix | xsl/has-end.xsl, xsl/replicate-funref-assignments.xsl, xsl/renice.xsl, xsl/tmp-resolve2.xsl, xsl/to-source.xsl | the prefix for forward-ad derivative variables | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif |
indent-unit | ' ' | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Indentation unit | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
input-file-name | $tl-input-file-name | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | For informational purposes only. | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
nocanonicalize | Controls if-then-else. | forward-ad, prepare-fm, prepare-rm, reverse-ad, taylor-ad, xaif | ||
output-directory | $tl-output-directory | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Only used when output-mode=split-all. | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
output-file-path | $tl-output-file-path | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | For informational purposes only. | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
output-file-prefix | $tl-output-file-prefix | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Only used when output-mode=split-all. | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
output-mode | 'plain' | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Set to split-all for one file per function. Otherwise all functions go to "stdout", or the file given with option -o. | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
parallel | 0 | xsl/vector-forward-ad.xsl | Whether to use parfor loops over derivatives. | forward-ad |
parallel-function-prefix | 'p' | xsl/vector-forward-ad.xsl | Prefix for parallel derivative functions. | forward-ad |
prefix | xsl/has-end.xsl, xsl/replicate-funref-assignments.xsl, xsl/renice.xsl, xsl/tmp-resolve2.xsl, xsl/to-source.xsl | the prefix for both derivative variables and functions | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif | |
rec-prefix | xsl/has-end.xsl, xsl/replicate-funref-assignments.xsl, xsl/renice.xsl, xsl/tmp-resolve2.xsl, xsl/to-source.xsl | the prefix for the recording (forward) sweep version of a differentiated function | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif | |
ret-prefix | xsl/has-end.xsl, xsl/replicate-funref-assignments.xsl, xsl/renice.xsl, xsl/tmp-resolve2.xsl, xsl/to-source.xsl | the prefix for the return sweep version of a differentiated function | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif | |
rev-prefix | xsl/has-end.xsl, xsl/replicate-funref-assignments.xsl, xsl/renice.xsl, xsl/tmp-resolve2.xsl, xsl/to-source.xsl | the prefix for the adjoint (recording + return) version of a differentiated function | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif | |
show-banner | 1 | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Insert transformation date into transformed file | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
show-disclaimer | 1 | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Insert disclaimer into transformed file | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
show-step-ids | 0 | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Show transformation step ids | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
show-step-params | $show-steps | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Show transformation step parameters | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
show-steps | 0 | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | Show transformation steps | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
source-line-numbers | 1 | xsl/has-end.xsl, xsl/lhs-lists.xsl, xsl/replicate-funref-assignments.xsl, xsl/match-signatures3.xsl, xsl/renice.xsl, xsl/tmp-resolve2.xsl, xsl/to-source.xsl | Include source line numbers in stmt. labels if set to 1. | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif |
spook | contains($show-comments, 'spook') or $show-disclaimer = 0 or $show-authors = 0 | xsl/has-end.xsl, xsl/renice.xsl, xsl/to-source.xsl | codes anarchy Whitehouse Majic defense information warfare Tamil Tigers afsatcom Jet Taiwan insurgency Secure Border Initiative Facility Rule Psix Help Federal Aviation Administration | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad |
tmp-mode | 'short' | xsl/has-end.xsl, xsl/which-to-canonicalize.xsl, xsl/canonicalize.xsl, xsl/nargin-wrapper.xsl, xsl/call-numout.xsl, xsl/match-signatures.xsl, xsl/match-signatures3.xsl, xsl/vector-forward-ad-new.xsl, xsl/vector-forward-ad.xsl, xsl/renice.xsl, xsl/tmp-resolve2.xsl, xsl/to-source.xsl | How to name temporary variables. | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif |
tmp-prefix | 'tmp' | xsl/has-end.xsl, xsl/which-to-canonicalize.xsl, xsl/canonicalize.xsl, xsl/nargin-wrapper.xsl, xsl/call-numout.xsl, xsl/match-signatures.xsl, xsl/match-signatures3.xsl, xsl/vector-forward-ad-new.xsl, xsl/vector-forward-ad.xsl, xsl/renice.xsl, xsl/to-source.xsl | Prefix of temporary variables. | basic-block-to-call, brackets-to-hvcat, for-insert-iteration-indexvar, forward-ad, hvcat-to-brackets, ind-to-subs, nested-to-sub-function, prepare-fm, prepare-rm, pretty-print, rename, reverse-ad, taylor-ad, xaif |
tmpMode | Controls if-then-else. | forward-ad, reverse-ad, taylor-ad | ||
use-adjsum | not($well-behaved) | xsl/renice.xsl | Whether to use adjsum function for summing adjoints. | forward-ad, prepare-fm, prepare-rm, rename, reverse-ad, taylor-ad |
use-push-index | not($well-behaved) | xsl/renice.xsl | Whether to allow dynamic resize in subsasgn. | forward-ad, prepare-fm, prepare-rm, rename, reverse-ad, taylor-ad |
use-subsasgn | $tl-use-subsasgn | xsl/initialize-variables-for.xsl, xsl/vector-forward-ad-new.xsl | Whether to use calls to subsasgn (needed with structures and in this case (FIXME: link)). Turned on if there is an active struct-ref in the code. | forward-ad, prepare-fm, taylor-ad |
use-subsref | $tl-use-subsref | xsl/vector-forward-ad-new.xsl | Whether to use calls to subsref (needed with structures and in this case (FIXME: link)). Turned on if parameter use-subsasgn is on. | forward-ad, taylor-ad |
well-behaved | false() | xsl/renice.xsl | Whether the code is well-behaved: Trigger some optimisations. | forward-ad, prepare-fm, prepare-rm, rename, reverse-ad, taylor-ad |
Filter list
XSLT filter: xsl/directives.xsl
XSLT filter: xsl/preprocess.xsl
XSLT filter: xsl/rebin.xsl
XSLT filter: xsl/add-derivatives-to-bmfunc-cgnodes.xsl
XSLT filter: xsl/classify-parameters.xsl
XSLT filter: xsl/function-index.xsl
XSLT filter: xsl/funrefs.xsl
XSLT filter: xsl/lhs-var-lists.xsl
XSLT filter: xsl/lhs-var-lists2.xsl
XSLT filter: xsl/calls-and-arrays.xsl
XSLT filter: xsl/principal-values.xsl
XSLT filter: xsl/principal-vars.xsl
XSLT filter: xsl/reflexive-indices.xsl
XSLT filter: xsl/has-end.xsl
Parameters: comment-char, comment-spacer, comment-start, forward-deriv-function-prefix, forward-deriv-variable-prefix, indent-unit, input-file-name, output-directory, output-file-path, output-file-prefix, output-mode, prefix, rec-prefix, ret-prefix, rev-prefix, show-banner, show-disclaimer, show-step-ids, show-step-params, show-steps, source-line-numbers, spook, tmp-mode, tmp-prefixXSLT filter: xsl/call-index.xsl
XSLT filter: xsl/ident-info.xsl
XSLT filter: xsl/side-effects.xsl
XSLT filter: xsl/side-effects2.xsl
XSLT filter: xsl/directive-differentiate-condition.xsl
XSLT filter: xsl/directive-differentiate-expression.xsl
XSLT filter: xsl/lhs-lists.xsl
Parameters: source-line-numbersXSLT filter: xsl/lhs-var-lists2.xsl
XSLT filter: xsl/kill-parentheses.xsl
XSLT filter: xsl/analyse-new.xsl
XSLT filter: xsl/first-assignment-to-var.xsl
XSLT filter: xsl/pull-first-assignment-info.xsl
if activityAnalysis == "0"
XSLT filter: xsl/signatures.xsl
if nocanonicalize == "1"
then:
else:
XSLT filter: xsl/which-to-canonicalize.xsl
Parameters: tmp-mode, tmp-prefixXSLT filter: xsl/number-canonicalized.xsl
XSLT filter: xsl/number-canonicalized2.xsl
XSLT filter: xsl/canonicalize.xsl
Parameters: tmp-mode, tmp-prefix
XSLT filter: xsl/lhs-lists.xsl
Parameters: source-line-numbersXSLT filter: xsl/lhs-var-lists2.xsl
XSLT filter: xsl/replicate-funref-assignments.xsl
Parameters: forward-deriv-function-prefix, forward-deriv-variable-prefix, prefix, rec-prefix, ret-prefix, rev-prefix, source-line-numbersXSLT filter: xsl/analyse-new.xsl
XSLT filter: xsl/first-assignment-to-var.xsl
XSLT filter: xsl/pull-first-assignment-info.xsl
XSLT filter: xsl/local-variables.xsl
XSLT filter: xsl/local-variables2.xsl
XSLT filter: xsl/indeps.xsl
XSLT filter: xsl/initialize-variables-for.xsl
Parameters: use-subsasgnXSLT filter: xsl/principal-values.xsl
XSLT filter: xsl/principal-vars.xsl
XSLT filter: xsl/reflexive-indices.xsl
XSLT filter: xsl/nargin-wrapper.xsl
Parameters: tmp-mode, tmp-prefixXSLT filter: xsl/call-numout.xsl
Parameters: tmp-mode, tmp-prefixXSLT filter: xsl/match-signatures.xsl
Parameters: tmp-mode, tmp-prefixXSLT filter: xsl/match-signatures2.xsl
XSLT filter: xsl/match-signatures3.xsl
Parameters: source-line-numbers, tmp-mode, tmp-prefixif ( ( fm != "old" ) && ( fmmode != "old" ) )
then:
XSLT filter: xsl/vector-forward-ad-new.xsl
Parameters: adimat-function-prefix, tmp-mode, tmp-prefix, use-subsasgn, use-subsref
else:
XSLT filter: xsl/vector-forward-ad.xsl
Parameters: adimat-function-prefix, parallel, parallel-function-prefix, tmp-mode, tmp-prefix
XSLT filter: xsl/renice.xsl
Parameters: a-zeros-function, adjoint-reductions, adjoint-subsasgn, avoid-vararg-functions, comment-char, comment-spacer, comment-start, forward-deriv-function-prefix, forward-deriv-variable-prefix, indent-unit, input-file-name, output-directory, output-file-path, output-file-prefix, output-mode, prefix, rec-prefix, ret-prefix, rev-prefix, show-banner, show-disclaimer, show-step-ids, show-step-params, show-steps, source-line-numbers, spook, tmp-mode, tmp-prefix, use-adjsum, use-push-index, well-behavedif tmpMode == "short-computed"
then:
XSLT filter: xsl/tmp-resolve.xsl
XSLT filter: xsl/linebreaks.xsl
XSLT filter: xsl/tmp-resolve2.xsl
Parameters: forward-deriv-function-prefix, forward-deriv-variable-prefix, prefix, rec-prefix, ret-prefix, rev-prefix, source-line-numbers
XSLT filter: xsl/to-source.xsl
Parameters: comment-char, comment-spacer, comment-start, forward-deriv-function-prefix, forward-deriv-variable-prefix, indent-unit, input-file-name, output-directory, output-file-path, output-file-prefix, output-mode, prefix, rec-prefix, ret-prefix, rev-prefix, show-banner, show-disclaimer, show-step-ids, show-step-params, show-steps, source-line-numbers, spook, tmp-mode, tmp-prefix