code: public static boolean cs_usolve(DZcs U, DZcsa x)
  	{
  		int p, j, n, Up[], Ui[] ;
  		DZcsa Ux = new DZcsa() ;
  		if (!CS_CSC(U) || x == null) return (false) ;	/* check inputs */
  		n = U.n ; Up = U.p ; Ui = U.i ; Ux.x = U.x ;
  		for (j = n - 1 ; j >= 0 ; j--)
  		{
  			x.set(j, cs_cdiv(x.get(j), Ux.get(Up [j+1] - 1))) ;
  			for (p = Up [j] ; p < Up [j+1] - 1 ; p++)
  			{
  				x.set(Ui [p], cs_cminus(x.get(Ui [p]), cs_cmult(Ux.get(p), x.get(j)))) ;
  			}
  		}
  		return (true) ;
  	}
docs: Solves an upper triangular system Ux=b, where x and b are dense vectors.
  The diagonal of U must be the last entry of each column.
  
  @param U
  upper triangular matrix in column-compressed form
  @param x
  size n, right hand side on input, solution on output
  @return true if successful, false on error