Skip to content

Commit

Permalink
remove gropt from CRAN version due to LTO issues
Browse files Browse the repository at this point in the history
  • Loading branch information
jdtuck committed Mar 6, 2020
1 parent f14a939 commit c5e1ff5
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 48 deletions.
6 changes: 5 additions & 1 deletion R/optimum.reparam.R
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ optimum.reparam <- function(Q1,T1,Q2,T2,lambda=0,method="DP",w=0.01,f1o=0.0,
timet2 = (timet2-tmin)/(tmax-tmin)
gam0 = simul_gam(u,out$g1,out$g2,timet2,out$s1,out$s2,timet2)
} else if (method=="DP2") {
stop("Not implemented in CRAN version: please download and install from Github (https://github.com/jdtuck/fdasrvf_R)")
opt = rep(0,n+1+1);
swap = FALSE
fopts = rep(0,5)
Expand All @@ -72,7 +73,8 @@ optimum.reparam <- function(Q1,T1,Q2,T2,lambda=0,method="DP",w=0.01,f1o=0.0,
if (out$swap){
gam0 = invertGamma(gam0);
}
} else {
} else if (method == "RBFGS") {
stop("Not implemented in CRAN version: please download and install from Github (https://github.com/jdtuck/fdasrvf_R)")
opt = rep(0,n+1+1);
swap = FALSE
fopts = rep(0,5)
Expand All @@ -92,6 +94,8 @@ optimum.reparam <- function(Q1,T1,Q2,T2,lambda=0,method="DP",w=0.01,f1o=0.0,
if (out$swap){
gam0 = invertGamma(gam0);
}
} else {
stop("Invalid method chosen")
}

gam = (gam0-gam0[1])/(gam0[length(gam0)]-gam0[1]) # slight change on scale
Expand Down
6 changes: 5 additions & 1 deletion R/reparam_curve.R
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ reparam_curve <- function(beta1,beta2,lambda=0,method="DP",w=0.01,rotated=T,
dim(q2i) = c(M*n1)
gam0 = .Call('DPQ', PACKAGE = 'fdasrvf', q1i, q2i, n1, M, lambda, 0, rep(0,M))
} else if (method=="DP2") {
stop("Not implemented in CRAN version: please download and install from Github (https://github.com/jdtuck/fdasrvf_R)")
c1 = t(beta1)
dim(c1) = c(M*n1)
c2 = t(beta2)
Expand All @@ -104,7 +105,8 @@ reparam_curve <- function(beta1,beta2,lambda=0,method="DP",w=0.01,rotated=T,
R = t(R)
}

} else {
} else if (method=="RBFGS") {
stop("Not implemented in CRAN version: please download and install from Github (https://github.com/jdtuck/fdasrvf_R)")
c1 = t(beta1)
dim(c1) = c(M*n1)
c2 = t(beta2)
Expand All @@ -130,6 +132,8 @@ reparam_curve <- function(beta1,beta2,lambda=0,method="DP",w=0.01,rotated=T,
gam0 = invertGamma(gam0);
R = t(R)
}
} else {
stop("Invalid method chosen")
}

gam = (gam0-gam0[1])/(gam0[length(gam0)]-gam0[1]) # slight change on scale
Expand Down
4 changes: 2 additions & 2 deletions src/Makevars
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SOURCES1 = registerDynamicSymbol.cpp wrapper.cpp fdasrsf/DP.cpp fdasrsf/dp_grid.cpp fdasrsf/DynamicProgrammingQ2.cpp fdasrsf/misc_funcs.cpp fdasrsf/mlogit_warp_grad.cpp \
fdasrsf/bayesian.cpp fdasrsf/pair_align_functions_expomap.cpp
SOURCES2 = gropt/src/DriverElasticCurvesRO.cpp gropt/src/LowRank.cpp gropt/src/ProductManifold.cpp gropt/src/SolversTR.cpp \
#SOURCES2 = gropt/src/DriverElasticCurvesRO.cpp gropt/src/LowRank.cpp gropt/src/ProductManifold.cpp gropt/src/SolversTR.cpp \
gropt/src/LowRankVariable.cpp gropt/src/randgen.cpp gropt/src/Sphere.cpp \
gropt/src/ElasticCurvesReparam.cpp gropt/src/LowRankVector.cpp gropt/src/RBFGS.cpp gropt/src/SphereVariable.cpp \
gropt/src/ElasticCurvesRO.cpp gropt/src/LRBFGS.cpp gropt/src/RBroydenFamily.cpp gropt/src/SphereVector.cpp \
Expand All @@ -18,7 +18,7 @@ SOURCES2 = gropt/src/DriverElasticCurvesRO.cpp gropt/src/LowRank.cpp gropt/src/P

SOURCES3 = fdaqmap/src/myVector.cpp fdaqmap/src/UnitSquareImage.cpp

SOURCES = $(SOURCES1) $(SOURCES2) $(SOURCES3)
SOURCES = $(SOURCES1) $(SOURCES3)

OBJECTS = $(SOURCES:.cpp=.o)

Expand Down
12 changes: 5 additions & 7 deletions src/Makevars.win
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
##split sources to ensure the commands for linking are not too long!
SOURCES1 = registerDynamicSymbol.cpp wrapper.cpp fdasrsf/DP.cpp fdasrsf/dp_grid.cpp fdasrsf/DynamicProgrammingQ2.cpp fdasrsf/misc_funcs.cpp fdasrsf/mlogit_warp_grad.cpp \
fdasrsf/bayesian.cpp fdasrsf/pair_align_functions_expomap.cpp
SOURCES2 = gropt/src/DriverElasticCurvesRO.cpp gropt/src/LowRank.cpp gropt/src/ProductManifold.cpp gropt/src/SolversTR.cpp \
#SOURCES2 = gropt/src/DriverElasticCurvesRO.cpp gropt/src/LowRank.cpp gropt/src/ProductManifold.cpp gropt/src/SolversTR.cpp \
gropt/src/LowRankVariable.cpp gropt/src/randgen.cpp gropt/src/Sphere.cpp \
gropt/src/ElasticCurvesReparam.cpp gropt/src/LowRankVector.cpp gropt/src/RBFGS.cpp gropt/src/SphereVariable.cpp \
gropt/src/ElasticCurvesRO.cpp gropt/src/LRBFGS.cpp gropt/src/RBroydenFamily.cpp gropt/src/SphereVector.cpp \
Expand All @@ -20,21 +20,19 @@ SOURCES3 = fdaqmap/src/myVector.cpp fdaqmap/src/UnitSquareImage.cpp

OBJECTS = wrapper.o
OBJS1 = $(SOURCES1:.cpp=.o)
OBJS2 = $(SOURCES2:.cpp=.o)
#OBJS2 = $(SOURCES2:.cpp=.o)
OBJS3 = $(SOURCES3:.cpp=.o)
PKG_CPPFLAGS= -I. -Igropt/incl/ -Ifdaqmap/incl/
CXX_STD = CXX11
PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) libfdasrvf1.a libfdasrvf2.a libfdasrvf3.a
PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) libfdasrvf1.a libfdasrvf3.a

