Compound Arithmetic and Assignment
Compound arithmetic and assignment statements combine an arithmetic operation and assignment, replacing a statement such as
x = x op y;
with the more compact compound form
x op= y;
For example, x = x + 1; may be replaced with x += 1;. This works for all types that support arithmetic, including the scalar types int, real, complex, the real matrix types vector, row_vector, and matrix, and the complex matrix types, complex_vector, complex_row_vector, and complex_matrix.
Compound addition and assignment
Compound addition and assignment works wherever the corresponding addition and assignment would be well formed.
void operator+=(T x, U y)
x += y is equivalent to x = x + y. Defined for all types T and U where T = T + U is well formed.
Compound subtraction and assignment
Compound addition and assignment works wherever the corresponding subtraction and assignment would be well formed.
void operator-=(T x, U y)
x -= y is equivalent to x = x - y. Defined for all types T and U where T = T - U is well formed.
Compound multiplication and assignment
Compound multiplication and assignment works wherever the corresponding multiplication and assignment would be well formed.
void operator*=(T x, U y)
x *= y is equivalent to x = x * y. Defined for all types T and U where T = T * U is well formed.
Compound division and assignment
Compound division and assignment works wherever the corresponding division and assignment would be well formed.
void operator/=(T x, U y)
x /= y is equivalent to x = x / y. Defined for all types T and U where T = T / U is well formed.
Compound elementwise multiplication and assignment
Compound elementwise multiplication and assignment works wherever the corresponding multiplication and assignment would be well formed.
void operator.*=(T x, U y)
x .*= y is equivalent to x = x .* y. Defined for all types T and U where T = T .* U is well formed.
Compound elementwise division and assignment
Compound elementwise division and assignment works wherever the corresponding division and assignment would be well formed.
void operator./=(T x, U y)
x ./= y is equivalent to x = x ./ y. Defined for all types T and U where T = T ./ U is well formed.