code: protected DoubleMatrix2D GradLSum(DoubleMatrix1D L, DoubleMatrix1D fiX) {
  		//DoubleMatrix2D GradLSum = F2.make(1, getDim());
  		SparseDoubleMatrix2D GradLSum = new SparseDoubleMatrix2D(getDim(), getDim(), getDim(), 0.001, 0.01); 
  		for(int i=0; i<getDim(); i++){
  			double d = 0;
  			d -= L.getQuick(i) / fiX.getQuick(i);
  			d -= L.getQuick(getDim() + i) / fiX.getQuick(getDim() + i);
  			//GradLSum.setQuick(0, i, d);
  			GradLSum.setQuick(i, i, d);
  		}
  		
  		return GradLSum;
  	}
docs: Return the H matrix (that is diagonal).
  This is the third addendum of (11.56) of "Convex Optimization".
  @see "Convex Optimization, 11.56"