Skip to content

Commit

Permalink
fix import
Browse files Browse the repository at this point in the history
  • Loading branch information
jdtuck committed Dec 21, 2023
1 parent 5739cbe commit 1ffa6f9
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 64 deletions.
2 changes: 1 addition & 1 deletion src/Makevars
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SOURCES1 = registerDynamicSymbol.cpp wrapper.cpp fdasrsf/DP.cpp fdasrsf/dp_grid.cpp fdasrsf/dp_nbhd.cpp fdasrsf/DynamicProgrammingQ2.cpp fdasrsf/misc_funcs.cpp fdasrsf/mlogit_warp_grad.cpp \
SOURCES1 = registerDynamicSymbol.cpp wrapper.cpp wrapper_rbfgs.cpp fdasrsf/DP.cpp fdasrsf/dp_grid.cpp fdasrsf/dp_nbhd.cpp fdasrsf/DynamicProgrammingQ2.cpp fdasrsf/misc_funcs.cpp fdasrsf/mlogit_warp_grad.cpp \
fdasrsf/bayesian.cpp fdasrsf/pair_align_functions_expomap.cpp
SOURCES2 = fdaqmap/src/myVector.cpp fdaqmap/src/UnitSquareImage.cpp

Expand Down
2 changes: 1 addition & 1 deletion src/Makevars.win
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
##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/dp_nbhd.cpp fdasrsf/DynamicProgrammingQ2.cpp fdasrsf/misc_funcs.cpp fdasrsf/mlogit_warp_grad.cpp \
SOURCES1 = registerDynamicSymbol.cpp wrapper.cpp wrapper_rbfgs.cpp fdasrsf/DP.cpp fdasrsf/dp_grid.cpp fdasrsf/dp_nbhd.cpp fdasrsf/DynamicProgrammingQ2.cpp fdasrsf/misc_funcs.cpp fdasrsf/mlogit_warp_grad.cpp \
fdasrsf/bayesian.cpp fdasrsf/pair_align_functions_expomap.cpp
SOURCES2 = fdaqmap/src/myVector.cpp fdaqmap/src/UnitSquareImage.cpp

