# variable update operator , using “correct” mathematical notation

In a text describing mathematically an algorithm, there is a vector $y_l$ (local y-axis) which is computed, but must be subsequently adjusted to avoid numerical drift. I've considered a few possibilities to write it:

1. using APL-like arrow, $y_l\leftarrow y_l-x_l(y_l\cdot x_l)$,
2. with Pascalesque $y_l:=y_l-x_l(y_l\cdot x_l)$,
3. introducing an extra $y_l'$ first, then just say $y_l=y_l'-x_l(y_l'\cdot x_l)$.

I find 1. the most readable, 3. the most correct and I've seen 2. several times. The text does not otherwise use algorithmical notation (such as pseudo-code). Which of them to pick?

-
I'd just use something like $y_l^{(k+1)}=y_l^{(k)}+\dots$ – J. M. Sep 12 '11 at 7:10
Thanks, but that would be confusing in this case, as superscripts are already used to identify iteration step at which the value is computed. The adjustment here happens inside one iteration step, however. – eudoxos Sep 12 '11 at 7:13
If you must put it into a formula, I'd pick (3). But it might be better to just put it into words: "At the end of each iteration, we project $y_l$ to the plane orthogonal to $x_l$ to correct for numerical drift." – Rahul Sep 12 '11 at 7:19

The problem you are facing is the lack of a widely accepted notation for assignments in mathematical circles. In computer science this problem does not exist, and people happily use '$\leftarrow$' or '$:=$' or even '$=$' for the assignment operator, with what seems to be no risk of confusion.
$$y_l' = y_l - x_l(y_l\cdot x_l)$$
Thanks, I will stick to $\rightarrow$. (I think it would have little sense to have "assignment" in "pure" maths, since symbol is just a name for an object (known or unknown), and using the same name for two objects is confusing; there is no notion of "computation sequence" in math, it is just for brain processing that the tautologies are unfolded sequentially.) – eudoxos Sep 12 '11 at 9:05