Q:

Gram-Schmidt orthogonalization: Dealing with Complex numbers

A complex valued matrix "A" has n columns a_1 through a_n. Elements of these columns are complex numbers.
The orthogonal complex valued matrix U of A has n columns as well u_1 through u_n. 
u_1 is same as a_1.
Projection of column a_x on u_y is given by the formula:
P = [(a_x.u_y) / (u_y.u_y) ] [u_y]   => Equation-1

The term (a_x.u_y) or for that matter (u_y.u_y) results is essentially dot product of two complex valued column vectors resulting in a complex value.
Let us assume for the sake of discussion that:
a_x.u_y = a1 + b1 i
u_y.u_y = p1 + q1 i

From here, I can even compute the division resulting in another complex value:
[(a_x.u_y) / (u_y.u_y) ] = r + s i

The question now is: Should I take the absolute value of r + si and multiply it with u_y in Equation-1, or should I multiply r+si as-is to elements of u_y.   

A:

Some comments:

I am not sure if you are aware of this, but the dot product of two complex vectors $u$ and $v$ is $u \cdot v = \bar{u}_1 v_1 + \cdots + \bar{u}_n v_n$. This is sometimes written as, $u^* v$ or $u^\dagger v$  where $u^*$ or $u^\dagger$ denotes the conjugate transpose of $u$.
Based on the above definition, do you see why $u_y \cdot u_y$ is always real?
Finally, to answer your actual question: no, you do not need to take any absolute value; the Gram-Schmidt formula holds for any appropriate dot product.

