// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>
using namespace Rcpp;
using namespace arma;
// [[Rcpp::export]]
vec samplex(){
vec x(100000);
for(int i = 0; i<100000; ++i){
double u1=R::runif(0,1);
double a=1,b=1.7,mid=0;
double temp=0;
double m=exp(1.7*log(1.7))-1;
for (int l = 0; l<50; ++l){
mid=(a+b)/2;
temp=(exp(mid*log(mid))-1)/m-u1;
if(temp<0){
a=mid;
}
if(temp>0){
b=mid;
}
}
x[i]=mid;
}
return x;
}
|