Dear all, There might be an error in setequal() from sugar. Consider this
#include <Rcpp.h> using namespace Rcpp; //[[Rcpp::export]] bool seteq1(CharacterVector x, CharacterVector y){ return setequal(x,y); } //[[Rcpp::export]] bool seteq2(CharacterVector x, CharacterVector y){ return (((CharacterVector) setdiff(x,y)).length()==0) & (((CharacterVector) setdiff(y,x)).length()==0) ; } The examples below does not give what I expect when calling seteq1 whereas seteq2 gives what I expect. Am I completely wrong here? Regards Søren seteq1(c(1,2,3), c(3,2,1)) seteq1(c("a","b"), c("a","b")) seteq1(c(1,2,3), c(3,2)) seteq1(c("a","b"), c("a","b","k")) seteq2(c(1,2,3), c(3,2,1)) seteq2(c("a","b"), c("a","b")) seteq2(c(1,2,3), c(3,2)) seteq2(c("a","b"), c("a","b","k")) > seteq1(c(1,2,3), c(3,2,1)) [1] FALSE > seteq1(c("a","b"), c("a","b")) [1] FALSE > seteq1(c(1,2,3), c(3,2)) [1] FALSE > seteq1(c("a","b"), c("a","b","k")) [1] FALSE > seteq2(c(1,2,3), c(3,2,1)) [1] TRUE > seteq2(c("a","b"), c("a","b")) [1] TRUE > seteq2(c(1,2,3), c(3,2)) [1] FALSE > seteq2(c("a","b"), c("a","b","k")) [1] FALSE _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel