4
$\begingroup$

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?

  • 2
    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."2011-09-12

1 Answers 1

5

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.

In computer science journals, I have found that (1) is the most common, followed by (2). In mathematics journals I have seen (3), but normally expressed with the prime on the quantity to be updated:

y_l' = y_l - x_l(y_l\cdot x_l)

Whatever notation you choose to use, you should explain clearly what you intend the reader to understand from it - this is particularly important if you aren't using the notation anywhere else in your paper.

  • 0
    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.)2011-09-12