Skip to content

Commit 19cb90e

Browse files
Congrui YiCongrui Yi
Congrui Yi
authored and
Congrui Yi
committedFeb 15, 2017
dynamic symbols
1 parent 2770a83 commit 19cb90e

File tree

5 files changed

+15
-14
lines changed

5 files changed

+15
-14
lines changed
 

‎NAMESPACE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
useDynLib(hqreg, .registration=TRUE)
1+
useDynLib(hqreg, .registration=TRUE, .fixes = "C_")
22
export(hqreg, hqreg_raw, cv.hqreg)
33
importFrom(graphics, plot)
44
S3method(plot, hqreg)

‎R/cv.hqreg.R

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ cv.hqreg <- function(X, y, ..., FUN = c("hqreg", "hqreg_raw"), ncores = 1, nfold
77

88
fit <- FUN(X, y, ...)
99
cv.args <- list(...)
10-
#fit <- do.call(FUN, c(list(X, y), cv.args))
1110
cv.args$lambda <- fit$lambda
1211
cv.args$alpha <- fit$alpha
1312
cv.args$gamma <- fit$gamma

‎R/hqreg.R

+6-6
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,15 @@ hqreg <- function (X, y, method = c("huber", "quantile", "ls"), gamma = IQR(y)/1
4444
# Fitting
4545
if (alpha > 0) {
4646
if (method == "huber") {
47-
fit <- .C("huber", double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
47+
fit <- .C(C_huber, double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
4848
as.double(gamma), as.double(alpha), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag),
4949
as.integer(scrflag), 1L, as.integer(dfmax), as.integer(max.iter), as.integer(user), as.integer(message))
5050
} else if (method == "quantile") {
51-
fit <- .C("quant", double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
51+
fit <- .C(C_quant, double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
5252
as.double(tau), as.double(alpha), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p),
5353
as.integer(ppflag), as.integer(scrflag), 1L, as.integer(dfmax), as.integer(max.iter), as.integer(user), as.integer(message))
5454
} else {
55-
fit <- .C("squared", double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
55+
fit <- .C(C_squared, double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
5656
as.double(alpha), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag), as.integer(scrflag),
5757
1L, as.integer(dfmax), as.integer(max.iter), as.integer(user), as.integer(message))
5858
}
@@ -68,15 +68,15 @@ hqreg <- function (X, y, method = c("huber", "quantile", "ls"), gamma = IQR(y)/1
6868
lambda <- lambda[ind]
6969
} else {
7070
if (method == "huber") {
71-
fit <- .C("huber_l2", double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
71+
fit <- .C(C_huber_l2, double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
7272
as.double(gamma), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag),
7373
1L, as.integer(max.iter), as.integer(user), as.integer(message))
7474
} else if (method == "quantile") {
75-
fit <- .C("quantile_l2", double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
75+
fit <- .C(C_quantile_l2, double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
7676
as.double(tau), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag),
7777
1L, as.integer(max.iter), as.integer(user), as.integer(message))
7878
} else {
79-
fit <- .C("squared_l2", double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
79+
fit <- .C(C_squared_l2, double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
8080
as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag),
8181
1L, as.integer(max.iter), as.integer(user), as.integer(message))
8282
}

‎R/hqreg_raw.R

+6-6
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ hqreg_raw <- function (X, y, method = c("huber", "quantile", "ls"), gamma = IQR(
4545
# Fitting
4646
if (alpha > 0) {
4747
if (method == "huber") {
48-
fit <- .C("huber", double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
48+
fit <- .C(C_huber, double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
4949
as.double(gamma), as.double(alpha), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag),
5050
as.integer(scrflag), as.integer(intercept), as.integer(dfmax), as.integer(max.iter), as.integer(user), as.integer(message))
5151
} else if (method == "quantile") {
52-
fit <- .C("quant", double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
52+
fit <- .C(C_quant, double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
5353
as.double(tau), as.double(alpha), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p),
5454
as.integer(ppflag), as.integer(scrflag), as.integer(intercept), as.integer(dfmax), as.integer(max.iter), as.integer(user), as.integer(message))
5555
} else {
56-
fit <- .C("squared", double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
56+
fit <- .C(C_squared, double(p*nlambda), integer(nlambda), as.double(lambda), integer(1), integer(1), as.double(XX), as.double(yy), as.double(penalty.factor),
5757
as.double(alpha), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag), as.integer(scrflag),
5858
as.integer(intercept), as.integer(dfmax), as.integer(max.iter), as.integer(user), as.integer(message))
5959
}
@@ -69,15 +69,15 @@ hqreg_raw <- function (X, y, method = c("huber", "quantile", "ls"), gamma = IQR(
6969
lambda <- lambda[ind]
7070
} else {
7171
if (method == "huber") {
72-
fit <- .C("huber_l2", double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
72+
fit <- .C(C_huber_l2, double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
7373
as.double(gamma), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag),
7474
as.integer(intercept), as.integer(max.iter), as.integer(user), as.integer(message))
7575
} else if (method == "quantile") {
76-
fit <- .C("quantile_l2", double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
76+
fit <- .C(C_quantile_l2, double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
7777
as.double(tau), as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag),
7878
as.integer(intercept), as.integer(max.iter), as.integer(user), as.integer(message))
7979
} else {
80-
fit <- .C("squared_l2", double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
80+
fit <- .C(C_squared_l2, double(p*nlambda), integer(nlambda), as.double(lambda), as.double(XX), as.double(yy), as.double(penalty.factor),
8181
as.double(eps), as.double(lambda.min), as.integer(nlambda), as.integer(n), as.integer(p), as.integer(ppflag),
8282
as.integer(intercept), as.integer(max.iter), as.integer(user), as.integer(message))
8383
}

‎src/hqreg.c

+2
Original file line numberDiff line numberDiff line change
@@ -1072,4 +1072,6 @@ static const R_CMethodDef cMethods[] = {
10721072
void R_init_hqreg(DllInfo *info)
10731073
{
10741074
R_registerRoutines(info,cMethods,NULL,NULL,NULL);
1075+
R_useDynamicSymbols(info, FALSE);
1076+
R_forceSymbols(info, TRUE);
10751077
}

0 commit comments

Comments
 (0)
Please sign in to comment.