all: libfdasrvf1.a libfdasrvf2.a libfdasrvf3.a $(SHLIB)
all: libfdasrvf1.a libfdasrvf3.a $(SHLIB)

$(SHLIB): libfdasrvf1.a libfdasrvf2.a libfdasrvf3.a $(OBJECTS)
$(SHLIB): libfdasrvf1.a libfdasrvf3.a $(OBJECTS)
libfdasrvf1.a: $(OBJS1)
libfdasrvf2.a: $(OBJS2)
libfdasrvf3.a: $(OBJS3)

clean:
@rm -f $(SHLIB) $(OBJECTS)
@rm -f $(OBJS1)
@rm -f $(OBJS2)
@rm -f $(OBJS3)
74 changes: 37 additions & 37 deletions src/wrapper.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

#include "gropt/incl/ElasticCurvesReparam.h"
// #include "gropt/incl/ElasticCurvesReparam.h"
#include "fdasrsf/DynamicProgrammingQ2.h"
#include "fdasrsf/mlogit_warp_grad.h"
#include "fdasrsf/DP.h"
Expand Down Expand Up @@ -89,39 +89,39 @@ RcppExport SEXP DPQ(SEXP Q1, SEXP Q2, SEXP n1, SEXP N1, SEXP lam1, SEXP Disp, SE
return(yyi);
}

RcppExport SEXP opt_reparam(SEXP C1, SEXP C2, SEXP n, SEXP d, SEXP w,
SEXP onlyDP, SEXP rotated, SEXP isclosed,
SEXP skipm, SEXP autoselectC, SEXP opt, SEXP swap,
SEXP fopts, SEXP comtime){

NumericVector C1i(C1);
NumericVector C2i(C2);
NumericVector opti(opt);
NumericVector foptsi(fopts);
NumericVector comtimei(comtime);

double *_C1i = &C1i[0];
double *_C2i = &C2i[0];
double *_opti = &opti[0];
double *_foptsi = &foptsi[0];
double *_comtimei = &comtimei[0];

int _n = as<int>(n);
int _d = as<int>(d);
double _w = as<double>(w);
bool _onlyDP = as<bool>(onlyDP);
bool _rotated = as<bool>(rotated);
bool _isclosed = as<bool>(isclosed);
int _skipm = as<int>(skipm);
int _autoselectC = as<int>(autoselectC);
bool _swap = as<bool>(swap);


optimum_reparam(_C1i, _C2i, _n, _d, _w, _onlyDP, _rotated, _isclosed,
_skipm, _autoselectC, _opti, _swap, _foptsi, _comtimei);

List ret; ret["opt"] = opti; ret["fopts"] = foptsi;
ret["comtime"] = comtimei; ret["swap"] = wrap(_swap);

return(ret);
}
// RcppExport SEXP opt_reparam(SEXP C1, SEXP C2, SEXP n, SEXP d, SEXP w,
// SEXP onlyDP, SEXP rotated, SEXP isclosed,
// SEXP skipm, SEXP autoselectC, SEXP opt, SEXP swap,
// SEXP fopts, SEXP comtime){
//
// NumericVector C1i(C1);
// NumericVector C2i(C2);
// NumericVector opti(opt);
// NumericVector foptsi(fopts);
// NumericVector comtimei(comtime);
//
// double *_C1i = &C1i[0];
// double *_C2i = &C2i[0];
// double *_opti = &opti[0];
// double *_foptsi = &foptsi[0];
// double *_comtimei = &comtimei[0];
//
// int _n = as<int>(n);
// int _d = as<int>(d);
// double _w = as<double>(w);
// bool _onlyDP = as<bool>(onlyDP);
// bool _rotated = as<bool>(rotated);
// bool _isclosed = as<bool>(isclosed);
// int _skipm = as<int>(skipm);
// int _autoselectC = as<int>(autoselectC);
// bool _swap = as<bool>(swap);
//
//
// optimum_reparam(_C1i, _C2i, _n, _d, _w, _onlyDP, _rotated, _isclosed,
// _skipm, _autoselectC, _opti, _swap, _foptsi, _comtimei);
//
// List ret; ret["opt"] = opti; ret["fopts"] = foptsi;
// ret["comtime"] = comtimei; ret["swap"] = wrap(_swap);
//
// return(ret);
// }

0 comments on commit c5e1ff5

Please sign in to comment.