Loading ChangeLog +12 −10 Original line number Diff line number Diff line * Use Rcpp::stop (#88) Version 4.2.7 * Fix tests on CRAN failing on dist class Loading DESCRIPTION +1 −1 Original line number Diff line number Diff line Loading @@ -48,5 +48,5 @@ Imports: xml2, Rcpp LinkingTo: Rcpp RoxygenNote: 7.2.3 RoxygenNote: 7.3.3 VignetteBuilder: knitr src/emd.cpp +1 −0 Original line number Diff line number Diff line #include <Rcpp.h> #include <R.h> #include <stdlib.h> #include <math.h> Loading src/emd_hat_impl.h +7 −6 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ //======================================================================================= #include "min_cost_flow.h" #include "Rcpp.h" #include "R.h" #include <set> #include <limits> Loading Loading @@ -34,7 +35,7 @@ NUM_T emd_hat_gd_metric<NUM_T,FLOW_TYPE>::operator()(const std::vector<NUM_T>& P if (FLOW_TYPE!=NO_FLOW) fillFWithZeros(*F); if(!( (F!=NULL) || (FLOW_TYPE==NO_FLOW) )) Rf_error("emd internal error7"); if(!( (F!=NULL) || (FLOW_TYPE==NO_FLOW) )) Rcpp::stop("emd internal error7"); std::vector<NUM_T> P= Pc; std::vector<NUM_T> Q= Qc; Loading Loading @@ -98,7 +99,7 @@ struct emd_hat_impl_integral_types { //------------------------------------------------------- NODE_T N= Pc.size(); if(Qc.size()!=N) Rf_error("emd internal error8"); if(Qc.size()!=N) Rcpp::stop("emd internal error8"); // toc timp; timp.tic(); // Ensuring that the supplier - P, have more mass. std::vector<NUM_T> P; Loading Loading @@ -152,7 +153,7 @@ struct emd_hat_impl_integral_types { NUM_T maxC= 0; {for (NODE_T i=0; i<N; ++i) { {for (NODE_T j=0; j<N; ++j) { if(C[i][j]<0) Rf_error("emd internal error9"); if(C[i][j]<0) Rcpp::stop("emd internal error9"); if ( C[i][j]>maxC ) maxC= C[i][j]; }} }} Loading Loading @@ -277,7 +278,7 @@ struct emd_hat_impl_integral_types { #ifndef NDEBUG NUM_T DEBUG_sum_bb= 0; for (NODE_T i=0; i<bb.size(); ++i) DEBUG_sum_bb+= bb[i]; if(DEBUG_sum_bb!=0) Rf_error("emd internal error 10"); if(DEBUG_sum_bb!=0) Rcpp::stop("emd internal error 10"); #endif //------------------------------------------------------- Loading Loading @@ -313,7 +314,7 @@ struct emd_hat_impl_integral_types { j= nodes_old_names[new_name_from]-N; } if (flow!=0&&(int) new_name_from!=nodes_new_names[THRESHOLD_NODE]&& (int) it->_to!=nodes_new_names[THRESHOLD_NODE]) { if(!(i<N&&j<N)) Rf_error("emd internal error 11"); if(!(i<N&&j<N)) Rcpp::stop("emd internal error 11"); if (needToSwapFlow) std::swap(i,j); if (!reverseEdge) { (*F)[i][j]+= flow; Loading Loading @@ -411,7 +412,7 @@ struct emd_hat_impl<double,FLOW_TYPE> { std::vector< std::vector<NUM_T> >* F) { // TODO: static assert if(!(sizeof(CONVERT_TO_T)>=8)) Rf_error("emd internal error 12"); if(!(sizeof(CONVERT_TO_T)>=8)) Rcpp::stop("emd internal error 12"); // This condition should hold: // ( 2^(sizeof(CONVERT_TO_T*8)) >= ( MULT_FACTOR^2 ) Loading src/emd_hat_signatures_interface.h +1 −1 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ NUM_T emd_hat_signature_interface(signature_tt<NUM_T>* Signature1, signature_tt< {for (int i=0; i<Signature1->n; ++i) { {for (int j=0; j<Signature2->n; ++j) { NUM_T dist= func( (Signature1->Features+i) , (Signature2->Features+j) ); if(dist<0) Rf_error("emd internal error"); if(dist<0) Rcpp::stop("emd internal error"); C[i][j+Signature1->n]= dist; C[j+Signature1->n][i]= dist; }} Loading Loading
ChangeLog +12 −10 Original line number Diff line number Diff line * Use Rcpp::stop (#88) Version 4.2.7 * Fix tests on CRAN failing on dist class Loading
DESCRIPTION +1 −1 Original line number Diff line number Diff line Loading @@ -48,5 +48,5 @@ Imports: xml2, Rcpp LinkingTo: Rcpp RoxygenNote: 7.2.3 RoxygenNote: 7.3.3 VignetteBuilder: knitr
src/emd.cpp +1 −0 Original line number Diff line number Diff line #include <Rcpp.h> #include <R.h> #include <stdlib.h> #include <math.h> Loading
src/emd_hat_impl.h +7 −6 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ //======================================================================================= #include "min_cost_flow.h" #include "Rcpp.h" #include "R.h" #include <set> #include <limits> Loading Loading @@ -34,7 +35,7 @@ NUM_T emd_hat_gd_metric<NUM_T,FLOW_TYPE>::operator()(const std::vector<NUM_T>& P if (FLOW_TYPE!=NO_FLOW) fillFWithZeros(*F); if(!( (F!=NULL) || (FLOW_TYPE==NO_FLOW) )) Rf_error("emd internal error7"); if(!( (F!=NULL) || (FLOW_TYPE==NO_FLOW) )) Rcpp::stop("emd internal error7"); std::vector<NUM_T> P= Pc; std::vector<NUM_T> Q= Qc; Loading Loading @@ -98,7 +99,7 @@ struct emd_hat_impl_integral_types { //------------------------------------------------------- NODE_T N= Pc.size(); if(Qc.size()!=N) Rf_error("emd internal error8"); if(Qc.size()!=N) Rcpp::stop("emd internal error8"); // toc timp; timp.tic(); // Ensuring that the supplier - P, have more mass. std::vector<NUM_T> P; Loading Loading @@ -152,7 +153,7 @@ struct emd_hat_impl_integral_types { NUM_T maxC= 0; {for (NODE_T i=0; i<N; ++i) { {for (NODE_T j=0; j<N; ++j) { if(C[i][j]<0) Rf_error("emd internal error9"); if(C[i][j]<0) Rcpp::stop("emd internal error9"); if ( C[i][j]>maxC ) maxC= C[i][j]; }} }} Loading Loading @@ -277,7 +278,7 @@ struct emd_hat_impl_integral_types { #ifndef NDEBUG NUM_T DEBUG_sum_bb= 0; for (NODE_T i=0; i<bb.size(); ++i) DEBUG_sum_bb+= bb[i]; if(DEBUG_sum_bb!=0) Rf_error("emd internal error 10"); if(DEBUG_sum_bb!=0) Rcpp::stop("emd internal error 10"); #endif //------------------------------------------------------- Loading Loading @@ -313,7 +314,7 @@ struct emd_hat_impl_integral_types { j= nodes_old_names[new_name_from]-N; } if (flow!=0&&(int) new_name_from!=nodes_new_names[THRESHOLD_NODE]&& (int) it->_to!=nodes_new_names[THRESHOLD_NODE]) { if(!(i<N&&j<N)) Rf_error("emd internal error 11"); if(!(i<N&&j<N)) Rcpp::stop("emd internal error 11"); if (needToSwapFlow) std::swap(i,j); if (!reverseEdge) { (*F)[i][j]+= flow; Loading Loading @@ -411,7 +412,7 @@ struct emd_hat_impl<double,FLOW_TYPE> { std::vector< std::vector<NUM_T> >* F) { // TODO: static assert if(!(sizeof(CONVERT_TO_T)>=8)) Rf_error("emd internal error 12"); if(!(sizeof(CONVERT_TO_T)>=8)) Rcpp::stop("emd internal error 12"); // This condition should hold: // ( 2^(sizeof(CONVERT_TO_T*8)) >= ( MULT_FACTOR^2 ) Loading
src/emd_hat_signatures_interface.h +1 −1 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ NUM_T emd_hat_signature_interface(signature_tt<NUM_T>* Signature1, signature_tt< {for (int i=0; i<Signature1->n; ++i) { {for (int j=0; j<Signature2->n; ++j) { NUM_T dist= func( (Signature1->Features+i) , (Signature2->Features+j) ); if(dist<0) Rf_error("emd internal error"); if(dist<0) Rcpp::stop("emd internal error"); C[i][j+Signature1->n]= dist; C[j+Signature1->n][i]= dist; }} Loading