I got to use the Gram-Schmidt process to find an orthonormal basis for M3x3($\mathbb{C}$). The Gram-Schmidt process is consisted of two steps: normalization of each vector and subtraction of its projection on others (left ones). When doing the projection, which vector should be transpose conjugated?
$u_{i} = v_i - \langle\cdot u_1,v_i \rangle\cdot u_1 - \langle\cdot u_2,v_i \rangle\cdot u_2 - ... - \langle\cdot u_{i-1},v_i \rangle\cdot u_{i-1}$
$u_{i} = \dfrac{u_i}{\mid u_i \mid}$
For complex vectors, I don't know which component ($u$ or $v$?) should be transpose conjugate. It seems that either way works and generates a different orthonormal basis.
For example, a 3x3($\mathbb{C}$) matrix A,
$A = \begin{bmatrix} 1 & 2 & 4\\ 1 & 4-i & 8+2i\\ 2 & 3 & 6\end{bmatrix}$
with conjugate transpose on $u$ (the destination of the projection), I got
$Q_1 = \begin{bmatrix} 0.41 & 0.07i & 0.34-0.85i\\ 0.41 & 0.83-0.35i & 0.17i\\ 0.82 & -0.41+0.14i & -0.17+0.34i\end{bmatrix}$
with conjugate transpose on $v$ (the projected vector), I got
$Q_2 = \begin{bmatrix} 0.41 & -0.07i & 0.03+0.07i\\ 0.41 & 0.78-0.46i & 0.47+0.87i\\ 0.82 & -0.39-0.13i & -0.07+0.03i\end{bmatrix}$
Either one generates a upper triangle matrix by computing $Q^{-1} A$.
Conjugate transpose on u seems to generate a unitary matrix. $Q_1^* Q_1 = I$ but $Q_2^* Q_2 \neq I$
Which is the correct Gram-Schmidt process?
I think conjugate transpose on u is correct because the other way doesn't create an orthogonal vector to $u$. For example, let a and b two complex 2 dimensional vectors.
$a = \begin{bmatrix}1+2i\\3+5i\end{bmatrix}$
$b = \begin{bmatrix}4-6i\\2+1i\end{bmatrix}$
The following vector is orthogonal to $a$
$b - \dfrac{\langle a^*,b \rangle}{\langle a^*,a \rangle} a = \begin{bmatrix}2.85-5.62i\\-0.92+2.23i\end{bmatrix}$
but the following vector is NOT orthogonal to $a$.
$b - \dfrac{\langle b^*,a \rangle}{\langle a^*,a \rangle} a = \begin{bmatrix}5-6.69i\\4.46-i\end{bmatrix}$
So if you want to project $\vec{b}$ onto vector $\vec{a}$,
$\dfrac{\langle a^*,b \rangle}{\langle a^*,a \rangle} a$
is the correct one (the destination vector needs to be conjugated). I don't know why the other way doesn't work...