code: public static boolean cs_lsolve(DZcs L, DZcsa x)
  	{
  		int p, j, n, Lp[], Li[] ;
  		DZcsa Lx = new DZcsa() ;
  		if (!CS_CSC (L) || x == null) return (false);	/* check inputs */
  		n = L.n ; Lp = L.p ; Li = L.i ; Lx.x = L.x ;
  		for (j = 0 ; j < n ; j++)
  		{
  			x.set(j, cs_cdiv(x.get(j), Lx.get(Lp [j]))) ;
  			for (p = Lp [j]+1 ; p < Lp [j+1] ; p++)
  			{
  				x.set(Li [p], cs_cminus(x.get(Li [p]), cs_cmult(Lx.get(p), x.get(j)))) ;
  			}
  		}
  		return (true) ;
  	}
docs: Solves a lower triangular system Lx=b where x and b are dense. x=b on
  input, solution on output.
  
  @param L
  column-compressed, lower triangular matrix
  @param x
  size n, right hand side on input, solution on output
  @return true if successful, false on error