Expand Down
7 changes: 4 additions & 3 deletions src/fdasrsf/pair_align_functions_expomap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,9 @@ RcppExport SEXP trapzCpp(SEXP R_x, SEXP R_y) {

// order vectors and calculate l2 norm, for f.L2norm()
//RcppExport double order_l2norm(NumericVector x, NumericVector y) {
RcppExport double order_l2norm(vec x, vec y) {

RcppExport SEXP order_l2norm(SEXP R_x, SEXP R_y) {
vec x = as<vec>(R_x);
vec y = as<vec>(R_y);
int n = x.size();
// get ordering of x
// borrowed from Hadley Wickhams adv-r/extras/cpp/order.cpp
Expand Down Expand Up @@ -126,5 +127,5 @@ RcppExport double order_l2norm(vec x, vec y) {
for (int i = 0; i<(n-1); i++) {
area2 += (xSort[i+1] - xSort[i]) * (ySortSq[i+1] + ySortSq[i]);
}
return sqrt(area2 / 2.0);
return wrap(sqrt(area2 / 2.0));
}
24 changes: 0 additions & 24 deletions src/fdasrsf/rbfgs.cpp

This file was deleted.

16 changes: 13 additions & 3 deletions src/fdasrsf/rbfgs.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#ifndef RBFGS_H
#define RBFGS_H

#include <iostream>
#include "armadillo"
#include <RcppArmadillo.h>
// Correctly setup the build environment
// [[Rcpp::depends(RcppArmadillo)]]

using namespace arma;
using namespace std;
Expand Down Expand Up @@ -541,4 +541,14 @@ class rlbfgs {
}
};

vec rlbfgs_optim(vec q1, vec q2, vec time, int maxiter=30, double lam=0.0, int penalty=0){
uword T = time.n_elem;
vec time1 = arma::linspace(0, 1, T);

Check warning on line 546 in src/fdasrsf/rbfgs.h

View check run for this annotation

Codecov / codecov/patch

src/fdasrsf/rbfgs.h#L544-L546

Added lines #L544 - L546 were not covered by tests

rlbfgs myObj(q1, q2, time1);
myObj.solve(maxiter, lam, penalty);

Check warning on line 549 in src/fdasrsf/rbfgs.h

View check run for this annotation

Codecov / codecov/patch

src/fdasrsf/rbfgs.h#L548-L549

Added lines #L548 - L549 were not covered by tests

return myObj.gammaOpt;

Check warning on line 551 in src/fdasrsf/rbfgs.h

View check run for this annotation

Codecov / codecov/patch

src/fdasrsf/rbfgs.h#L551

Added line #L551 was not covered by tests
}

#endif // end of RBFGS_H
33 changes: 1 addition & 32 deletions src/wrapper.cpp
Original file line number Diff line number Diff line change
@@ -1,42 +1,11 @@

#include "fdasrsf/DynamicProgrammingQ2.h"
#include "fdasrsf/mlogit_warp_grad.h"
#include "fdasrsf/rbfgs.h"
#include "fdasrsf/DP.h"
#include <iostream>
#include <RcppArmadillo.h>
// Correctly setup the build environment
// [[Rcpp::depends(RcppArmadillo)]]
#include <Rcpp.h>

using namespace arma;
using namespace Rcpp;

vec rlbfgs_optim(vec q1, vec q2, vec time, int maxiter=30, double lam=0.0, int penalty=0){
uword T = time.n_elem;
vec time1 = arma::linspace(0, 1, T);

rlbfgs myObj(q1, q2, time1);
myObj.solve(maxiter, lam, penalty);

return myObj.gammaOpt;
}

RcppExport SEXP _fdasrvf_rlbfgs_optim(SEXP q1SEXP, SEXP q2SEXP, SEXP timeSEXP, SEXP maxiterSEXP, SEXP lamSEXP, SEXP penaltySEXP) {
BEGIN_RCPP
Rcpp::RObject rcpp_result_gen;
Rcpp::RNGScope rcpp_rngScope_gen;
Rcpp::traits::input_parameter< vec >::type q1(q1SEXP);
Rcpp::traits::input_parameter< vec >::type q2(q2SEXP);
Rcpp::traits::input_parameter< vec >::type time(timeSEXP);
Rcpp::traits::input_parameter< int >::type maxiter(maxiterSEXP);
Rcpp::traits::input_parameter< double >::type lam(lamSEXP);
Rcpp::traits::input_parameter< int >::type penalty(penaltySEXP);
rcpp_result_gen = Rcpp::wrap(rlbfgs_optim(q1, q2, time, maxiter, lam, penalty));
return rcpp_result_gen;
END_RCPP
}


RcppExport SEXP mlogit_warp_grad_wrap(SEXP m1, SEXP m2, SEXP alpha, SEXP beta, SEXP ti, SEXP gami, SEXP q, SEXP y, SEXP max_itri, SEXP toli, SEXP deltai, SEXP displayi, SEXP gamout){
NumericVector alphai(alpha);
NumericVector betai(beta);
Expand Down
21 changes: 21 additions & 0 deletions src/wrapper_rbfgs.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "fdasrsf/rbfgs.h"
#include <RcppArmadillo.h>
// Correctly setup the build environment
// [[Rcpp::depends(RcppArmadillo)]]

using namespace arma;
using namespace Rcpp;
using namespace std;

RcppExport SEXP _fdasrvf_rlbfgs_optim(SEXP q1SEXP, SEXP q2SEXP, SEXP timeSEXP, SEXP maxiterSEXP, SEXP lamSEXP, SEXP penaltySEXP) {
vec q1 = as<vec>(q1SEXP);
vec q2 = as<vec>(q2SEXP);
vec time = as<vec>(timeSEXP);
int maxiter = as<int>(maxiterSEXP);
int len = q1.size();
double lam = as<double>(lamSEXP);
int penalty = as<int>(penaltySEXP);
vec gam(len);
gam = rlbfgs_optim(q1, q2, time, maxiter, lam, penalty);
return wrap(gam);
}

0 comments on commit 1ffa6f9

Please sign in to comment.