w[i]=Comp.Make((u[i].real-sum.real)/L[i][i],(v[i].imag-sum.imag)/L[i][i]);
w[i]=Comp.Make((u[i].real-sum.real)/L[i][i],(u[i].imag-sum.imag)/L[i][i]);
    public Complex[] back(int m, float [][] L, Complex[] u) {// this part performs the back sub algorith, L is a lowe traingular matrix, LTw=u, the out put is w	Complex sum=new Complex(); // sum is just a dummy variable	Complex[] w;	w=new Complex[m];		for (int i=m-1; i >=0; i--)	    {		sum.real=0;		sum.imag=0;		for (int j=m-1;j >=0; j--)		      sum=Comp.Add(sum,Comp.Mult(L[j][i],w[j]));		w[i]=Comp.Make((u[i].real-sum.real)/L[i][i],(v[i].imag-sum.imag)/L[i][i]);		  	    }	return(w);    }