Does block (one row/column at a time) coordinatewise optimization on the primal of the Graphical Lasso problem:
min_X log det (X) + trace(X Sigma) + rho X_1
1 
Sigma 
(Required) the sample covariance matrix, symmetric PSD with dimensions p \times p. 
X 
is an initialization to the precision matrix X. It must be symmetric, PD with dimensions p \times p.
Defaults to 
invX 
is an initialization to the covariance matrix.
It must be symmetric with dimensions p \times p.
It is not necessary for 
rho 
(Required) is the amount of regularization. It is a nonnegative scalar. 
outer.Maxiter 
the maximum number of outer iterations (i.e. row/column updates) to be performed.

obj.seq 
Logical variable taking values
Note: Computing the objective values is O(p^3), and can take quite some time depending upon the size of the problem. Hence, it is not recommended to compute the objective values, during the course of the algorithm. 
outer.tol 
convergence criterion. 
dpglasso
can also be used as a path algorithm ie solve problem (A) on a grid of rho
values.
In that case, the estimates of the precision matrix X
and covariance matrix invX
obtained by solving
(A) for a certain rho
, are to be supplied as warmstarts to solve problem (A) for a smaller value of
rho
. See the example below.
X 
precision matrix 
invX 
covariance matrix 
time.counter.QP 
This is a three dimensional vector, representing the total time taken to solve all the QPs; uses the R function 
Rahul Mazumder and Trevor Hastie
This algorithm DPGLASSO is described in the paper: “The Graphical Lasso: New Insights and Alternatives by Rahul Mazumder and Trevor Hastie" available at http://arxiv.org/abs/1111.5479
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  set.seed(2008)
# create data
n=10; p = 5;
X<array(rnorm(n*p),dim=c(n,p)); # datamatrix
Sigma=cov(X); # sample covariance matrix
q<max(abs(Sigma[row(Sigma)> col(Sigma)]));
rho=q*0.7;
B<dpglasso(Sigma,rho=rho,outer.Maxiter=20,outer.tol=10^6);
# uses the default initializations for the covariance and precision matrices
# now solve the problem for a smaller value of rho,
# using the previous solution as warmstart
rho.new=rho*.8;
B.new<dpglasso(Sigma,X=B$X,invX=B$invX,
rho=rho.new,outer.Maxiter=20,outer.tol=10^6);

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.