ExpressionDifferentiator¶
-
public class
ExpressionDifferentiator
¶ Object that knows how to differentiate an expression.
Constructors¶
ExpressionDifferentiator¶
-
protected
ExpressionDifferentiator
(DifferentiationEnv adEnv)¶ Constructor.
Methods¶
adjointDifferentiateAssignedExpression¶
-
protected TapList<DiffAssignmentNode>[]
adjointDifferentiateAssignedExpression
(Tree lhs, boolean needSetDiffLhs, Tree expression, boolean needDiffRhs, TapList<NewBlockGraphNode> toPrecomputes, BoolVector beforeActiv, SymbolTable diffSymbolTable)¶ Adjoint differentiation of expression from assignment lhs:=expression.
- Parameters
needSetDiffLhs – when true (general case, e.g. diffLhs is needed upstream) we must generate an instruction that recomputes diffLhs.
needDiffRhs – when true (general case, e.g. diffLhs is active downstream) we must generate the updates of the diff variables of the rhs expression.
- Returns
an array (one per replica, in general only one) of lists of future differentiated assignments
getCost¶
tangentDifferentiateAssignedExpression¶
-
protected Tree[]
tangentDifferentiateAssignedExpression
(Tree lhs, Tree expression, TapList<NewBlockGraphNode> toPrecomputes, TapList<DiffAssignmentNode> toPrecomputesDiff, Tree copySrcAssignment, BoolVector beforeActiv, TapPair<TapList<Tree>, TapList<Tree>> primRW, TapPair<TapList<Tree>, TapList<Tree>> diffRW, SymbolTable diffSymbolTable)¶ Tangent differentiation of expression from assignment lhs:=expression.
- Returns
an array (one per replica, in general only one) of tangent diff assignment.
tangentDifferentiatePlainExpression¶
-
protected Tree[]
tangentDifferentiatePlainExpression
(ToObject<Tree> toPrimalExp, TapList<NewBlockGraphNode> toPrecomputes, TapList<DiffAssignmentNode> toPrecomputesDiff, BoolVector beforeActiv, TapPair<TapList<Tree>, TapList<Tree>> primRW, TapPair<TapList<Tree>, TapList<Tree>> diffRW, SymbolTable diffSymbolTable)¶ Tangent differentiation of a standalone expression (given in toPrimalExp.obj).
- Returns
an array (one per replica, in general only one) of tangent diff expression.