Prev Next

AD Computed Assignment Operators

Syntax
x Op y

Purpose
Performs computed assignment operations where either x has type AD<Base>.

Op
The operator Op is one of the following
Op Meaning
+= x is assigned x plus y
-= x is assigned x minus y
*= x is assigned x times y
/= x is assigned x divided by y

Base
The type Base is determined by the operand x.

x
The operand x has the following prototype
     AD<
Base> &x

y
The operand y has the following prototype
     const 
Type &y
where Type is VecAD<Base>::reference, AD<Base>, Base, or double.

Result
The result of this assignment can be used as a reference to x. For example, if z has the following type
     AD<
Basez
then the syntax
     
z = x += y
will compute x plus y and then assign this value to both x and z.

Operation Sequence
This is an atomic AD of Base operation and hence it is part of the current AD of Base operation sequence .

Example
The following files contain examples and tests of these functions. Each test returns true if it succeeds and false otherwise.
AddEq.cpp AD Computed Assignment Addition: Example and Test
SubEq.cpp AD Computed Assignment Subtraction: Example and Test
MulEq.cpp AD Computed Assignment Multiplication: Example and Test
DivEq.cpp AD Computed Assignment Division: Example and Test

Derivative
If  f and  g are Base functions

Addition
 \[
     \D{[ f(x) + g(x) ]}{x} = \D{f(x)}{x} + \D{g(x)}{x}
\] 


Subtraction
 \[
     \D{[ f(x) - g(x) ]}{x} = \D{f(x)}{x} - \D{g(x)}{x}
\] 


Multiplication
 \[
     \D{[ f(x) * g(x) ]}{x} = g(x) * \D{f(x)}{x} + f(x) * \D{g(x)}{x}
\] 


Division
 \[
     \D{[ f(x) / g(x) ]}{x} = 
          [1/g(x)] * \D{f(x)}{x} - [f(x)/g(x)^2] * \D{g(x)}{x}
\] 

Input File: cppad/local/compute_assign.hpp