Skip to content

Commit 530bc0f

Browse files
committed
src: use d instead of p for dimension
1 parent 684fa37 commit 530bc0f

3 files changed

Lines changed: 21 additions & 21 deletions

File tree

src/ADMM.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ List ADMMsggl(const arma::mat& S, const List& group_idx,
1313
double rho, const double tau_incr, const double tau_decr, const double nu,
1414
const double tol_abs, const double tol_rel, const int maxiter) {
1515

16-
int p = S.n_cols;
16+
int d = S.n_cols;
1717
int iter = 0;
1818
arma::mat Omega = arma::diagmat(1/arma::diagvec(S));
19-
arma::mat Z = arma::zeros(p, p);
20-
arma::mat U = arma::zeros(p, p);
19+
arma::mat Z = arma::zeros(d, d);
20+
arma::mat U = arma::zeros(d, d);
2121
arma::mat Z_old = Z;
2222

23-
arma::mat I = arma::ones(p, p);
23+
arma::mat I = arma::ones(d, d);
2424
if (!diag_ind) {
2525
I -= arma::diagmat(I);
2626
}
@@ -65,13 +65,13 @@ List ADMMsggl(const arma::mat& S, const List& group_idx,
6565
Z_block *= scale_grp;
6666
} else {
6767
double sq_all = arma::accu(arma::square(Z_block));
68-
arma::vec d = Z_diag.elem(row_idx);
69-
double sq_diag = arma::dot(d, d);
68+
arma::vec de = Z_diag.elem(row_idx);
69+
double sq_diag = arma::dot(de, de);
7070
double offblock_norm = std::sqrt(std::max(sq_all-sq_diag, 0.0));
7171
double scale_grp = std::max(1.0 - lambda * (1-alpha) / (rho * (offblock_norm + eps)), 0.0);
7272
Z_block *= scale_grp;
7373
for (arma::uword k = 0; k < row_idx.n_elem; ++k) {
74-
Z(row_idx[k], row_idx[k]) = d[k];
74+
Z(row_idx[k], row_idx[k]) = de[k];
7575
}
7676
}
7777
}
@@ -85,8 +85,8 @@ List ADMMsggl(const arma::mat& S, const List& group_idx,
8585
double s = arma::norm(rho*(Z - Z_old), "fro");
8686

8787
// tolerance
88-
double tol_pri = p * tol_abs + tol_rel * std::max(arma::norm(Omega, "fro"), arma::norm(Z, "fro"));
89-
double tol_dual = p * tol_abs + tol_rel * rho * arma::norm(U, "fro");
88+
double tol_pri = d * tol_abs + tol_rel * std::max(arma::norm(Omega, "fro"), arma::norm(Z, "fro"));
89+
double tol_dual = d * tol_abs + tol_rel * rho * arma::norm(U, "fro");
9090

9191
if (r <= tol_pri && s <= tol_dual) {
9292
break;
@@ -124,18 +124,18 @@ List ADMMsggn(const arma::mat& S, const List& group_idx, std::string penalty,
124124
double rho, const double tau_incr, const double tau_decr, const double nu,
125125
const double tol_abs, const double tol_rel, const int maxiter) {
126126

127-
int p = S.n_cols;
127+
int d = S.n_cols;
128128
int iter = 0;
129129
arma::mat Omega = arma::diagmat(1/arma::diagvec(S));
130-
arma::mat Z = arma::zeros(p, p);
131-
arma::mat U = arma::zeros(p, p);
130+
arma::mat Z = arma::zeros(d, d);
131+
arma::mat U = arma::zeros(d, d);
132132
arma::mat Z_old = Z;
133133
List sgglres = ADMMsggl(S, group_idx, diag_ind, diag_grp, diag_include, lambda, alpha,
134134
rho, tau_incr, tau_decr, nu,
135135
tol_abs, tol_rel, maxiter);
136136
arma::mat initial = sgglres["hatOmega"];
137137

138-
arma::mat I = arma::ones(p, p);
138+
arma::mat I = arma::ones(d, d);
139139
if (!diag_ind) {
140140
I -= arma::diagmat(I);
141141
}
@@ -164,8 +164,8 @@ List ADMMsggn(const arma::mat& S, const List& group_idx, std::string penalty,
164164
double s = arma::norm(rho*(Z - Z_old), "fro");
165165

166166
// tolerance
167-
double tol_pri = p * tol_abs + tol_rel * std::max(arma::norm(Omega, "fro"), arma::norm(Z, "fro"));
168-
double tol_dual = p * tol_abs + tol_rel * rho * arma::norm(U, "fro");
167+
double tol_pri = d * tol_abs + tol_rel * std::max(arma::norm(Omega, "fro"), arma::norm(Z, "fro"));
168+
double tol_dual = d * tol_abs + tol_rel * rho * arma::norm(U, "fro");
169169

170170
if (r <= tol_pri && s <= tol_dual) {
171171
break;

src/update_.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@ arma::mat update_Zblock(const arma::mat& M, const std::string& penalty,
5555
Z_block *= scale_grp;
5656
} else {
5757
double sq_all = arma::accu(arma::square(Z_block));
58-
arma::vec d = Z_diag.elem(row_idx);
59-
double sq_diag = arma::dot(d, d);
58+
arma::vec de = Z_diag.elem(row_idx);
59+
double sq_diag = arma::dot(de, de);
6060
double offblock_norm = std::sqrt(std::max(sq_all-sq_diag, 0.0));
6161
double scale_grp = std::max(1.0 - lambda_grp * (1-alpha) / (rho * (offblock_norm + eps)), 0.0);
6262
Z_block *= scale_grp;
6363
for (arma::uword k = 0; k < row_idx.n_elem; ++k) {
64-
Z(row_idx[k], row_idx[k]) = d[k];
64+
Z(row_idx[k], row_idx[k]) = de[k];
6565
}
6666
}
6767
}

src/utils.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ double criterion(const arma::mat& hatOmega, const arma::mat& S, int n,
2626
const std::string& crit, double ebic_tuning) {
2727

2828
// dimensionality
29-
int p = S.n_cols;
29+
int d = S.n_cols;
3030
// Gaussian log-likelihood
3131
double sign, logdet;
3232
arma::log_det(logdet, sign, hatOmega);
@@ -49,10 +49,10 @@ double criterion(const arma::mat& hatOmega, const arma::mat& S, int n,
4949
return -2*loglik + std::log(n)*edges;
5050
}
5151
else if (crit == "EBIC") {
52-
return -2*loglik + std::log(n)*edges + 4*ebic_tuning*std::log(p)*edges;
52+
return -2*loglik + std::log(n)*edges + 4*ebic_tuning*std::log(d)*edges;
5353
}
5454
else if (crit == "HBIC") {
55-
return -2*loglik + std::log(std::log(n))*std::log(p)*edges;
55+
return -2*loglik + std::log(std::log(n))*std::log(d)*edges;
5656
}
5757
else {
5858
Rcpp::stop("Unknown criterion!");

0 commit comments

Comments
 (0)