@@ -68,68 +68,3 @@ Rcpp::List solve_QP(Rcpp::NumericMatrix Sigma,
68
68
Rcpp::Named (" max_active_check" ) = max_active_check));
69
69
70
70
}
71
-
72
- // [[Rcpp::export]]
73
- Rcpp::List find_one_row_debiasingM (Rcpp::NumericMatrix Sigma,
74
- int row, // 0-based
75
- double bound,
76
- int maxiter,
77
- Rcpp::NumericVector theta,
78
- Rcpp::NumericVector gradient,
79
- Rcpp::IntegerVector ever_active,
80
- Rcpp::IntegerVector nactive,
81
- double kkt_tol,
82
- double objective_tol,
83
- int max_active
84
- ) {
85
-
86
- int nrow = Sigma.nrow (); // number of features
87
-
88
- // Active set
89
-
90
- int irow;
91
-
92
- // Extract the diagonal
93
- Rcpp::NumericVector Sigma_diag (nrow);
94
- double *sigma_diag_p = Sigma_diag.begin ();
95
-
96
- for (irow=0 ; irow<nrow; irow++) {
97
- sigma_diag_p[irow] = Sigma (irow, irow);
98
- }
99
-
100
- // Now call our C function
101
-
102
- int iter = find_one_row_ ((double *) Sigma.begin (),
103
- (double *) Sigma_diag.begin (),
104
- (double *) gradient.begin (),
105
- (int *) ever_active.begin (),
106
- (int *) nactive.begin (),
107
- nrow,
108
- bound,
109
- (double *) theta.begin (),
110
- maxiter,
111
- row,
112
- kkt_tol,
113
- objective_tol,
114
- max_active);
115
-
116
- // Check whether feasible
117
-
118
- int kkt_check = check_KKT (theta.begin (),
119
- gradient.begin (),
120
- nrow,
121
- row,
122
- bound,
123
- kkt_tol);
124
-
125
- int max_active_check = (*(nactive.begin ()) >= max_active);
126
-
127
- return (Rcpp::List::create (Rcpp::Named (" soln" ) = theta,
128
- Rcpp::Named (" gradient" ) = gradient,
129
- Rcpp::Named (" iter" ) = iter,
130
- Rcpp::Named (" kkt_check" ) = kkt_check,
131
- Rcpp::Named (" ever_active" ) = ever_active,
132
- Rcpp::Named (" nactive" ) = nactive,
133
- Rcpp::Named (" max_active_check" ) = max_active_check));
134
-
135
- }
0 commit comments